尺寸与补白
width
语法:
width:长度值 | 百分比 | auto
默认值:auto
适用于:除非置换内联元素,table-row, table-row-group
之外的所有元素
继承性:无
动画性:当值为 长度值 | 百分比 时
计算值:指定的值
媒 体:视觉
取值:
- auto: 无特定宽度值,取决于其它属性值
- 长度值: 用长度值来定义宽度。不允许负值
- 百分比: 用百分比来定义宽度。百分比参照包含块宽度。不允许负值
说明:
定义元素的宽度。
- 对于
img
元素来说,若仅指定此属性,其height值将会根据图片源尺寸进行等比例缩放。 width
属性是盒模型的重要组成部分。- 对应的脚本特性为:width。
min-width
语法:
min-width:长度值 | 百分比
默认值:0
适用于:除非置换内联元素,table-row, table-row-group
之外的所有元素
继承性:无
动画性:当值为 长度值 | 百分比 时
计算值:指定的值
媒 体:视觉
取值:
- 长度值: 用长度值来定义最小宽度。不允许负值
- 百分比: 用百分比来定义最小宽度。不允许负值
说明:
定义元素的最小宽度。
- 当
min-width
属性的值小于width时,min-width
属性将会被忽略。 - 当
min-width
属性的值大于width时,min-width
属性将会被忽略,同时width
会忽略自己的值定义而使用min-width
的值作为自己的使用值。 - 当
min-width
属性的值大于max-width时,max-width
属性将会被忽略。 - 对应的脚本特性为:minWidth。
max-width
语法:
max-width:长度值 | 百分比 | none
默认值:none
适用于:除非置换内联元素,table-row, table-row-group
之外的所有元素
继承性:无
动画性:当值为 长度值 | 百分比 时
计算值:指定的值
媒 体:视觉
取值:
- none: 无最大宽度限制
- 长度值: 用长度值来定义最大宽度。不允许负值
- 百分比: 用百分比来定义最大宽度。不允许负值
说明:
定义元素的最大宽度。
- 当
max-width
属性的值小于width时,max-width
属性将会被忽略,同时width
会忽略自己的值定义而使用max-width
的值作为自己的使用值。 - 当
max-width
属性的值大于width时,max-width
属性将会被忽略。 - 当
max-width
属性的值小于min-width时,max-width
属性将会被忽略。 - 对应的脚本特性为:maxWidth。
height
语法:
height:长度值 | 百分比 | auto
默认值:auto
适用于:除非置换内联元素,table-row, table-row-group
之外的所有元素
继承性:无
动画性:当值为 长度值 | 百分比 时
计算值:指定的值
媒 体:视觉
取值:
- auto: 无特定高度值,取决于其它属性值
- 长度值: 用长度值来定义高度。不允许负值
- 百分比: 用百分比来定义高度。不允许负值
说明:
定义了元素内容区(Content Area)的高度
- 对于
img
元素来说,若仅指定此属性,其width值将会根据图片源尺寸进行等比例缩放。 width
属性是盒模型的重要组成部分。- 对应的脚本特性为:height。
min-height
语法:
min-height:长度值 | 百分比
默认值:0
适用于:除非置换内联元素,table-row, table-row-group
之外的所有元素
继承性:无
动画性:当值为 长度值 | 百分比 时
计算值:指定的值
媒 体:视觉
取值:
- 长度值: 用长度值来定义最小高度。不允许负值
- 百分比: 用百分比来定义最小高度。不允许负值
说明:
定义元素的最小高度。
- 当
min-height
属性的值小于height时,min-height
属性将会被忽略。 - 当
min-height
属性的值大于height时,min-height
属性将会被忽略,同时height
会忽略自己的值定义而使用min-height
的值作为自己的使用值。 - 当
min-height
属性的值大于max-height时,max-height
属性将会被忽略。 - 对应的脚本特性为:minHeight。
max-height
语法:
max-height:长度值 | 百分比 | none
默认值:none
适用于:除非置换内联元素,table-row, table-row-group
之外的所有元素
继承性:无
动画性:当值为 长度值 | 百分比 时
计算值:指定的值
媒 体:视觉
取值:
- none: 无最小高度限制
- 长度值: 用长度值来定义最大高度。不允许负值
- 百分比: 用百分比来定义最大高度。不允许负值
说明:
定义元素的最大高度。
- 当
max-height
属性的值小于height时,max-height
属性将会被忽略,同时height
会忽略自己的值定义而使用max-height
的值作为自己的使用值。 - 当
max-height
属性的值大于height时,max-height
属性将会被忽略。 - 当
max-height
属性的值小于min-height时,max-height
属性将会被忽略。 - 对应的脚本特性为:maxHeight。
margin
简写属性语法:
margin:[ 长度值 | 百分比 | auto ]{1,4}
默认值:看每个独立属性
适用于:所有元素,除非 table | inline-table | table-caption
的表格类元素之外
继承性:无
动画性:看每个独立属性
计算值:看每个独立属性
媒 体:视觉
分拆纵向独立属性语法:
vertical-margin:长度值 | 百分比 | auto
vertical-margin = margin-top
,margin-bottom
默认值:0
适用于:所有元素,除非 table | inline-table | table-caption
的表格类元素和非替代行内元素之外
继承性:无
动画性:当取值为 长度值 | 百分比 时
计算值:指定的百分比或绝对长度值
媒 体:视觉
分拆横向独立属性语法:
horizontal-margin:长度值 | 百分比 | auto
horizontal-margin = margin-right
,margin-left
默认值:0
适用于:所有元素,除非 table | inline-table | table-caption
的表格类元素之外
继承性:无
动画性:当取值为 长度值 | 百分比 时
计算值:指定的百分比或绝对长度值
媒 体:视觉
取值:
- auto: 水平(默认)书写模式下,vertical-margin计算值为
0
,horizontal-margin取决于包含块的剩余可用空间。 - 长度值: 用长度值来定义外补白。可以为负值
- 百分比: 用百分比来定义外补白。水平(默认)书写模式下,参照其包含块的width进行计算,其它情况参照height,可以为负值
说明:
简写属性。为元素设置所有四个方向(上右下左)的外边距。
-
margin
属性接受1~4
个参数值。如果提供四个参数值,将按上、右、下、左的顺序作用于四边;提供三个,第一个用于上,第二个用于左、右,第三个用于下;提供两个,第一个用于上、下,第二个用于左、右;只提供一个,同时用于四边。 -
非替代(non-replaced)行内元素可以使用该属性定义horizontal-margin;若要定义vertical-margin,必须改变元素为块级或行内块级。
-
外延边距始终透明,即不可见也无法设置背景等任何样式。
-
某些相邻的margin会发生合并,我们称之为margin折叠:
h2{margin:10px 0;} div{margin:20px 0;} ...... <h2>这是一个标题</h2> <div> <h2>这是又一个标题</h2> </div>
本例中,第1个h2的margin-bottom,div的margin-top,第2个h2的margin-top是相邻的,三者会被合并取其中最大的那个值作为最后的间隙,所以它们之间的margin间隙最后是(20px)。
如果给上例中的div加上border的话:
h2{margin:10px 0;} div{margin:20px 0;border:1px solid #aaa;} ...... <h2>这是一个标题</h2> <div> <h2>这是又一个标题</h2> </div>
本例中,第一个h2的margin-bottom(10px),div的margin-top(20px)将被合并,但第二个h2的margin-top不与它们合并,因为它被border分隔,不与它们相邻。
-
margin折叠常规认知:
- margin折叠只发生在块级元素上;
- 浮动元素的margin不与任何margin发生折叠;
- 设置了属性overflow且值为
非visible
的块级元素,将不与它的子元素发生margin折叠; - 绝对定位元素的margin不与任何margin发生折叠;
- 根元素的margin不与其它任何margin发生折叠;
-
对应的脚本特性为:margin。
分拆纵向独立属性。为元素设置上、下外边距。
- 替代(Replaced)行内元素可以应用该属性;非替代(non-Replaced)行内元素要使用该属性必须改变元素为块级或行内块级。
- 水平(默认)书写模式下,margin 合并只发生在vertical-margin上。
- 对应的脚本特性分别为:marginTop, marginBottom。
分拆横向独立属性。为元素设置上、下外边距。
- 所有的行内元素均可以应用该属性。
- 默认情况下,horizontal-margin不会发生 margin 折叠,除非将书写模式改变为纵向。
- 对应的脚本特性分别为:marginRight, marginLeft。
padding
简写属性语法:
padding:[ 长度值 | 百分比 ]{1,4}
默认值:看每个独立属性
适用于:所有元素,除table-row-group | table-header-group | table-footer-group | table-column-group | table-row
外
继承性:无
动画性:看每个独立属性
计算值:看每个独立属性
媒 体:视觉
分拆独立属性语法:
padding-*:长度值 | 百分比
padding-* = padding-top
,padding-right
,padding-bottom
,padding-left
默认值:0
适用于:所有元素,除table-row-group | table-header-group | table-footer-group | table-column-group | table-row
外
继承性:无
动画性:是
计算值:指定的百分比或绝对长度值
媒 体:视觉
取值:
- 长度值: 用长度值来定义内补白。不允许负值
- 百分比: 用百分比来定义内补白。水平(默认)书写模式下,参照其包含块的width进行计算,其它情况参照height,不允许负值
说明:
简写属性。为元素设置所有四个方向(上右下左)的内边距。
padding
属性接受1~4
个参数值。如果提供四个参数值,将按上、右、下、左的顺序作用于四边;提供三个,第一个用于上,第二个用于左、右,第三个用于下;提供两个,第一个用于上、下,第二个用于左、右;只提供一个,同时用于四边。- 需要注意的是,当我们为行内元素定义纵向内补白(
padding-top
/padding-bottom
)时,虽然不需要将之转化为行内块或者块级,但是给行内元素设置纵向内补白并不会影响布局。内补白会在当前元素的行框基础上向顶部和顶部外延,但是这些外延不会拓展新的布局大小(你甚至可以把它想象成类似outline)。 - 对应的脚本特性为:padding。
分拆独立属性。为元素单独设置上、右、下、左4个方向的内边距。
- 对应的脚本特性分别为:paddingTop, paddingRight, paddingBottom, paddingLeft。