鉴于您有能力更改页面的标记和 CSS,并且您不想添加额外的元素(例如<strong>
等),您可以尝试使用 CSS 计数器。计数器有很好的浏览器支持。
使用计数器,您可以自动编号数字,在内容之前添加文本“Figure X”,还可以设置样式,而无需对标记进行任何其他更改。这样做的最大优势是您不必手动编号,甚至不必担心将来对订单的任何更改。CSS 会自动处理它。您还可以添加所需的任何额外样式。
下面是一个示例片段:
body {
counter-reset: figure; /* Initializes the counter to 0 */
}
p {
counter-increment: figure; /* Increment the counter everytime p tag is encountered in DOM */
}
p:before {
content: "Figure " counter(figure)" "; /* Set Figure + Counter value as content */
font-weight: bold;
color: red;
}
<p>Lorem Ipsum...</p> <!-- Counter = 1, Before Content = Figure 1 -->
<p>Lorem Ipsum...</p> <!-- Counter = 2, Before Content = Figure 2 -->
<p>Lorem Ipsum...</p> <!-- Counter = 3, Before Content = Figure 3 -->
<p>Lorem Ipsum...</p> <!-- Counter = 4, Before Content = Figure 4 -->
<p>Lorem Ipsum...</p> <!-- Counter = 5, Before Content = Figure 5 -->
如果您不想对所有<p>
标签进行编号并且只想对特定<p>
标签进行编号,那么您可以为它们提供一个独特的类,如下面的代码片段所示。(注意:即使您添加了一个额外的类,粗体文本也仅限于“图 X”文本,并不适用于该文本的全部内容<p>
)。
body {
counter-reset: figure;
}
p.count {
counter-increment: figure;
}
p.count:before {
content: "Figure " counter(figure)" ";
font-weight: bold;
color: red;
}
<p class='count'>Lorem Ipsum...</p>
<p>Lorem Ipsum...</p>
<p class='count'>Lorem Ipsum...</p>
<p class='count'>Lorem Ipsum...</p>
<p>Lorem Ipsum...</p>
如果像您的问题中提供的片段一样,“图 x”文本仅适用于 中的第二段div class='imgcontainer'
,您仍然可以在不添加任何额外类的情况下执行此操作,如下面的片段:
body {
counter-reset: figure;
}
.imgcontainer > p + p {
counter-increment: figure;
}
.imgcontainer > p + p:before {
content: "Figure " counter(figure);
padding-right: 1ch; /* More padding-right means more space between Figure x and text */
font-weight: bold;
color: red;
}
<div class='imgcontainer'>
<p>
<img src='http://placehold.it/100/100'>
</p>
<p>Some Description</p>
</div>
<div class='imgcontainer'>
<p>
<img src='http://placehold.it/100/100'>
</p>
<p>Some Description</p>
</div>
<div class='imgcontainer'>
<p>
<img src='http://placehold.it/100/100'>
</p>
<p>Some Description</p>
</div>
<div class='imgcontainer'>
<p>
<img src='http://placehold.it/100/100'>
</p>
<p>Some Description</p>
</div>
注意: 1ch
表示元素字体中“0”字符的宽度。该ch
单元的浏览器支持较低,我仅使用它作为示例。您可以使用px
orem
或任何此类单位代替ch
.