[英]conflict between the same class or id of multiple css files
有没有办法阻止多个css文件的同一个类或id之间的冲突。 正如我在下面解释为了更好地理解:
有一个主网页有几个<div>
但有一个<div class"dynamic">
,它总是重新加载包括css files
的内容。 假设任何类的母版页具有相同的名称,以便在属性不同时重新加载元素的类。 那么我应该如何处理这个以阻止冲突。
master.html
<html>
<head> //attached master.css file here </head>
<body>
<div class="myClass"> </div>
<div class="dynamic"> /* often reload elements by ajax */ </div>
</body>
</html>
master.css
.myClass { height: 100px; width: 150px; background : red;}
.dynamic { height: 200p; width: 200px; }
现在我将重新加载的html元素和css文件显示到母版页的dynamic div
中
reloaded tag line by ajax : <div class"myClass"> </div>
reload.css
.myClass{height: 30px; width: 25px; background: yellow; }
现在您可以看到有两个具有相同名称但属性不同的类。 那我该如何制止冲突呢?
@Edit感谢大家的支持和时间,但我的问题在这里有所不同。
动态重新加载的内容和css文件从客户端/用户机器流式传输,而master html page & it's css
直接从服务器传输。
所以无论内容在动态div中加载,它都来自客户端( eg tag lines & css, js
)。 在这种情况下,我无法处理刚刚由ajax()
重新加载的css文件,所以我认为它可以使用js/jQuery fn()
进行排序。
您可以应用CSS的级联规则:
在你的情况下, div.myClass
里面的div.dynamic
应该覆盖div.myClass
属于body
。
你调整reload.css
规则
.dynamic .myClass{height: 30px; width: 25px; background: yellow; }
在确定哪些规则应该应用于html div时应用的级联规则可以在这里引用
由于OP只能控制master.css
,因此上述解决方案无效。 因此,我建议使用子选择器将CSS规则限制为仅限于外部div.myClass
。 将master.css
的规则修改为:
body > .myClass {...}
此规则仅适用于.myClass
这是孩子body
。 它为内部.myClass
div留下了样式空间。
选项1:更具体的选择器
.dynamic .myClass { }
该选择器选择的.myClass
即的后代元件.dynamic
。
.dynamic > .myClass { }
器选择.myClass
是直接子元素.dynamic
。
选项2:内联CSS
<div class="dynamic">
<div class="myClass" style="background-color: yellow;"></div>
</div>
选项3:使用不同的类。
UPDATE
如果要避免以前定义的属性被以后定义的值覆盖,可以使用!important
语法。
.myClass { background-color: red !important; } /* Sets the property to red */
.myClass { background-color: yellow; } /* Property is NOT overwritten */
如果我正确理解你的问题,这应该排序。
因此,您应该将!important
添加到似乎被覆盖的属性中。
div.myclass { ble ble }
div.main div.myclass { ble ble }
<body>
<div class="myclass"></div>
<div class="main><div class="myclass"></div></div>
</body>
最后加载的同名css类将覆盖前一类设置的任何内容。 但是,如果使用内联样式属性,则始终优先于css文件设置的任何内容(因此使用内联样式是一个选项)。
您还可以使用不同的样式名称或使用标记名称div.myClass
或id的#myDiv.myClass
阐明您的样式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.