css3中box-sizing属性用法详解

我们经常会遇到一个父级的div有1px的边框而且还需要100%的宽度,这个时候在火狐和chrome与一些新的ie浏览器会出现超出的现象!
我们也遇到一个ul里边4个li,每个li需要给个边框和padding,这时候我们最快的方法是每个li的width=‘25%’,但是实际出来的效果确实把ul撑开了
如上两个简单的实际情况我想大家都遇到过,我们都希望我们给的宽包含border和padding这两个属性,今天我们能够实现了,box-sizing这个属性能让我们心想事成,随心所欲!下面我和大家分享下box-sizing这个属性:
说到 IE 的 bug,在 IE6以前的版本中,IE对盒模型的解析出现一些问题,跟其它浏览器不同,将 border 与 padding 都包含在 width 之内。而另外一些浏览器则与它相反,是不包括border和padding的。
在我们开发的过程中会发现,有时候,如果对页面中的大区域进行设置时,将border、padding计算到width和height之内,反而更灵活。但W3C的 CSS2.1规范却规定了他们并不能被包含其中。考虑到这个问题,css3中引入了一个新的属性:box-sizing,它具有“content-box”和”border-box“两个值。

box-sizing:content-box
当我们设置 box-sizing: content-box; 时,浏览器对盒模型的解释遵从我们之前认识到的 W3C 标准,当它定义width和height时,它的宽度不包括border和padding。
box-sizing:border-box
当我们设置box-sizing: border-box; 时,浏览器对盒模型的解释与 IE6之前的版本相同,当它定义width和height时,border和padding则是被包含在宽高之内的。内容的宽和高可以通过定义的“width”和 “height”减去相应方向的“padding”和“border”的宽度得到。内容的宽和高必须保证不能为负,必要时将自动增大该元素border box的尺寸以使其内容的宽或高最小为0。

 代码如下 复制代码

<div style="width:400px; height:50px; background-color:#eee; padding:5px;">
 <div style="width:200px; line-height:20px; border:10px ridge #f60; padding:5px; float:left; -moz-box-sizing:border-box; -webkit-box-sizing:border-box; box-sizing:border-box">width:200px</div>
    <div style="width:200px; line-height:20px; border:10px ridge #0f0; float:left; padding:5px; -moz-box-sizing:border-box; -webkit-box-sizing:border-box; box-sizing:border-box">width:200px</div>
</div>

 
Firefox 请使用 -moz-box-sizing
Safari / WebKit 请使用 -webkit-box-sizing
Opera 直接用 box-sizing 即可

时间: 2024-12-05 00:12:55

css3中box-sizing属性用法详解的相关文章

JavaScript正则表达式中的ignoreCase属性使用详解

    这篇文章主要介绍了JavaScript正则表达式中的ignoreCase属性使用详解,是JS学习进阶中的重要知识点,需要的朋友可以参考下 ignoreCase是正则表达式对象的只读布尔属性.它指定是否一个特定的正则表达式执行不区分大小写的匹配.,它与"i"属性创建. 语法 ? 1 RegExpObject.ignoreCase        下面是参数的详细信息: NA 返回值: 如果"i"修改被设置返回"TRUE",否则返回"

JavaScript中switch语句的用法详解

  这篇文章主要介绍了JavaScript中switch语句的用法详解,是JS入门学习中的基础知识,需要的朋友可以参考下 可以使用多个if... else if语句,如前面的章节,执行多路分支.然而,这并不总是最佳的解决方案,尤其是当所有分支的依赖单一的变量的值. 使用JavaScript1.2开始,你可以用它处理的正是这种情况,使用一个switch语句,它这样做更有效,如果不是反复地使用if... else if语句. 语法 switch语句的基本语法给出一个expression ,以评估计算

JavaScript中的splice方法用法详解_javascript技巧

JavaScript中的splice主要用来对js中的数组进行操作,包括删除,添加,替换等. 注意:这种方法会改变原始数组!. 1.删除-用于删除元素,两个参数,第一个参数(要删除第一项的位置),第二个参数(要删除的项数) 2.插入-向数组指定位置插入任意项元素.三个参数,第一个参数(插入位置),第二个参数(0),第三个参数(插入的项) 3.替换-向数组指定位置插入任意项元素,同时删除任意数量的项,三个参数.第一个参数(起始位置),第二个参数(删除的项数),第三个参数(插入任意数量的项) 示例:

Android中persistent属性用法详解_Android

本文实例讲述了Android中persistent属性用法.分享给大家供大家参考,具体如下: 前段时间在研究telephony时,一直没有在framework下发现对telephony的初始化(PhoneFactory.Java中的makeDefaultPhones函数)的调用.结果全局搜索之后发现在application PhoneApp(packages/apps/Phone)中调用了.但是application PhoneApp既没有被Broadcast唤醒,也没有被其他service调用

JQuery中DOM事件绑定用法详解_jquery

本文实例讲述了JQuery中DOM事件绑定用法.分享给大家供大家参考.具体分析如下: 在文档加载完成后,如果打算为元素绑定事件来完成某些操作,则可以使用bind()方法来对匹配元素进行特定事件的绑定,bind()方法的调用格式为: bind( type [, data] , fn); bind()方法有3个参数,说明如下. 第1个参数是事件类型,类型包括:blur.focus.load.resize.scroll.unload.click.dblclick.mousedown.mouseup.m

jQuery中delegate()方法的用法详解_jquery

delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数.下面我们具体来了解一下. 语法结构: 代码如下: $(selector).delegate(childofselector,type,data,function) 参数说明: childSelector 必需.规定要附加事件处理程序的一个或多个子元素. event 必需.规定附加到元素的一个或多个事件. 由空格分隔多个事件值.必须是有效的事件. data 可选.规定传递到函

MySQL中BETWEEN子句的用法详解_Mysql

可以使用IN子句来代替相结合的"大于等于和小于等于"的条件. 要了解BETWEEN 子句考虑的EMPLOYEE_TBL表有以下记录: mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+---------------

js中 javascript:void(0) 用法详解_javascript技巧

javascript:void(0)表示不做任何动作.如: 复制代码 代码如下: <a href="javascript:void(0);" onclick="alert('ok');"></a>  这里表示这个链接不做跳转动作,执行onClick事件. 我想使用过ajax的都常见这样的代码: 复制代码 代码如下: <a href="javascript:doTest2();void(0);">here<

Android中persistent属性用法详解

本文实例讲述了Android中persistent属性用法.分享给大家供大家参考,具体如下: 前段时间在研究telephony时,一直没有在framework下发现对telephony的初始化(PhoneFactory.Java中的makeDefaultPhones函数)的调用.结果全局搜索之后发现在application PhoneApp(packages/apps/Phone)中调用了.但是application PhoneApp既没有被Broadcast唤醒,也没有被其他service调用