标签选择器的坑

:nth-child

  • 要实现的效果:第三个p标签为红色
    <style>
        p:nth-child(3){
            color: red;
        }
    </style>
</head>
<body>
    <div>
        <p>1</p>
        <p>2</p>
        <a href="#"></a>
        <p>3</p>
        <p>4</p>
        <p>5</p>

    </div>
 </body>
  • 以上代码并不能实现第三个p标签为红色的效果,
 p:nth-child(3){
            color: red;
        }
  • 该段css的意思并不是:第三个p标签为红色
  • 而是:选择body下p标签的兄弟元素的第三个,然后再去确定它是不是p标签,如果是p标签那就变红,也就是是只有满足两个条件才会变红
    1. 第三个元素
    2. 同时是p标签

input不支持伪元素

  1. 从元素本身:
  • input元素的内容模型为空,没有独立的闭合标签,无法容纳别的标签作为自身的子元素
  1. 从选择器本身:before{content:””;} 和 :after{content:””;}
  • :before和:after伪元素指定生成的内容的样式和位置。
  • -:before和:after伪元素指定了一个元素文档树内容之前和之后的内容。'content’属性,与这些伪元素联用,指定了插入的内容。
  • 一个元素文档树内容之前和之后的内容就是指这个元素是要可以插入内容的,也就是说这个元素要是一个容器
  1. 从浏览器本身
  • input,img,iframe等元素都不能包含其他元素,所以不能通过伪元素插入内容。但是在Chrome 中checkbox和radio可以插入,通过浏览器的解析,这两种类型在浏览器中解析后的结构为对标签,而这又与第一点矛盾,所以这应该是浏览器的Bug了,或者就是在浏览器解析时,结构已经违背了html标签的规范
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值