码迷,mamicode.com
首页 > 其他好文 > 详细

使用伪类before和after

时间:2017-10-23 01:10:57      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:after   bottom   tom   css   eee   位置   class   nbsp   边框   

  对于伪类before和after的使用,完整地讲是不知道怎么使用,除开最基本对元素前后添加内容之外,可以使用这两个伪类的CSS属性达到令人满意的效果。

  1、添加元素内容:

<!DOCTYPE html>
<html>
    <head>
        <title>添加元素内容</title>
        <meta charset="utf-8" />
        <style>
           p{ padding: 20px;}
           p:before{content: "我是before添加的内容"; font-weight: bold;}
           p:after{content: "我是after添加的内容"; font-style: italic}
        </style>
    </head>
    <body>
    <p>我是元素里面的内容</p>
    </body>
</html>

 

   在这里添加了元素内边距,判断before和after的位置是包含在content之中还是之外,结果如下:

我是元素里面的内容

   可以看到,元素添加的内容实在content之中,并且对于伪类样式的设置,不会影响到元素的样式。

  2、展示列表的hover特效:

<!DOCTYPE html>
<html>
    <head>
        <title>展示边框出现效果</title>
        <meta charset="utf-8" />
        <style>
            .hover>li{
                position: relative;
                float: left;
                width: 80px;
                list-style: none;
                text-align: center;
            }

            .hover>li:before{
                content: "";
                border-bottom: 2px solid #5ac;
                position: absolute;
                top: 20px;
                width: 0;
                left: 50%;
                transition: all linear .5s;
                padding-bottom: 20px;
            }
            .hover>li:hover:before{
                position: absolute;
                width: 100%;
                top: 20px;
                left: 0;
            }
        </style>
    </head>
    <body>
    <ul class="hover">
        <li>01组</li>
        <li>02组</li>
        <li>03组</li>
    </ul>
    </body>
</html>

  上面的代码中,content,top及值,width,padding-bottom,transition都是必不可少的,只要有一点偏差就不能达到想要的效果。结果如下:

  • 01组
  • 02组
  • 03组

 

 

  3、由于这两个伪类属于元素的content部分,所以可以用来对元素进行边框外形的设置:

<!DOCTYPE html>
<html>
    <head>
        <title>设置边框样式</title>
        <meta charset="utf-8" />
        <style>
            .border{
                position: relative;
                width:150px;
                height: 36px;
                border:1px solid black;
                border-radius:5px;
                background: #eee;
                margin-left: 50px;
            }
            .border:before,.border:after{
                content: "";
                display: block;
                position: absolute;
                top:8px;
                width: 0;
                height: 0;
                border:6px solid transparent;
            }
            .border:before{
                left:-11px;
                border-right-color: #eee;
                z-index:1
            }
            .border:after {
                left: -12px;
                border-right-color: black;
                z-index: 0
            }
        </style>
    </head>
    <body>
    <div class="border"></div>
    </body>
</html>

  通过before和after的定位,利用位置差值和颜色差异,将突出的小角展示出来。结果如下:

 

   各种元素和css属性都是神通广大,只需要我们多试验,多发掘!

使用伪类before和after

标签:after   bottom   tom   css   eee   位置   class   nbsp   边框   

原文地址:http://www.cnblogs.com/zzmiaow/p/7712739.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!