:after和:before用法总结

伪类包括:hover,:active,:link,:visited,还有css3里面的常用伪类选择器:last-child、:first-child、nth-child等等。

在css中不仅有伪类,还有一个伪元素

w3c上对伪类和伪元素的定义分别为:

  • 伪类:伪类用于向某些选择器添加特殊的效果。
  • 伪元素:伪元素用于将特殊的效果添加到某些选择器

css3为了明确伪类和伪元素的区别,已经明确了单冒号(:)用于css3伪类,双冒号(::)用于css3伪元素

但是,为了保证兼容性,现在伪元素普遍还是使用单引号。

 

伪元素:after和:before的定义和基本用法

:before 选择器在被选元素的内容前面插入内容

:after  选择器在被选元素的内容后面插入内容

使用content属性来指定要插入的内容

content有几个比较有用的值:

  •  [String] – 使用引号包括一段字符串,将会向元素内容中添加字符串。示例:
   a:after { content: "↗"; }
  •  attr() – 调用当前元素的属性,可以方便的比如将图片的 Alt 提示文字或者链接的 Href 地址显示出来。示例:
a:after { content:"(" attr(href) ")"; }
  • url() / uri() – 用于引用媒体文件。示例:
h1::before { content: url(logo.png); }
  • counter() –  调用计数器,可以不使用列表元素实现序号功能。具体请参见 counter-increment 和 counter-reset 属性的用法。示例:

一个简单的例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    blockquote{
        background-color: #ccc;
        color: #fff;
        height: 100px;
        width: 400px;
        text-align: center;
        line-height: 100px;
    }
    blockquote:hover:before{
        content: '啊啊啊啊哦';
        color: red;
    }

    blockquote:hover:after{
        content: '啊啊啊啊哦诶';
        color: green;
    }
    </style>
</head>
<body>
    <blockquote>我是一个blockquote</blockquote>
</body>
</html>

鼠标没有移动到blockqoute上的时候:

鼠标移动到blockqoute上时:

这样就实现了伪元素:before和:after将特殊的效果添加到blockqoute上

 

以上是用伪元素为被选择器添加特殊效果的例子

下面介绍伪元素的一种清除浮动的作用:

模拟float:center

利用伪元素:before和浮动,就能创造出两个美哦与内容的占位快,实现文字环绕图片的效果

代码如下:

.box .left{   //左边的文字块
        float: left;
    }

    .box .left:before{
        content: '';
        height: 245px;
        width: 153px;
        float: right;
    }

    .box .right{  //右边的文字块
        float: right;
    }

    .box .right:before{
        content: '';
        height: 245px;
        width: 153px;
        float: left;
    }

 

posted @ 2016-08-04 15:02  小牛刀  阅读(2125)  评论(0编辑  收藏  举报