[英]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.