
属性选择器
attr$="value"是CSS后缀匹配属性选择器,仅匹配属性完整值以指定字符串结尾的元素,不支持子串、正则,且默认不区分大小写。
直接修改element.style仅影响行内样式,优先级高但不持久;应优先用classList增删类名复用CSS规则;读取真实样式须用getComputedStyle();全局动态样式宜插入标签。
!important不参与优先级计算,而是直接获得层叠最高干预权;仅当同名属性无其他!important时必生效,适用于覆盖第三方样式、内联样式或调试等特定场景,但禁用于普通组件内部或滥用响应式规则。
推荐用[class^="icon-"]精确匹配以"icon-"开头的class属性值,但需注意它匹配整个class字符串开头;更稳妥的是添加统一前缀如btn-i...
用:not()排除特定段落样式时,只能传入简单选择器(如类名、ID、属性或伪类),不可用后代/子代等复合选择器;需配合父容器限定作用域或改用显式重置更可靠。
最轻量的CSS作用域隔离方案是用data-属性+后代选择器,如[data-comp="user-card"].avatar;需注意空格、避免ID/全局类、控制优先级。
类选择器(.btn)最直接可靠,只匹配带指定class的元素,不限标签类型;可组合标签名、父级类或伪类(如:not(.disabled))提升精准度;应避免宽泛命名与过深嵌套,必要时结合属性选择器增强...
动态元素应优先用data-*属性或属性选择器定位,避免依赖不稳定的class;事件代理配合class切换是主流方案;ShadowDOM需用:host或::slotted;SSR和渲染时序问题需用req...
该用~选择器当需匹配同一父元素下参考元素之后的所有同级兄弟元素,而+仅匹配紧邻的下一个;~在表单提示统一控制中更灵活,但要求DOM同级且顺序靠后,否则需改用父类、属性选择器等替代方案。
CSS群组选择器用逗号分隔多个选择器,使相同样式规则一次性应用到多个元素;它支持统一设置按钮、语义标签、表单禁用态等场景,但需注意逗号表示“或”关系、优先级独立计算、避免过度堆砌及兼顾语义化。