div在网页四周留个等宽“包边”的办法

简介: div在网页四周留个等宽“包边”的办法

需求来了:

\

image.png

图片.png

easy,中间放个div,然后margin:20px即可,交差:

\

image.png

图片.png

感觉有点敷衍。思考下怎样蓝色边怎样才能都一样宽。js设置div的高度?不好,麻烦死了。

应该有css直接搞定的办法的。我想了下,把HTML、body、div统统高度100%,然后效果:

\

image.png

图片.png

底部咋回事捏?竟然产生滚动条了,要滚动下才能看到底部的蓝色:

\

image.png

图片.png

这肯定不行啊。分析下原因,应该是div设置100%高度后再margin:20px;就将div的整体高度硬生生又撑开了40px,于是只要往下延伸了。那么把高度设置为90%如何?看起来差不多了,但是这个方法不妥,因为和屏幕大小相关,其他屏幕看到的可能不是同等的蓝色宽度。突然想到box-sizing: border-box;这个方法,是不是能将margin缩到自己框里呢?但是看了下说明:

\

image.png

图片.png

它只管border和padding,而对于margin是无效的。

自己一时搞不定,于是请教同学,结果他给出个方案。直接div设置个border宽度20px,我大喊妙啊,我咋没想到,效果确实达到了:

\

image.png

图片.png

代码提炼了下如下:

<!DOCTYPE html>
<html>
<head>
    <title>div test</title>
    <style type="text/css">
        *{margin:0; padding:0;}
        html,body{height: 100%;}
        .test {height: 100%; border: 20px solid #00A0E9; box-sizing: border-box;}
    </style>
</head>
<body>
    <div class="test">fasdfasdf</div>
</body>
</html>

可是我不甘心,中觉得靠margin应该可以。于是我仔细思考:不就是上下一共多出来40px然后撑到底部么,如果我能把这40px减掉不就好了么?忽然脑海里删过个calc,这是css3.0中的一个函数,可以动态计算长度值。那么用height:calc(100% - 40px);即可,测试了下确实可以:

\

image.png

图片.png

不过看起来是一样了,但是上下滚动了下发现还是和border方案解决有点区别的,这个可以往下滚动一点点,虽然看不见滚动条,不知道是不是因为撑开然后又通过calc缩回去导致的,如果是那也是浏览器渲染的bug。代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>div test</title>
    <style type="text/css">
        *{margin:0; padding:0;}
        html,body{height: 100%;}
        body{background:#00A0E9;}
        .test{height:calc(100% - 40px);margin:20px; background:#fff;}
    </style>
</head>
<body>
    <div class="test">fasdfasdf</div>
</body>
</html>

综上,还是用border的方案好。

目录
相关文章
|
4月前
|
前端开发
CSS 自测题 -- 用 flex 布局绘制骰子(一、二、三【含斜三点】、四、五、六点)
CSS 自测题 -- 用 flex 布局绘制骰子(一、二、三【含斜三点】、四、五、六点)
35 0
|
5月前
|
前端开发 小程序 API
技术心得记录:小程序—九宫格心形拼图
技术心得记录:小程序—九宫格心形拼图
28 0
|
6月前
(星星)跟随鼠标移动的效果.html(网上收集3)
(星星)跟随鼠标移动的效果.html(网上收集3)
|
6月前
|
移动开发
解决网页、H5页面在手机端访问时,底部会有一段莫名其妙的空白,大约有几百像素高的留白
解决网页、H5页面在手机端访问时,底部会有一段莫名其妙的空白,大约有几百像素高的留白
|
前端开发 JavaScript
div在网页中四周留个等宽“包边”的办法
div在网页中四周留个等宽“包边”的办法
73 0
div在网页中四周留个等宽“包边”的办法
|
弹性计算 前端开发 容器
通俗重制系列--CSS布局
通俗重制系列--CSS布局
148 0
通俗重制系列--CSS布局
|
前端开发 JavaScript
复刻解析一个流光溢彩炫到掉渣的 CSS 动画按钮
最近在看 next.js 官网是被引流到 conf 页面,发现上面有一个炫酷的按钮,按钮的边框色彩不断变动给人感觉是光在随着按钮旋转一般,感觉挺酷的,复刻一下讲解下原理。
|
前端开发
CSS 奇技淫巧 | 巧妙实现文字二次加粗再加边框
CSS 奇技淫巧 | 巧妙实现文字二次加粗再加边框
341 0
CSS 奇技淫巧 | 巧妙实现文字二次加粗再加边框
不要挡住我,我要去上面
这一节里,我们要学习精灵层级的管理。概念非常的直观,而且操作起来也很简单。
139 0
不要挡住我,我要去上面
|
前端开发
实现九宫格布局,你能想到多少种方法?
最近看到一个面试题:实现一个九宫格布局,用尽可能多的方式去实现? 搜了一下牛客面经,腾讯、字节、百度、网易、京东等的面经中都出现过这道题目。所以今天就来实现一下,看有多少种实现方式(下面实现的九宫格布局是自适应页面大小的)
694 0