【CSS】盒子属性对于行内非替换元素的特殊性

91 阅读1分钟

盒子属性对于行内非替换元素的特殊性

对行内非替换元素(如span、i等)设置某些盒子属性如padding、margin、border,可能会触发意料之外的效果,下面进行详细解析。

假设有页面如下图,页面中各个元素类型如图中各元素文本所示。

上下padding的失效

为行内级非替换元素span1设置左右padding时,元素被正常撑大,但是设置上下padding时候元素不占据该部分空间,却仍然有相应的显示效果。代码如下。

.span1{
    padding: 10px;
}

效果如下图。

上下margin的失效

为行内级非替换元素span1设置左右margin时,页面可以有正常间距显示,但是设置上下margin时会失效。代码如下。

.span1{
    margin: 10px;
}

效果如下图。

上下border的失效

为行内级非替换元素span1设置左右border时,元素被正常撑大,但是设置上下border时候元素不占据该部分空间,但有相应的显示效果。代码如下。

.span1{
    border: 10px solid darkred;
}

效果如下图。

综上所述,行内非替换元素常常仅用于设置段落内某行的部分内容,而不应当承担太多职责,在使用时不应为其设置过多的盒子属性。