文本缩进在 HTML5 中不起作用



有两列,我放了text-indent,但它只影响左边 列,两列都在同一个类内,但只有左侧在工作, 为什么?右列应与左列相同 列,.newspaper、span{} 和
.newspaper span{} 之间有什么区别?

<!DOCTYPE html>
<html>
<head>
<style>
body{
width:600px;
}
.newspaper {
text-align: justify;
-webkit-column-count: 2; /* Chrome, Safari, Opera */
-moz-column-count: 2; /* Firefox */
column-count: 2;
font-family: "Times New Roman", Times, serif;
}
.newspaper,
span{
text-indent: 2em;
}
</style>
</head>
<body>
<div class="newspaper">
<span>yuyuy yuyuy yuyuy yuy</span> amet, consectetuer adipiscing elit. 
feeeeeeeeeeeeeeee
</br>
<span>yuyuy yuyuy yuyuy yuy</span> amet, consectetuer adipiscing elit. 
feeeeeeeeeeeeeeee </div>
</body>
</html>

第一个问题:

文本缩进仅在左列上工作的原因是 text-indent 属性指定文本块中第一行的缩进,并且由于同一文本块跨越两列,因此第一行是左列的开头。您可以向跨度添加一些左侧填充。这样。。

.newspaper span {
padding-left: 2em;
}

第二个问题:

.newspaper, span{}.newspaper span{}之间的区别在于,您在.newspaper, span{}内部的样式同时应用于.newspaper类和所有类,spans具有逗号等于拥有...

span{
text-indent:2em;
}

。在您的样式表中。

如果没有逗号,您只需选择该类中的所有spans

text-indent属性适用于块容器,如规范中所述

此外,另一个特定于您的注意事项:

由于 text-indent 属性仅影响"第一个格式化行",因此强制分隔符后的行将不会缩进。

<span>不被视为块级元素,请参阅此处的讨论

默认情况下,块级元素的格式与内联元素不同。通常,块级元素从新行开始,内联元素不开始。

span {
text-indent: 2em;
display: flex;
}

和:

span {
text-indent: 2em;
display: inline-flex;
}

上面的代码示例适用于缩进整个元素文本块(包括可能形成新行的溢出文本(的情况。

最新更新