由於粗體樣式,懸停時元素對齊發生變化
使用HTML 清單和CSS 實現水平選單時,經常會遇到偏移應用懸停狀態時選單項目的對齊方式。發生這種轉變的原因是懸停狀態下的粗體字體大小與標準字體大小不同。
此問題與 SitePoint 貼文中討論的問題類似,但沒有明確的解決方案。如果文字寬度不同,設定 li 項的寬度可能不可行。
解決對齊偏移
解決方案在於使用不可見的偽元素預先設定元素的寬度。此偽元素鏡像懸停狀態的內容和樣式,在觸發懸停狀態之前有效地定義元素的寬度。
li { display: inline-block; font-size: 0; } li a { display:inline-block; text-align:center; font: normal 16px Arial; text-transform: uppercase; } a:hover { font-weight:bold; } /* SOLUTION */ /* The pseudo element has the same content and hover style, so it pre-sets the width of the element and visibility: hidden hides the pseudo element from actual view. */ a::before { display: block; content: attr(title); font-weight: bold; height: 0; overflow: hidden; visibility: hidden; }
在此解決方案中:
透過預設寬度,選單項目在懸停時保持對齊,無論文字長度或寬度變化如何。
以上是為什麼我的水平選單在懸停時會發生變化,如何使用偽元素修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!