学习before和after伪元素

参考:http://www.w3cplus.com/css3/learning-to-use-the-before-and-after-pseudo-elements-in-css.html

伪元素在文档中不实际改变什么,但是能插入css中,对用户可见,可通过除css控制。  

基本语法:

#example:before{
content:"#";
}

#example:after{
content:"*";
}

在内容模块中,伪元素如果没有设置content属性,伪元素是无效的;

单冒号跟双冒号区别:伪元素(双冒号),css3中伪类(单冒号);

可以设置content内容为空,当做一个无内容的盒子:

#example{
content:"";
display:block;
100px;
height:100px;
}

就语法而言,可以普遍应用伪元素,不用放在特殊元素上:示例代码:

:before{
content:"#";
}

虽然有效,但是没用,代码会在DOM每个元素内容前插入符号,即使删除了body标签和他所有的内容,仍会在页面上显示:一个在<html>里,另一个在<body>标签里。浏览器会自动创建;

插入的元素在默认情况下是内联元素,为了给它赋予高度,填充,边距,常常显示的定义它是一个块级元素;

可插入非文本内容:

a:after{
content:attr(href);
}

这会导致页面上的每一个<a>元素的href值立即被放置在每个各自的<a>元素的后面。在文档被打印时,它可以用作一个包含所有URl的打印样式表。

也可以用这个函数去获取元素的title属性,或者甚至是microdata的值。当然,并不是所有的例子都符合自己的实际,但根据不同的情况,一个特定的属性值作为一个伪元素可以是实际的;然而,获取title或者图像的alt的值并作为实际的伪元素显示在页面上是不可能的。

记住伪元素必须是被应用元素的子元素。图像,这是void(或者是空元素),没有子元素,所以它在这个列子中不可用,同样也适用于其他空元素,例如:<input>。

伪元素不会出现在DOM中,这些元素不是真正的元素,因此他们不可用,不要用伪元素生成内容,是网页可用性和可访问性的关键。

注入的元素是有关联的目标元素的子元素,但它会被置于这个元素的任何内容的前或后,所以不是插入到此元素内部,而是被置于它的前或后。

原文地址:https://www.cnblogs.com/Decmber/p/4755958.html