老师,[data-dpr="2"] input这个是之前学的属性选择器,

老师,[data-dpr="2"] input这个是之前学的属性选择器,

但是ppt里的写法是input放在前面,后面是条件,我照着样子改了,但是却不生效?以哪里的写法为准呢?http://img1.sycdn.imooc.com//climg/5f1e4347098beef313400326.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

同学你好,body[data-dpr="2"]这种写法表示选择拥有data-dpr属性值2的body元素,但实际data-dpr是添加在html标签上的,如下所示:

http://img1.sycdn.imooc.com//climg/5f1e812809fcab7009170178.jpg

所以同学这种写法是不可以实现效果的。老师调整了下写法,帮助同学更好的理解,如下所示

单独写的[data-dpr="2"]表示选择拥有该属性的所有元素,由于只在html标签上添加该属性,所以选择的就是html标签,后面的body, a、input元素使用空格隔开,表示使用后代选择器选择html下的元素。

http://img1.sycdn.imooc.com//climg/5f1e8176099aa73f04520234.jpg

同学可以测试理解下,祝学习愉快~


提问者 慕斯卡0165078 2020-07-27 15:04:12

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->

    <!-- <meta http-equiv="X-UA-Compatible" content="ie=edge"> -->

    <title>通用适配应用-test</title>

    <link rel="stylesheet" href="css/base.css">

    <link rel="stylesheet" href="css/icons.css">

    <link rel="stylesheet" href="css/index.css">

    <script src="js/flexible-test.js"></script>

</head>


<body>

    <header class="header-container">

        <div class="navbar">

            <!-- 三部分 -->

            <div class="navbar-left">

                <i class="iconfont icon-scan"></i>

            </div>

            <div class="navbar-center">

                <!-- 三部分 -->

                <div class="searchBox">

                    <div class="searchBox-prepend">

                        <i class="iconfont icon-search"></i>

                    </div>

                    <input type="text" class="searchBox-input" placeholder="开学季有礼,好货5折起">

                    <div class="searchBox-append">

                        <i class="iconfont icon-close"></i>

                    </div>

                </div>

            </div>

            <div class="navbar-right">

                <i class="iconfont icon-msg"></i>

            </div>

        </div>

    </header>


</body>


</html>


*{

    box-sizing: border-box;

    margin:0;

    padding:0;

}


body{

    font-size: 12px;

    color:#5d655d;

}

a{

    font-size: 12px;

    color:#686868;

    text-decoration: none;

}

input{

    font-size: 12px;

    border:none;

    background:none;

    outline: none;

}

/*[data-dpr="2"] input 有空格 */

body[data-dpr="2"],

a[data-dpr="2"],

input[data-dpr="2"]{

    font-size: 24px;

}

body[data-dpr="3"],

a[data-dpr="3"],

input[data-dpr="3"]{

    font-size: 36px;

}

li{

    list-style: none;

}

img{

    vertical-align: top;

    border:none;

    width:100%;

}


好帮手慕慕子 2020-07-27 11:53:15

同学你好,这是两种书写方式。

[data-dpr="2"] input这种写法,[data-dpr="2"]和input之前需要使用空格隔开,html标签上设置了data-dpr属性值为2才可以生效。

Element[attribute="value"]Element和[attribute="value"]之间没有空格,表示选择具有指定属性的element元素。

祝学习愉快~

  • 提问者 慕斯卡0165078 #1
    我按照Element[attribute="value"]这种方式改写不生效,不知道是什么原因,我贴上代码你看看
    2020-07-27 15:03:33
好帮手慕慕子 2020-07-27 11:22:44

同学你好, 是同学记错了,之前学的属性选择器确实是将条件写在后面,写法如下所示

http://img1.sycdn.imooc.com//climg/5f1e487309d2853412050293.jpg

但当前课程中老师的写法,[data-dpr="2"]单独就表示一个属性选择器了。以上图中的写法为准,属性选择器可以省略Element

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 慕斯卡0165078 #1
    课程里老师就是这样写的啊[data-dpr="2"] input 而且生效的,所以我才有疑问
    2020-07-27 11:30:40
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师