宽度的定义
宽度width(与高度height)是在网页布局中经常用到的属性,但作为新手容易会对两者的定义产生误解。下面我们给出width与height的准确定义:
- 一般地,一个元素的
width被定义为从左内边界到右内边界的距离,height则是从上内边界到下内边界的距离。
上述定义很清晰地指出,元素的width只是元素content内容区的宽度,不包括padding,border, 与margin,即元素的width并不表示元素的可视宽度。
使用auto与text-align:center的区别
auto与text-align:center都是在局中排版中常会用到的属性设置,他们很容易被混用,下面我们给出两者的准确定义:
- 如果设置
width、margin-left或margin-right中的某个值为auto,而余下两个属性指定为特定的值,那么设置为auto的属性会确定所需的长度,从而使元素框的宽度等于父元素的width。 - 而
text-align:center只用于居中块级元素中的内联内容。
因此,当我们想让一个块级元素在另一个块级元素中居中时(比如p在某个div中),text-align:center是无效的,而可以通过设置width:auto或者margin:auto实现自动局中效果。
百分比
百分比是实现页面自适应的重要途径,而元素百分比的宿主到底是谁一直是令人困扰的问题。其实CSS对于百分比的定义十分明确:
- 所有元素的百分比都是相对于其包含块( containing block)的
width。 - 在盒模型的设置属性中,除了
height的百分比是相对于包含块的height,其余的width、margin(不管是横向的margin-left还是纵向的margin-right)、padding(同上)都是相对于包含块的width。
至此我们发现,包含块( containing block)的确切定义就显得尤为重要。有时间的情况下会在这篇中进行进一步的补充或新开一篇进行介绍。