首页 > 如何做到:点击div其他部位时div背景变灰色;点击一个div中的icon时使icon背景变灰色,同时div背景不变色

如何做到:点击div其他部位时div背景变灰色;点击一个div中的icon时使icon背景变灰色,同时div背景不变色

如题
如何做到:点击div其他部位时div背景变灰色;点击一个div中的icon时使icon背景变灰色,同时div背景不变色?


<div class="ac_published">
    <div class="right">
        <i class="fa fa-share-alt text-colorful hover-pointer icon-share"></i>
        <i class="fa fa-pencil text-colorful hover-pointer icon-edit"></i>
    </div>
</div>

css我是这样写的,但是这样写的话,点击icon的时候,div背景也会变色。。

    .ac_published:active{
        background-color: #e1e1e1;
    }
    .ac_published .right .icon-share:active{
        background: #a94442;
    }

请问该怎么处理啊
谢谢


<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <title>test</title>
    <style>
    .ac_published{
        border:1px solid red; width:500px;
    }
    .icon-share, .icon-edit{
        background:blue; padding:10px; display:inline-block; margin:20px;
    }
    .ac_published:active{
        background-color:#e1e1e1;
    }
    .ac_published .right .icon-share:active{
        background:#a94442;
    }
    </style>
</head>
<body>

<!--overlay用来遮盖ac_published,不让点到,鼠标移上设置白色,鼠标移出设置透明-->

<div class="ac_published">
<div id="overlay">
    <div class="right">
        <i class="fa fa-share-alt text-colorful hover-pointer icon-share"
           onmouseover="document.getElementById('overlay').style='background:white'"
           onmouseout ="document.getElementById('overlay').style='background:transparent'"
        >文字1</i>
        <i class="fa fa-pencil text-colorful hover-pointer icon-edit">文字2</i>
    </div>
</div>
</div>

</body>
</html>


这是最简便的,你试试吧,
觉得不好看的话你就把onmouseover/onmouseout写到<script></script>里


.ac_published:active的时候包括除icon外区域点击,也包括了icon区域点击;
除非div与icon不是上下级关系,而是同级关系;
如果DOM结构不变,使用js方法吧;

【热门文章】
【热门文章】