学习before和after伪元素

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

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

基本语法:css3

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

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

在内容模块中,伪元素若是没有设置content属性,伪元素是无效的;浏览器

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

能够设置content内容为空,当作一个无内容的盒子:spa

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

就语法而言,能够广泛应用伪元素,不用放在特殊元素上:示例代码:code

:before{
content:"#";
}

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

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

可插入非文本内容:element

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

这会致使页面上的每个<a>元素的href值当即被放置在每一个各自的<a>元素的后面。在文档被打印时,它能够用做一个包含全部URl的打印样式表。

也能够用这个函数去获取元素的title属性,或者甚至是microdata的值。固然,并非全部的例子都符合本身的实际,但根据不一样的状况,一个特定的属性值做为一个伪元素能够是实际的;然而,获取title或者图像的alt的值并做为实际的伪元素显示在页面上是不可能的。

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

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

 

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

相关文章
相关标签/搜索