Psy*_*ohn 5 css styles conflict
为 html 小部件创建 css 选择器的最佳策略是什么。这些选择器不应与子元素或可能的通用选择器发生冲突。
/* this item class it is already done, has no relation with my widgets´ items
and i can´t modify it*/
.item { color:red; }
.my-first-widget{...}
.my-first-widget .item { color: blue; font-size:16px;}
.my-second-widget{...}
.my-second-widget .item { font-size:14px;}
Run Code Online (Sandbox Code Playgroud)
上面代码的问题:
哪个是样式化可导出小部件的最佳解决方案?
解决方案1(使用父类a前缀)
.my-first-widget{...}
.my-first-widget-item { color: blue; font-size:16px;}
.my-second-widget{}
.my-second-widget-item { font-size:14px;}
Run Code Online (Sandbox Code Playgroud)
解决方案 2(使用子选择器)
.my-first-widget{...}
.my-first-widget > .item { color: blue; font-size:16px;}
.my-second-widget{ color: black;}
.my-second-widget > .item { font-size:14px;}
Run Code Online (Sandbox Code Playgroud)
使用解决方案 2 我仍然与一般的 .item 选择器有冲突......
还有其他想法吗?
我认为以下内容可能对您有用。
如果这是您的 HTML:
<div class="project">
<div class="item">item outside widget</div>
<div class="my-second-widget"><span class="item">item</span></div>
</div>
Run Code Online (Sandbox Code Playgroud)
试试这个CSS:
<div class="project">
<div class="item">item outside widget</div>
<div class="my-second-widget"><span class="item">item</span></div>
</div>
Run Code Online (Sandbox Code Playgroud)
请参阅演示: http: //jsfiddle.net/audetwebdesign/3eLpU/
设置color: inherit为.my-second-widget .item,这将强制嵌套.item继承来自.my-second-widget(如果已设置)的颜色值,或.project(如果已设置)或最终主体(设置或默认值)的颜色值。
如果存在顶级.item规则,它将应用于 之外.my-second-widget。
| 归档时间: |
|
| 查看次数: |
5484 次 |
| 最近记录: |