盒模型

2016-07-01  本文已影响0人  cooore

盒子模型

CSS盒模型

width:<length>|<percentage>|auto|inherit

width:200px;

width:50%;参照父元素

引申:max-width,min-width

height:<length>|<percentage>|auto|inherit

引申:max-height,min-height

padding:[<length>|<percentage>]{1,4}|inherit

padding:20px;

padding:40px 30px 20px 10px;

TRBL 上右下左

padding的值缩写

padding:20px; == padding:20px 20px 20px 20px;

padding:20px 10px; == padding:20px 10px 20px 10px;

padding:20px 10px 30px; == padding:20px 10px 30px 10px;

对面相等,后者省略,4者相等,只设一个

margin:[<length>|<percentage>|auto]{1,4}|inherit

margin合并:毗邻元素的外边距会合并,取两者较大值;父元素与其第一个/最后一个子元素的外边距也可以合并,取两者较大值。

块元素的top与bottom外边距有时会合并(塌陷)为单个外边距(合并后最大的外边距),这样的现象称之为外边距合并(塌陷)。

下面三种基本情形会出现外边距塌陷:

毗邻兄弟元素

毗邻的兄弟元素的外边距会塌陷(当靠后的元素清除浮动时除外)。

父元素与第一个/最后一个子元素

如果块元素的marigin-top与它的第一个子元素的marigin-top之间没有border、padding、inline content、clearance来分隔,或者块元素的margin-bottom与它的最后一个子元素的margin-bottom之间没有border、padding、inline content、heightmin-heightmax-height分隔,那么外边距会合并(塌陷)。子元素多余的外边距会被父元素的外边距截断。

空块元素

如果块元素的marigin-top与margin-bottom之间没有border、padding、inline content、height、min-height来分隔,那么它的上下外边距将会合并。

当这些情形混合时,外边距合并更加复杂(两个以上外边距)。

即使外边距为0,这些规则仍旧生效。因此,无论父元素的外边距是否为0,第一个或者最后一个子元素的外边距会被父元素的外边距截断(根据上面的规则),在负外边距的情况下,合并后的外边距为最大正外边距与最小负外边距之和。

浮动及绝对定位元素外边距不会合并。

水平居中

margin:0 auto;浏览器自动分配多余空间

border:[<border-width>||<border-style>||<border-color>]|inherit

border-width:[<length>|thin|medium|thick]{1,4}|inherit

border-style:[solid|dashed|dotted|...]{1,4}|inherit

border-color:[<color>|transparent]{1,4}|inherit

border:1px dashed blue;

 border-radius:[<length>|<percentage>]{1,4}[/[<length>|<percentage>]{1,4}]?

前面四个值表示X方向半径,后面四个值表示Y方向上的半径

border-radius:10px;

border-radius:

0px 5px 10px 15px/

20px 15px 10px 5px;

border-radius:50%;圆

 内容溢出:overflow:visible|hidden|scroll|auto

引申:overflow-x,overflow-y

box-sizing:content-box|border-box|inherit

默认情况下宽、高设置的是内容区

box-shadow:none|<shadow>[,<shadow>]*

<shadow>:inset?&&<length>{2,4}<color>?

box-shadow:4px 6px 3px 0 red;

第一个值是水平偏移

第二个值是垂直偏移

第三个值是模糊半径

第四个值是阴影大小

color颜色默认文字颜色

阴影不占空间

outline:[<outline-width>||<outline-style>||<outline-color>]|inherit 轮廓,描边

outline-width:<length>|thin|medium|thick|inherit

outline-style:solid|dashed|dotted|inherit

outline-color:<color>|invert|inherit

outline:5px dashed blue;

- 不占空间

- border外

关于CSS属性的浏览器兼容性,可以通过caniuse 查询。

border-radius ie8及以下不支持

box-sizing ie7及以下不支持

box-shadow ie8及以下不支持

outline ie7及以下不支持

上一篇下一篇

猜你喜欢

热点阅读