[英]Font-style CSS not applying to HTML element
我正在通過“入門Java腳本”中的練習進行練習。 我堅持使用DOM向元素添加類以更改文本樣式的練習。 當我在Chrome中打開此頁面時,div元素帶有下划線但不是斜體。 我的代碼有什么問題?
<head>
<title>Chapter 9, Example 5</title>
<style>
#divAdvert {
font: 12pt Verdana;
}
.new-style {
font-style: italic;
text-decoration: underline;
}
</style>
</head>
<body>
<div id="divAdvert">
Here is an advertisement.
</div>
<script>
var divAdvert = document.getElementById("divAdvert");
divAdvert.className = "new-style";
</script>
</body>
</html>
嘗試使樣式更具體,以便在ID選擇器中不賦予字體樣式優先權
<style>
#divAdvert {
font-size: 12pt;
font-family: Verdana;
}
.new-style {
font-style: italic;
text-decoration: underline;
}
</style>
@Kaiido在解釋為什么這樣做的評論中指出了一個好觀點。
當您使用速記“字體”樣式時,實際上是在設置示例中顯示的多種樣式,例如font-size和font-family。 但是它也可以用於設置其他字體屬性,例如font-weight,font-style等。如果您在該簡短樣式規則中未傳遞值,它將獲取默認值。 您的類之所以沒有覆蓋它,是因為您的id選擇器將字體樣式設置為默認值,而您的類選擇器將其樣式設置為斜體。 但是,id選擇器比類選擇器具有更高的特異性,因此其規則優先。 更改id選擇器以不設置字體樣式(通過使用速記“字體”規則時所應用的默認值)可以使該類應用字體樣式規則。 @Kaiido提到的另一種解決方案是僅使類選擇器具有比id選擇器更高的特異性,可以這樣進行:
#divAdvert {
font: 12pt Verdana;
}
#divAdvert.new-style {
font-style: italic;
text-decoration: underline;
}
因為您現在已經使類的選擇器比單獨的id選擇器更具體,所以其規則將覆蓋原始的id選擇器。
當您在CSS中使用font
時,這是一些簡單的屬性,包括font-style
。 默認設置是normal
,這就是為什么未設置默認設置的原因。 您的.new-style
會被覆蓋,因為ID具有比類更高的特異性。
解決它的一種方法是專門設置字體屬性。
#divAdvert {
font-size: 12px;
font-family: Verdana;
}
此外,您應該知道pt
是用於打印的,不應用於網絡。
以字體風格放在重要位置
#divAdvert {
font: 12pt Verdana;
}
.new-style {
font-style: italic !important;
text-decoration: underline;
}
.new-style {
font-style:italic !important;
text-decoration:underline;
}
這不是最佳實踐,但可以。 !important僅在需要覆蓋樣式時才使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.