Я пытаюсь создать навигационную панель, где выделяется фон, когда вы наводите на нее курсор, но когда я это делаю, текст также становится подсвеченным и больше не видимым (едва).
Вот мой текущий HTML и CSS:
<header>
<img id="logoimg" src = "./images/home.jpg">
<ul class="top-nav">
<li><a href=''>Home</a></li>
<li><a href=''>About Us</a></li>
<li><a href=''>Products</a></li>
</ul>
c</header>
.top-nav {
width: 100%;
margin: 0;
padding: 0;
position: relative;
background: #296E9A;
border-radius: 5px;
}
.top-nav li {
display: inline-block;
font-size: 14px;
padding: 0;
margin: 0;
width: 100px;
background: #296E9A;
text-align: center;
border-radius: 5px;
}
.top-nav a {
line-height: 200%;
color: #FFF;
text-decoration: none;
display: block;
font-weight: bold;
}
.top-nav a:hover {
background: #000;
border-radius: 5px;
opacity: 0.05;
}
Ваш CSS на a:hover
имеет непрозрачность 0,05, что приводит к тому, что текст едва заметен.
.top-nav a:hover {
border-radius: 5px;
opacity: 0.05; /* remove this */
background: rgb(36, 105, 147); /* fallback for IE8 support */
background: rgba(0,0,0,0.05); /* add this for highlighting */
}
Удалите свойство непрозрачности, и ваш текст должен появиться, когда вы наведите указатель мыши на ссылку навигации.
Добавьте background: rgba()
чтобы установить цвет фона с альфа-прозрачностью (это влияет только на фон, а не на текст или на какие-либо дочерние узлы).
Также имейте в виду, что rgba() поддерживает современные браузеры, но не имеет поддержки для IE8 и ниже. Вам нужно будет применить rgb()
или любое другое значение цвета в качестве резерва для поддержки совместимости.
Скрипт: http://jsfiddle.net/3yf2Q/2/
Спасибо @setek :)
Вам нужно удалить непрозрачность, так как она применима к вашему тексту, или просто укажите непрозрачность: 1; для части li, чтобы поддерживать какую-то подсветку.
.top-nav li {
display: inline-block;
font-size: 14px;
padding: 0;
margin: 0;
width: 100px;
background: #296E9A;
text-align: center;
border-radius: 5px;
opacity: 1;
}
background
на:background: rgb(36, 105, 147); background: rgba(0,0,0,0.05);
как здесь: jsfiddle.net/3yf2Q/2rgba(0,0,0,0.05)
- это путь при установке непрозрачности только на фоне. Это не будет работать для IE8 и ниже, если вы не примените запасной вариант. Я обновлю свой ответ.