css的有关优先级的一个问题

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>jquery 项目</title>
    <script src="jquery.min.js"></script>
    <style type="text/css">
        .all{
            padding:0;
            text-align:center;
            width:841px;
            height:363px;
            margin-left:auto;
            margin-right:auto;
            overflow:hidden;
            position:relative;
        }
        .amg{
            width:2600px;
            height:363px;
            position:absolute;
            left:872px;
        }
        .all img{
            cursor: pointer;
        }
        .bn{
            /*z-index仅在定位中起作用*/
            position:absolute;
            /*在定位的标签里面的元素也需要使用定位,否则会被定位的元素覆盖导致不显示*/
            margin-top:320px;
            margin-left:740px;
        }

        .a,#b,#c{
             background:rgba(49, 49, 37, 0.66);
             color:#fff;

         }
        .bn .a:hover{
            background:rgb(187, 182, 26);
            color:green;
            cursor:pointer;
            font-size:18px;
        }
        .bn #b:hover{
            background:rgb(187, 182, 26);
            color:green;
            cursor:pointer;
            font-size:18px;
        }
        div .bn #c:hover{
            background:rgb(187, 182, 26);
            color:green;
            cursor:pointer;
            font-size:18px;
        }
        .bbn{
            background:rgb(187, 182, 26);
            color:green;
        }

    </style>
</head>
<body>
    <div class="all">
        <div class="amg">
            <img id="one" src="../images/2.png" />
            <img id="two" src="../images/3.jpg" />
            <img id="three" src="../images/4.jpg" />
        </div>
        <div class="bn">
            <a><button class="a" type="button">1</button></a><!--注意:如果不需要连接,一定要把href属性去掉,否则会出错。-->
            <a><button id="b" type="button">2</button></a>
            <a><button id="c" type="button">3</button></a>
        </div>
    </div>


    <script>
        $(document).ready(function(){
//            $("#a").css({"background":"rgb(187, 182, 26)","color":"green"});
            $(".a").addClass("bbn");
            /*wh:注意此处如果a为id,可以用$("#a").css(),但是不能用$("#a").addClass("bbn"),addClass()的效果会被上面#a的效果覆盖
            原因是id的优先级大于class,所以class的效果会被覆盖(通常用1表示标签名选择器的优先级,用10表示类选择器的优先级,用100标示ID选择器的优先级。
             标签内引入CSS的方式来写CSS,此时的优先级是最高的,为1000),但是可以使用$("#a").css(),因为此时的css相当于在标签内引入css,优先级最高,所以
             效果不会被覆盖*/
//            $("#a").addClass("bbn");
            $(".amg").animate({"left":"0"},500);
            $("#b").click(function(){
                $(".amg").animate({"left":"-872px"},500);//向左滑动效果
                $("#b").css({"background":"rgb(187, 182, 26)","color":"green"});
//                $("#b").addClass("bn");
                $(".a,#c").css({"background":"rgba(49, 49, 37, 0.66)","color":"#fff"});
                //$加多个id或者class时用逗号隔开,多个css用大括号,中间用逗号隔开
            });
            $("#c").click(function(){
                $(".amg").animate({"left":"-1744px"},500);
                $("#c").css({"background":"rgb(187, 182, 26)","color":"green"});
                $(".a,#b").css({"background":"rgba(49, 49, 37, 0.66)","color":"#fff"});
            });
            $(".a").click(function(){
                $(".amg").animate({"left":"0"},500);
                $(".a").css({"background":"rgb(187, 182, 26)","color":"green"});
                $("#b,#c").css({"background":"rgba(49, 49, 37, 0.66)","color":"#fff"});
            });
        })
    </script>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS样式在页面上应用时,会遵循一定的优先级规则。当多个样式规则同时作用于同一个元素时,会按照以下顺序决定最终呈现的样式: 1. **内联样式**(`style`属性直接写在元素上):这是最优先级的,如果元素有内联样式,那么它的值将覆盖其他所有外部定义。 2. **ID选择器**:使用`#id`选择器定义的样式,对匹配到的唯一ID具有较高优先级。 3. **类选择器和属性选择器**:`class`选择器(`.class`)、属性选择器(如 `[attribute]`、`:enabled`等)次之,它们对多个同类元素生效。 4. **标签选择器和伪类选择器**:例如`p`, `div`, `:hover`等,对同类型的元素具有较低优先级。 5. **继承**:如果子元素继承了父元素的样式,那么这个继承来的样式会根据上述的继承规则计算。 6. **CSS框架或库的优先级**:某些预设的CSS框架(如Bootstrap)可能有自己的内部优先级规则。 7. **CSS层叠**(`!important`声明):`!important`关键字用于强制样式不被其他样式覆盖,但如果有多处使用`!important`,最后的赢家是第一个遇到的`!important`声明。 8. **外链样式表**(`.css`文件):从外部引入的样式表的优先级低于内联样式和内联`style`属性,但高于内部定义在同一文档中的样式。 9. **内联`style`属性的嵌套**:如果在同一个元素上使用了多个`style`属性,后定义的属性会覆盖前定义的。 记住,理解CSS优先级有助于您编写更灵活且易于维护的样式代码。如果你在实际开发中遇到样式冲突,可以通过调整这些优先级或使用`!important`来解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值