使用box-sizing让CSS布局更直观

所属分类: 软件教程 / 系统工具 阅读数: 1054
收藏 0 赞 0 分享

  box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。box-sizing是CSS3的box属性之一。一说到CSS的盒模型(Box model)我想很多人都会比较烦,特别是对于新手,然而这个Box model又是我们CSS运用中比较重要的一个属性。那么CSS3的Box-sizing跟盒模型有什么关系呢?第一句话就说了,Box-sizing是CSS3的Box属性之一,那他当然也遵循CSS的Box model原理,为了能更好的学习和理解这个Box-sizing属性,我们有必要先了解一下CSS中Box model的原理。

  例如,假如您需要并排放置两个带边框的框,可通过将 box-sizing 设置为 "border-box"。这可令浏览器呈现出带有指定宽度和高度的框,并把边框和内边距放入框中。

  如果你写过CSS或者你接触过CSS,相信你一定对盒子模型一点都不陌生。CSS其中一个让人比较困惑的地方就在于它的盒子模型中关于高度和宽度的计算,别说那些初学者了,就是写过很久CSS的人也一样会有如此的感觉。CSS中的高度和宽度总是不那么直观,让你总是很困惑,不能一眼就能分辨出其高度和宽度。有的时候你希望它的宽度是100px,但实际情况却总不是这样。然而,设置正确的box-sizing的属性,盒子的高度和宽度会的确就是你设置的100px。是否有点晕了呢,好了,下面我详细介绍下。

  1、盒子模型

  关于CSS重要的一个概念就是CSS盒子模型。它控制着页面这些元素的高度和宽度。盒子模型多少会让人产生一些困惑,尤其当涉及到高度和宽度计算的时候。真正盒子的宽度(在页面呈现出来的宽度)和高度,需要加上一些其它的属性,例如:

  padding + border + width = 盒子的宽度

  padding + border + height = 盒子的高度

  这看起来并不是那么直观,那么我们看一个图:

box-sizing让CSS布局更加直观 三联

  这意味着,如果我们设置一个宽度为200px,而实际呈现的盒子的宽度可能会大于200px(除非没有左右边框和左右补白)。这可能看起来比较怪,CSS设置的宽度仅仅是内容区的宽度,而非盒子的宽度。同样,高度类似。

  这导致的直接结果是当我们希望页面呈现的盒子的宽度是200px的时候,我们需要减去它的左右边框和左右补白,然后设置为对应的CSS宽度。例如上图,我们设置希望盒子宽度为200px,则需要先减去左右补白各20px,左右边框各1px,然后设置对应的CSS宽度158px。这让代码看起来有点匪夷所思,尤其是对新手来说(我就在这个问题上困惑了很久)。我明明设置的宽度是158px,它却呈现了200px。这多少有点不那么直观和一目了然。

  幸运的是,我们有更好的方法达到我们想要的目的。

  2、box-sizing

  与上面不同的是,当你设置box-sizing:border-box以后,这就能达到你想要的目的。例如,上面我们想要一个宽度为200px的盒子,那么我们直接设置宽度为200px。是不是看起来清晰多了。当再设置它的左右边框和左右补白后,它的内容区会自动调整。这可能更直接和一目了然。CSS代码如下:

  div {

  box-sizing: border-box;

  width: 200px;

  padding: 20px;

  border: 1px solid #DDD;

  }

  如下图:

  实际上,这更被设计者和开发者推崇。

  3、box-sizing其它的值

  box-sizing同样可以设置为content-box,这样设置CSS的宽度的时候仅仅是设置的它的内容区的宽度,浏览器默认都是如此。如我们1中举得例子。

  box-sizing也可以设置为inherit,也就是说从父级元素中继承该属性。

  4、浏览器兼容性

  IE8及以上版本支持该属性,Firefox 需要加上浏览器厂商前缀-moz-,对于低版本的IOS和Android浏览器也需要加上-webkit-。实际上,很多reset.css或者normal.css里都包含如下CSS语句,也是比较赞成的用法:

  *, *:before, *:after {

  -moz-box-sizing: border-box;

  -webkit-box-sizing: border-box;

  box-sizing: border-box;

  }

  结束语

  看到这儿,相信你肯定明白了box-sizing的含义。那么同样告诉你的是,这是很多前端面试题常见的知识点之一。面试官通常会问你,CSS设置如下语句后*{box-sizing:border-box;},其作用是什么?相信你看到现在肯定会清楚的回答这个问题了。

更多精彩内容其他人还在看

一键恢复CGI使用图文教程

CGI集备份、恢复、NT6.x安装(自动修复引导)等功能于一身,拥有ghost和ImageX双核心,32/64位自适应,支持GHO/WIM/SWM,支持UEFI+GPT,支持动态磁盘。对无人值守配置文件的支持,使其功能得到了极大的扩展,可实现真正的一键
收藏 0 赞 0 分享

datamax i4308 驱动安装过程(附datamax i4308 驱动 v7.1.4 下载)

datamax I-4308条码打印机的官方驱动程序,支持windows 2000/XP/2003操作系统 驱动安装过程不复杂,就是得注意选择正确打印机型号和端口,不懂可以看看下面的安装方法
收藏 0 赞 0 分享

konica minolta 163打印机Win7驱动使用教程(附konica minolta 163 Win7驱动下载)

konica minolta 163打印机的Win7驱动,同时适用于konica minolta 161/181/211/220,仅支持win7系统,这个驱动的安装很简单,不会安装的朋友可以看看下面的安装方法,希望对你有帮助
收藏 0 赞 0 分享

废弃快捷方式清除工具的使用与介绍

废弃快捷方式清除工具是完美卸载中的一款废弃快捷方式清除工具,能够扫描电脑上隐藏的无用的快捷方式文件,能够一键清理,由于快捷方式时刻都在创建,因此可选择定期处理
收藏 0 赞 0 分享

2345一键重装系统使用教程

【2345一键重装系统】工具是一款全新的一键重装工具,使用无需安装,无需U盘,更不需光盘,系统镜像采用云高速同步下载,真真正正抛掉一切的一键重装,即使无任何电脑基础也能快速重装系统
收藏 0 赞 0 分享

360驱动大师备份目录在哪里以及驱动备份在什么地方

360驱动大师是一个不错的硬件检测软件,不仅可以解决各类驱动出现的问题,同时也是一款可以一键备份可以下载驱动的程序,那么我们备份后的驱动在哪里呢?如何才能找到它呢?本文就来告诉大家360驱动大师备份的驱动在什么地方,以及如何快速准备的找到它们
收藏 0 赞 0 分享

Ghost安装双系统安装使用图文教程

ghost双系统安装工具是一款方便网友安装两个以上系统的辅助工具,能让菜鸟轻松的完成双系统安装工作,让你无需花费时间
收藏 0 赞 0 分享

金山清理大师电脑版怎么样

在Google Play商店,一款名为“清理大师”(Clean Master)的垃圾文件清理免费应用最近在Android手机界引起轰动。这是全球下载量最多的Android优化器,在美国Google Play商店“工具”类应用下排名第一
收藏 0 赞 0 分享

小红伞系统优化功能详细介绍

Avira System Speedup是著名的网络安全公司小红伞开发的一款系统优化工具箱,可以帮助你重新找回原来飞快的系统速度,它能够清理PC中不需要的数据,修复错误并优化您的系统
收藏 0 赞 0 分享

360安全卫士如何卸载 360安全卫士卸载不了怎么办?

你在卸载360安全卫士时候是不是遇到一些问题,下面看看该文的介绍
收藏 0 赞 0 分享
查看更多