尤明明Blog

网站建设 | 前端切图,技术不仅是一种专业,更是一种责任!

您的当前位置: 首页 » 前端学习 » css+html »

CSS ::first-line伪元素详解

2019-03-09   Umming   css+html    评论(0)    浏览(2598)


::first-line伪元素不会选择内联元素的第一行文字。也就是说,::first-line属性对于display: inline的元素无效,它只对display属性为block、inline-block、table-cell、table-caption或list-item的元素有效。

一段文字的第一行是多少个字,取决于页面的宽度和字体大小等各种因素。

如果是在一个块级元素(如<div>)中包含一段文本(如<p>元素),那么<div>元素的::first-line匹配的是<p>元素的第一行。

<div>
   <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit...</p>
</div>

display为table-cell或inline-block的元素的第一行不能作为其父元素的第一行。所以下面的例子中,<div>元素的第一行不是first。

<div>
   <p style="display: inline-block">
       first
       <br>
       section
   </p>
   third
</div>

考虑以下的一段文本,如果在文本之前使用了<br>换行符,那么::first-line将不会选择任何东西。

<p><br>Lorem ipsum dolor sit amet, consectetuer adipiscing elit...</p>

可以用来修饰 ::first-line 的CSS属性

只有一部分的CSS属性可以用来修饰::first-line属性,它们是:

字体属性:font、font-style、font-variant、font-weight、font-size、line-height和font-family。

背景属性:background、background-color、background-image、background-position、background-repeat、background-size和background-attachment。

text-decoration、text-transform、letter-spacing和word-spacing。

关于:和::的区别

在别人书写的CSS代码中,你可能经常看到有人使用:first-line作为伪元素,而有一些人则使用::first-line作为伪元素。它们之间有什么区别呢?

在CSS1和CSS2规范中,伪元素通过一个冒号:来定义,例如:hover。在CSS3规范中,使用双冒号::语法来表示伪元素(pseudo-elements),以区别于伪类(pseudo-classes)。

/* 旧的CSS2语法 */

.element:first-line {

   /*  */

}

/* 新的CSS3语法 */

.element::first-line {

   /*  */

}

只要是支持双冒号语法的浏览器都支持单冒号语法。IE8不支持双冒号语法,如果你要支持IE8浏览器,建议使用单冒号语法。

示例代码

下面的代码为段落的第行设置一些样式。

p::first-letter {
 font-family: "Crimson Text";
 font-size:2em;
 color:red;
}

浏览器支持

支持双冒号语法的::first-line伪元素的浏览器有:Chrome, Firefox, Safari, Opera, Internet Explorer 9+ 以及 Android 和 iOS。

双冒号语法是CSS3的语法,IE8浏览器不支持双冒号的语法,仅支持单冒号的:first-letter语法。

标签: css属性

本文链接:https://www.umming.com/css_html/108.html

声明:本站信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!


发表评论:

//