[英]How do I make the whole area of a list item in my navigation bar, clickable as a link?
[英]How do I make an image clickable in a navigation bar?
我目前為我的大學作業網站創建了一個導航欄。 我已經在他們的圖像上實現了一個圖像,這是我想鏈接到大學主頁的大學標志。 但是,當我嘗試使用錨標記 '' 使圖像可單擊以鏈接到主頁時,它會弄亂我的導航欄的樣式,並且想知道是否有解決方法。 我知道問題是圖像將采用我為導航欄聲明的錨標簽的 styles。 我將包含創建鏈接之前和之后的圖像,並顯示該部分的 HTML 和 CSS。
這是使圖像可點擊之前的導航欄。
這是它的 HTML:
<div class="top_nav">
<img class="logo" src="images/NTU_badge.png" alt="NTU Badge">
<a class="active" href="#Home"> Home </a>
<a href="#Hackathon">Hackathon</a>
<a href="#Choose_a_Challenge">Choose a Challenge</a>
<a href="#Digital_Horizons"> Digital Horizons </a>
</div>
這是它的 CSS:
.top_nav {
overflow: hidden;
background-color: #2c3e50;
border-bottom: 20px solid #ed0162;
position: fixed;
top: 0;
width: 100%;
}
.top_nav a {
float: left;
color: white;
text-align: center;
padding: 30px 20px;
text-decoration: none;
font-size: 17px;
margin-bottom: 0;
font-family: monospace;
}
.top_nav a:hover {
background-color: #ed0162;
color: white;
}
.logo {
float: left;
margin: 15px;
}
這是我嘗試使圖像可點擊后的 HTML 和網頁:
現在之間有很大的間距,當我不想要它時,hover 樣式現在會影響圖像。
HTML 代碼后:
<header>
<div class="top_nav">
<a href="https://www.ntu.ac.uk/">
<img class="logo" src="images/NTU_badge.png" alt="NTU Badge">
</a>
<a class="active" href="#Home"> Home </a>
<a href="#Hackathon">Hackathon</a>
<a href="#Choose_a_Challenge">Choose a Challenge</a>
<a href="#Digital_Horizons"> Digital Horizons </a>
</div>
</header>
我嘗試從圖像樣式中刪除“徽標”class,但它並沒有真正改變它。
有很多方法可以做到這一點,但 flexbox 讓它變得非常容易。 還將簡化您的 css。 只需將圖像包裝在錨標記中以使其可點擊。
.top_nav { display:flex; justify-content:space-around; align-items:center; overflow: hidden; background-color: #2c3e50; font-size:2vw; width: 100%; }.top_nav a { width:10%; color: white; text-decoration: none; font-family: monospace; }.top_nav a:hover { background-color: #ed0162; color: white; } img{ width:100%; } #short{ width:2.5%; }
<div class="top_nav"> <a id='short' href='https:\\www.google.com'><img class="fa facebook" src="https://www.sustainablewestonma.org/wp-content/uploads/2019/09/facebook-square-brands-blue.png" scale="0"></a> <a class="active" href="#Home"> Home </a> <a href="#Hackathon">Hackathon</a> <a href="#Choose_a_Challenge">Choose a Challenge</a> <a href="#Digital_Horizons"> Digital Horizons </a> </div>
解決此問題的一種方法是使用:first-of-type偽 css 選擇器。 這樣的事情將是處理它的正確方法:
.top_nav a:first-of-type {padding: 0;}
編輯
對不起,在最初的答案中,我錯過了建議您用元素包裝圖像a
部分。 所以改變這個:
<img class="logo" src="images/NTU_badge.png" alt="NTU Badge">
至:
<a href="URL" target="_blank"> <img class="logo" src="images/NTU_badge.png" alt="NTU Badge" /></a>
由於這個確切的原因,我發現在 CSS 選擇器中使用元素名稱(例如a
和div
)通常是非常糟糕的做法。
考慮為導航欄中的每個鏈接添加類似class="navigation"
的內容,然后將.top_nav a
選擇器更改為.top_nav.navigation
。 然后,您可以將類似的 class 添加到徽標<a>
中。
這不僅使 CSS 更具體,而且當其他人(或六個月后的您)在沒有頁面 rest 的任何其他上下文的情況下查看此內容時,更具可讀性。
我現在將我的 css 更改為:
.top_nav {
overflow: hidden;
background-color: #2c3e50;
border-bottom: 20px solid #ed0162;
position: fixed;
top: 0;
width: 100%;
}
.top_nav .navigation {
float: left;
color: white;
text-align: center;
padding: 30px 20px;
text-decoration: none;
font-size: 17px;
margin-bottom: 0;
font-family: monospace;
}
.top_nav .navigation:hover {
background-color: #ed0162;
color: white;
}
.top_nav .navigation:active {
background-color: #ed0162;
color: white;
然后我將每個 class 添加到導航欄中的每個鏈接,就像時髦所說的那樣,但是活動的 css 在該頁面上不再適用,“活動”頁面名稱應該在導航欄中顯示為粉紅色,但它沒有,任何想法?
去除margin: 15px;
從.logo css 屬性似乎有助於收緊它。
您可以將您的圖像嵌套在內部,並為該鏈接單獨設計適當的 css。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.