我有一排均勻間隔的導航項目,它看起來像這樣:永久性地設置相對放置物品的位置
當前選擇的菜單項是粗體斜體。設計師希望其他人在懸停時變成粗體斜體。發生這種情況時,會使該項目的文本變得更寬,從而將所有其他項目輕輕推下,因爲它們以固定邊距內聯顯示。我必須擺脫輕推。
解決此問題的正確方法是什麼?我有幾個想法使用javascript:
- onload,將文本包裝在div中,並將每個div的寬度設置爲文本的寬度。
- Onload,獲取每個菜單項相對於div的位置,然後將它們的位置設置爲絕對座標(因爲它們始終與導航div內的絕對位置相同)。
這兩個都顯得有些ha,,這是一個非常簡單的問題,所以我認爲必須有一個更簡單的方法。
我使用jQuery,如果它有所作爲。
下面是一個相當小的HTML頁面,將重現該問題:
<head>
<style type="text/css">
body {
background: black;
font-family: sans-serif;
}
a {
margin: 0px 20px;
font-size: 16px;
color: white;
text-decoration: none;
}
a:hover {
font-weight: bold;
font-style: italic;
}
</style>
</head>
<body>
<a id="projectslink" href="#projects">Projects</a>
<a id="innovationslink" href="#innovations">Innovations</a>
<a id="newslink" href="#news">News</a>
<a id="aboutlink" href="#about">About</a>
<a id="contactlink" href="#contact">Contact</a>
<a id="breathlink" href="#">Breath*</a>
</body>
@John:這確實意味着':hover'狀態不適用於JavaScript禁用的用戶(儘管這些日子很少見)。 – PPvG 2012-01-16 06:23:28
哦對不起,我不習慣jsfiddle,我的解決方案修復了,但我不小心重新發布了Max's。我的解決方案使用CSS懸停:http://jsfiddle.net/jmcdon10/UdJZ5/ – 2012-01-16 07:36:37