如何使用css使最后一段中的第一句粗体变粗?我还想在最后一段的顶部添加额外的填充,以便它将环绕图像。如果我增加浮动图像底部的填充,段落不会包裹到图像的底部齐平左边缘,它只是沿着它的右边流动 - 而不是我想要的。我将一个类绑定到“p”元素,因为我只想影响某个段落(我没有看到“:last-child”伪元素也不知道你是否可以使用两个伪元素一个元素或类)。
#wf_mainContent_left p.last_wfp:first-line {
padding-top:20px;
font-weight:bold;
color:red;
}
HTML
<p class="last_wfp">This is the first sentence that I want bold and red. This is the second
sentence that I don't want that treatment.</p>
当我只想要第一个句子时,即使它们在同一行上,这两个句子都会加粗。这应该可以根据this tutorial来完成。并且对填充没有影响。我尝试添加<br>
标记,但它增加了很多空间。我尝试了<br>
标签的样式,但根据我刚读过的this post,这是不可能的。无论如何,我只想要第一行是粗体,而不是两个句子。
答案 0 :(得分:3)
(我没有看到“:last-child”伪元素,也不知道你是否可以在一个元素或类上使用两个伪元素)
:last-child
是一个CSS3伪类。它不是伪元素,因此您始终可以将:first-line
附加到选择器上。
如果您不担心浏览器兼容性,可以轻松使用:
#wf_mainContent_left p:last-child:first-line {
padding-top:20px;
font-weight:bold;
color:red;
}
如果您需要兼容性,请坚持使用现有的CSS类解决方案。
至于生成过多空格的br
,请查看是否可以减少line-height
的{{1}}。
答案 1 :(得分:1)
@BoltClock有CSS答案。
如果您正在寻找跨浏览器兼容性并且您愿意使用js,则可以执行以下操作:
CSS
.last_bold{
font-weight:bold;
color:red;
padding-top:2em;
display:inline-block;
}
<击> 撞击>
<击>var a = $('.last_wfp').text();
var b = a.split('. ');
$('.last_wfp').html('<span class="last_bold">' + b[0] + '</span>' + '. ' + b[1]);
击> <击> 撞击>
修改强>
Per mr.nicksta的观察:
寻找一段时期的第一个索引可能更有效率 然后从开始到那个位置创建一个子串?还有这个 方法假设每个段落元素只有两个句子,任何进一步 句子丢失了。
这是修改后的代码,应该处理任何句子。
var a = $('.last_wfp').text();
var b = a.slice(0, a.indexOf('. '));
var c = a.slice(a.indexOf('. '), a.length);
$('.last_wfp').html('<span class="last_bold">' + b + '</span>' + c);
答案 2 :(得分:0)
第一行伪元素表示文本的第一个格式化行。它应该在块级元素,内联块,表格标题或表格单元格中。
它不会处理您的符号(点回车...),仅基于格式和块大小。
注意浏览器的兼容性。你会在那里找到一张好照片:http://reference.sitepoint.com/css/pseudoelement-firstline
请参阅问题其他部分的其他答案我不会复制粘贴