问:如果让你实现下图,点击跳转后,让内容1增加一个背景颜色,你会怎么做呢?

  

  可能很多小伙伴第一反应是用JS,给跳转绑定点击事件,然后用DOM获取到内容1,在给其添加css样式。

  如果我跟你说用css来实现,你会不会一脸蒙蔽,然后想骂人。哈哈哈。其实用CSS3新增的伪类:target就能轻松搞定。

 

  W3C是这样定义的,如下图:

  

  并且该伪类兼容性也很好,现代浏览器都支持,只有ie8及以下不支持。

 

  有兴趣的小伙伴可以试试下面我写的demo

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style type="text/css">
            body {
                background-color: #000;
            }
            a {
                color: #fff;
                font-size: 30px;
            }
            .one,.two,.three {
                margin: 150px 0;
            }
            /*通过伪类:target获取点击事件*/
            .one:target {
                color: #fff;
                font-size: 40px;
            }
            .two:target {
                color: #CD5C5C;
                font-size: 40px;
            }
            .three:target {
                color: cadetblue;
                font-size: 40px;
            }
        </style>
    </head>
    <body>
        <a href="#one">one</a>
        <a href="#two">two</a>
        <a href="#three">three</a>
        
        <div id="one" class="one">123</div>
        <div id="two" class="two">456</div>
        <div id="three" class="three">789</div>
    </body>
</html>

 

  补充:其实CSS3还新增了很多好用的伪类。比如,:root(选择文档的根元素),:disabled(选择每个禁用的 <input> 元素)

  详见:http://www.w3school.com.cn/cssref/css_selectors.asp

 

 

有需要的朋友可以领取支付宝到店红包,能省一点是一点