【发布时间】:2019-10-30 03:15:59
【问题描述】:
我有一个 HTML 标记,我使用伪 :before 选择器在每个 h1 元素之前注入文本 Chapter。我还使用了display:block 属性,以便标签Chapter 出现在单独的行上。但是当我尝试应用text-indent 样式时,只有通过:before 选择器插入的内容会缩进。 h1 元素的内容不会随着文本“Chapter”移动。
这是我原始 HTML 的简化版本。
.chapter{
background-color:grey;
height:100px;
width:200px;
text-indent:50px;
}
.chapter:before{
content:"Chapter 1";
display:block;
}
.l2{
background-color:red;
height:100px;
width:200px;
}
.l3{
background-color:orange;
height:100px;
width:200px;
clear:both;
}
.container{
margin:0.3in;
clear:both;
}
<div class="container">
<div class="chapter">
Getting Started
</div>
<div class="l2">
Level 2
</div>
<div class="l3">
Level 3
</div>
</div>
实际结果
只有标签“Chapter”是缩进的。
预期结果
h1 内容Getting Started 应与标签Chapter 一起缩进。
【问题讨论】:
-
Getting Started仅在视觉上似乎位于单独的行上。在您的代码中,它位于Chapter 1之后的同一行。因此,text-indent工作正常,并在行首之前放置了一些空间。请注意,没有 h1 内容。如果您按照我的想法将Getting Started包装在<h1>中,它也会缩进,但对于块和换行来说也太大了。 -
stackoverflow.com/users/2948042/vince。 @文斯谢谢。坦率地说,我认为当我使用“display:block”时,伪 :before 和“Getting Started”都可以单独定位。我无法在 h1 中单独包装“入门”,因为我通过 :before 伪选择器插入“章节标签”。有没有办法插入标签,使它像一个独立的元素?或者有没有办法单独针对入门?任何帮助/输入将不胜感激。
-
我不清楚你想做什么。如果您将
Getting Started包装在h1中并使用.chapter:before添加Chapter 1,并保持其他所有内容不变,则它们都会缩进并允许您独立定位它们。然后你只需要调整h1的字体大小,使它不会在块内换行。 -
知道了。我会尝试并回复您。
-
@Vince,它起到了神奇的作用。对我来说,这是一个复杂的场景。你的解释帮助我理解发生了什么。如果您可以根据您的输入返回并修复它。现在标签和 h1 元素可以按我想要的方式缩进。万分感谢。如果您提供说明作为解决方案,我会接受。在简单的 cmets 中没有办法做到这一点。再次感谢您。