CSS3: box-sizing 属性的简单认识

定义和用法:

box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。

默认值:content-box;

继承性:无;

css版本:css3

语法:
box-sizing: content-box | border-box  |inherit;

属性值说明:

content-box

默认值;由css2.1规定的宽度高度行为;宽度和高度分别应用到元素的内容框;在宽度和高度之外绘制元素的内边距和边框。

可以理解为:对元素设置border和padding最终会改变元素的width,height

border-box

为元素设定的宽度和高度决定了元素的边框盒;

即:为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制;

内容的宽度=已设定的宽度和高度 - 边框和内边距。

可以理解为:对元素设置border和padding不会改变元素的width,height;只在元素既定的宽和高范围内进行绘制

inherit

规定应从父元素继承 box-sizing 属性的值。

我们可以利用该属性值,通过对顶层父元素设置 box-sizing ,让子元素继承的方式,轻松实现box-sizing 设定

如:

html{
box-sizing:border-box;
}
*,*:before,*:after{
box-sizing:inherit;
}

  

示例:

在线演示:http://codepen.io/anon/pen/LVvrdy

<div class="box box1">
	 box-sizing:border-box
	 为元素设定的宽度和高度决定了元素的边框盒。
     就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。
     通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。
</div>
<div class="box box2">
	box-sizing:content-box
	这是由 CSS2.1 规定的宽度高度行为。
	宽度和高度分别应用到元素的内容框。
	在宽度和高度之外绘制元素的内边距和边框。
</div>
<div class="box box3">
	box-sizing:inherit;
	从父元素继承box-sizing属性
</div>
    html{
    	box-sizing:border-box;
    }
    *,*:before,*:after{
    	box-sizing:inherit;
    }
    body{
     background-color:#eee;
    }
    .box{
    	width: 200px;
    	height: 200px;
    	padding: 10px;
    	margin-left: 25px;
    	float: left;
    	color:#fff;
    	font-size: 13px;
    	line-height: 1.5em;
    	border:5px solid #fff;
     box-shadow:0 1px 4px rgba(0,0,0,.15);
    }
    /*border-box:在宽度和高度之内绘制元素的内边距和边框*/
    .box1{
    	-moz-box-sizing:border-box;
    	-webkit-box-sizing:border-box;
    	box-sizing:border-box;
    	background-color: #33475f;
    }
    /*content-box:在宽度和高度之外绘制元素的内边距和边框 */
    .box2{
    	-webkit-box-sizing:content-box;
    	-moz-box-sizing:content-box;
    	box-sizing:content-box;
    	background-color: #9d55b8;
    }
    /*inherit:从父元素继承box-sizing属性*/
    .box3{
    	-webkit-box-sizing:inherit;
    	-moz-box-sizing:inherit;
    	box-sizing:inherit;
    	background-color: #56abe4;
    }

  

实现效果:

时间: 2024-12-22 09:14:00

CSS3: box-sizing 属性的简单认识的相关文章

CSS盒子模型之CSS3可伸缩框属性(Flexible Box)

CSS盒子模型(下) 一.CSS3可伸缩框(Flexible Box) 可伸缩框属性(Flexible Box)是css3新添加的盒子模型属性,有人称之为弹性盒模型,它的出现打破了我们经常使用的浮动布局,实现垂直等高.水平均分.按比例划分等分布方式以及如何处理可用的空间.使该模型,可以很轻松的创建自适应浏览器窗口的流动布局或自适应字体大小的弹性布局.但是它有一定的局限性,在firefox.chrome这浏览器下需要使用它们的私有属性来定义:firefox(-moz).chrome(-webkit

CSS3中的counter和content属性,一些简单的内容显示就不需要JS去实现了

HTML的代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

css3的部分属性

1.阴影box-shadow:x轴偏移量 y轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式] 注意:inset(内阴影) 可以写在参数的第一个或最后一个,其它位置是无效的实例 正值表示在对象的底部,负值表示在对象的顶部. .boxshadow-outset{ width:100px; height:100px; box-shadow:4px 4px 6px blue,4px 4px 6px red inset; } .boxshadow-inset{ width:100p

利用CSS3的transform属性让元素在页面居中

今天学到让元素在页面中水平居中的新写法,利用了CSS3的transform属性,通过设置translate的值来改变元素的位置. 1.先来看看怎么实现的 页面中放一个div,width和height随便设置大小和背景色,以便查看效果: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>利用CSS3的

CSS3的transform属性

CSS3的一些属性可能比较新,有一些书从国外翻译到国内的时间上会延缓1-2年.所以有一些东西还需要及时整理. 下面说一下CSS3的一个属性:transform 其实字面上的意思已经很明显了就是变化,变幻的意思. 那到底怎么个变法? transform可以选下面几个值: 旋转-rotate(rotatex,rotatey) 倾斜-skew 缩放-scale 移动-translate 下面给出的例子可能都非常简单,真正详细的还是看W3School毕竟是定期更新的 1.rotate a.rotate{

分别用css3、JS实现图片简单的无缝轮播功效

本文主要介绍分别使用CSS3.JS实现图片简单无缝轮播功效: 一.使用CSS3实现:利用animation属性 (实现一张一张的轮播,肉眼只看见一张图片) HTML部分比较简单,两个div下包着几个img标签:为了实现无缝轮播,注意第一张图片要与最后一张图片相同: <div class="out"> <div class="imgs"> <img src="img/beatuy.jpg"/> <img s

CSS3的新增属性及其用法

CSS3的新增属性及其用法 现如今,随着 Web2.0 技术的流行,之前的 CSS2 标准和相关技术似乎已经满足不了日益增长的开发需求:人们需要实现更加美观.用户体验更好的界面.CSS3,这个新一代的标准应运而生.为了满足现有的对于 Web UI 的开发需求,它提供了一系列强大的功能,如许多新的 CSS 属性(文字,布局,颜色等等),各种 CSS 特效,甚至还支持 CSS 动画.元素的变换.这些 CSS 新特性在现阶段可以说都是非常强大和完善的,您只需要加入几行简单的 CSS 代码便可以实现出一

js的nextSibling属性用法简单介绍

js的nextSibling属性用法简单介绍:此属性可以返回当前节点的下一个同级节点.如果下一个同级节点不存在,则此属性返回值是null.语法结构: elementNode.nextSibling 代码实例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softw

nextSibling属性用法简单介绍

js的nextSibling属性用法简单介绍:此属性可以返回当前节点的下一个同级节点.如果下一个同级节点不存在,则此属性返回值是null.语法结构: elementNode.nextSibling 代码实例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softw

CSS3可伸缩框属性,可用于等分显示子元素或按比例显示子元素的大小

用法跟Android的android:layout_weight属性类似,可类比Android中的用法,这样比较好记,由于目前所有浏览器都不支持大部分的属性,所以所有的属性都需要加上Firefox.Safari.Opera 以及 Chrome支持替代的-moz-和-webkit-前缀,现在基本上所有的CSS3属性都应该这样做,即每个属性都需要至少设置三个,参考下面的例子. 父容器属性: display:box;当定义了这个属性时,子元素想居中显示时margin:0px auto是无效的,需使用t