开发者社区> 扬朋> 正文

CSS样式中选择器失效问题

简介: 对于怎么排查样式失效:    1. 学会使用小程序开发者工具提供的小程序调试工具和Chrome调试工具来排查原因(这会很大程度上减少排查问题的    时间);    2. 首先需要确认标签有可能使用什么来作为样式选择器,最常用的是标签、class、id,确认是否设置了相应的属性;    3.
+关注继续查看

对于怎么排查样式失效: 
   1. 学会使用小程序开发者工具提供的小程序调试工具和Chrome调试工具来排查原因(这会很大程度上减少排查问题的 
   时间); 
   2. 首先需要确认标签有可能使用什么来作为样式选择器,最常用的是标签、class、id,确认是否设置了相应的属性; 
   3. 使用调试工具查看样式是否真正落在该元素上,查看使用了那样样式; 
   4. 找到相应样式后检查编写格式和内容是否正确; 
   5. 样式覆盖,查找是不是有多个选择器同时作用于一个元素,并且有相同的样式设置,排除样式覆盖可能; 
   6. 如果是id选择器应该检查是否存在id重复,导致; 
   7. 查看是不是使用了多选择器导致页面结构改变时,忘记修改; 
   8. 查看是否存在js引入样式改变导致; 
建议: 
    A:不推荐使用多选择器,因为多选择在页面结构发生变化时(用户自己修改、或替换成组件时)可能忘记修改,导致页 
    面失效; 
    如图: 

        33_92_b985b08e9f32b65.png 

    整个选择器可以看出是指向image标签,如果我们需要修改页面的结构,即可以在image之前随便加上一个标签包住 
    image标签;这样就在无形中使加在image的样式失效,在刚开始的时候可能会记得会去在选择器中改一下,再加一 
    层,从而指向image标签;但是,如果随着页面的结构越来越复杂呢?隔一段时间之后需要改一下样式呢?或者这是 
    样式写完之后是另一个技术人员在维护呢?这些都是问题,最终的结果就是导致任何不经意的修改容易让原来的样式 
    失效,而且问题排查起来非常困难。 

      B: 建议使用class 选择器钩子,从css的方面出发来说: 
      1、相对于class选择器,id选择器的权重实在太重了(100),这在一些项目中会造成灾难性的样式污染,以及 
      权重陷阱。 
      2、id在文档内必须是唯一的,而样式很多具有复用性。当然,使用id也意味着你的css选择器完全不需要嵌套: 
复制代码

1
2
body #a{color:red} // 不必要的写法,除了额外增加选择器权重没有任何必要。
#a{color:red} // 这样即可


       至于为什么大多数js使用id作为钩子,主要因为js通过id查询dom的速度是最快的。 
       id是不是一定会和js挂钩,这个是未必的,以下情况可能必须使用class: 
       循环插入若干组件,不同组件内绑定dom相同Function时。 


   有什么问题请您在下面咨询,大家一起讨论交流

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《智能前端技术与实践》——第 2 章 前端开发基础 ——2.3 CSS 基础——2.3.2 CSS 选择器
《智能前端技术与实践》——第 2 章 前端开发基础 ——2.3 CSS 基础——2.3.2 CSS 选择器
15 0
Scrapy CSS选择器
Scrapy CSS选择器
12 0
一文解读:CSS语法、注释、使用方式、选择器。
一文解读:CSS语法、注释、使用方式、选择器。
16 0
CSS 选择器(超级详细,欢迎补充)2
CSS 选择器(超级详细,欢迎补充)2
20 0
CSS 选择器(超级详细,欢迎补充)1
CSS 选择器(超级详细,欢迎补充)
20 0
前端祖传三件套CSS的各种选择器之组合/复合选择器
前端开发者经常使用CSS来定义网页样式,包括颜色、布局和字体等。在CSS中,选择器是指用于选择HTML元素并应用样式的模式。有许多不同类型的CSS选择器可供使用,但本文将着重介绍组合/复合选择器。
5165 0
前端祖传三件套CSS的各种选择器之class选择器
在前端开发中,CSS是不可或缺的一部分,而选择器则是CSS最重要的组成部分之一。其中,class选择器被广泛应用于HTML文档中,可以根据元素的class属性值来选取HTML元素,并为其添加样式。以下将详细介绍class选择器的使用方法以及应用场景。
32 0
前端祖传三件套CSS的各种选择器之id选择器
在CSS中,选择器是用来选取HTML元素的一种方式,而id选择器则是其中最常用也最重要的一种。id选择器可以根据元素的唯一id属性来选取HTML元素,并为其添加样式。以下将详细介绍id选择器的使用方法以及应用场景。
14 0
前端祖传三件套CSS的各种选择器之属性选择器
当今互联网时代,前端开发已成为互联网领域不可或缺的一部分。而CSS则是前端开发中最为重要的技术之一,它用于定义HTML文档的呈现方式,从而使得网页可以更加美观、功能更加强大。在CSS中,选择器是一个非常重要的概念,其中属性选择器更是被称为祖传三件套之一。
21 0
前端祖传三件套CSS的各种选择器之标签选择器
CSS是前端开发中最基础和最重要的技术之一。它可以通过样式定义来控制页面元素的外观和布局。在这篇文章中,我们将介绍CSS的选择器之一——标签选择器。
27 0
+关注
扬朋
支付宝小程序开发者运营专家
文章
问答
视频
来源圈子
更多
文章排行榜
最热
最新
相关电子书
更多
零基础CSS入门教程
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多