2020-3-29 前端達(dá)人
在我們寫頁面時,
有時會發(fā)現(xiàn)自己寫的css樣式無法生效,導(dǎo)致這種現(xiàn)象的原因有很多,下面列舉一些常見的原因希望可以幫到你,歡迎評論區(qū)補(bǔ)充。
如果你反復(fù)檢查認(rèn)為代碼沒有問題,那么可能是瀏覽器緩存的問題。在排查前先試一下清除瀏覽器緩存,重啟瀏覽器或者換個瀏覽器等手段,無效后再進(jìn)行進(jìn)一步排查。有可能自己什么都沒有做錯,就是因為緩存或者瀏覽器的問題導(dǎo)致,重置一下也許問題就解決了。
瀏覽器的‘F12’元素審核,看看哪些樣式?jīng)]有應(yīng)用上。
寫錯屬性名致使無法與html匹配,或?qū)傩灾挡环弦?guī)范;
html標(biāo)簽沒寫完整,漏了“<”或者”>”等;
,;{}看看這些符號是不是不小心使用了中文或者全角符號;
<span>設(shè)CSS樣式不起作用:例如:要定義span居中,必須先讓span成塊級元素顯示,也就是說,要先定義span的display:block;屬性,然后再給span添加邊距屬性margin:0px auto;
css樣式中間沒有加分號;
為什么css樣式里有時候使用分號隔開有時候是用空格呢?
對同一個屬性進(jìn)行設(shè)置時是用空格隔開,比如border:1px solid red; 對不同的屬性進(jìn)行設(shè)置時是用分號隔開,比如width:300px;height:300px;
如果你的樣式完全不生效,首先確認(rèn)關(guān)聯(lián)了樣式表沒有,或者關(guān)聯(lián)的樣式位置、名字是否正確;
<link rel="stylesheet" type="text/css" href="mycss.css"/>
看看自定義的CSS樣式引入標(biāo)簽是否放在bootstrap框架樣式引用之后,確保不會被在加載頁面時被框架的樣式覆蓋。
<link rel="stylesheet" type="text/css" href="css/bootstrap.css"/> <link rel="stylesheet" type="text/css" href="mycss.csvs"/>
后代子代選擇等,涉及多個標(biāo)簽,類名、id等,子選擇器的順序、名字等寫錯了,均可能導(dǎo)致出錯;
html里的標(biāo)簽忘記寫類名、id了,而選擇器用了這些漏寫的類名、id等,樣式自然不會生效。
后代選擇器忘了寫空格;
看看是不是有多余的空格比如: div.box{} 這類選擇器會不會寫成了 div .box{};
把CSS、HTML網(wǎng)頁文件都統(tǒng)一保存為UTF-8格式;即在頭標(biāo)簽中添加<meta charset="UTF-8">
因為 一般網(wǎng)頁里采用UTF-8的編碼格式,而外部的CSS文件默認(rèn)的是ANSI的編碼格式,一般情況下是不會有問題。然而當(dāng)CSS文件中包含中文注釋,就可能會出現(xiàn)問題。
樣式層疊問題
看看你的css優(yōu)先級是否出現(xiàn)問題,優(yōu)先級高的會把低的覆蓋掉導(dǎo)致無法看到樣式;
本身設(shè)置了樣式,則從父級繼承來的樣式就不生效了;
css樣式優(yōu)先級排序:!important > 行內(nèi)樣式>ID選擇器 > 類選擇器 > 標(biāo)簽 > 通配符 > 繼承 > 瀏覽器默認(rèn)屬性(同優(yōu)先級時,后面的層疊前面的樣式);
排查順序:
藍(lán)藍(lán)設(shè)計的小編 http://www.88yangsc.com