基本上,我的导航栏的不透明度为0.6(IE 8及更早版本,60)。但是,导航栏内的所有内容似乎都具有0.6的不透明度。这包括我的网站徽标;我不希望它有任何不透明性,我只是希望它是正常的。我怎样才能使它没有任何不透明度?
HTML:
<div id="navigation">
<img class="logo" src="/images/logoO.png">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/blog">Latest News</a></li>
<li><a href="/forums">Forum Boards</a></li>
<li><a href="/report">Report A Bug</a></li>
<li><a href="/disclaimer">Disclaimer</a></li>
</ul>
</div>
CSS:
#navigation {
opacity: 0.6;
filter:alpha(opacity=60); /* For IE8 and earlier */
background: #000000;
width: 100%;
height: 75px;
}
ul {
display: inline;
position: absolute;
list-style-type: none;
}
li {
display: inline-block;
}
a {
color: #DCDCDC;
font-family: PT Sans, Futura, Summer Jams, sans-seriff, Arial;
font-weight: normal;
}
a:hover {
color: #FFF;
}
#navigation > ul > li > a {
-webkit-transition: color .15s;
-moz-transition: color .15s;
-o-transition: color .15s;
transition: color .15s;
}
a:active {
text-decoration: none;
}
a:link {
text-decoration: none;
}
如果可能,有关如何解决此问题的任何想法?我问了几个朋友,他们说他们不知道怎么做,否则就不可能。
答案 0 :(得分:1)
你不能“重置”子元素的不透明度,一旦在元素上设置,你只能增加透明度。对于子元素,opacity: 0.6;
会使比当前透明度高40%(而不是将其设置为60%不透明度)。
看到你的#navigation
有一个纯色(黑色),你可以使用透明色,让所有元素保持100%不透明度,只有背景色是透明的。
#navigation {
background: #000000; /* old browsers will still be black */
background: rgba(0, 0, 0, 0.6);
width: 100%;
height: 75px;
}
答案 1 :(得分:1)
您是否尝试过使用background: rgba()
代替不透明度?
#navigation {background: rgba(0, 0, 0, 0.6)}
答案 2 :(得分:0)
您要实现的目标是防止不透明度继承。有一种解决方法:
I do not want to inherit the child opacity from the parent in CSS
答案 3 :(得分:0)
您也可以尝试这一点,将不透明度设置为-ul-并将背景颜色更改为灰色,
#navigation
{
background: gray;
width: 100%;
height: 75px;
z-index: 1;
}
ul
{
display: inline;
position: absolute;
list-style-type: none;
opacity: 0.6;
filter: alpha(opacity=60); /* For IE8 and earlier */
}
答案 4 :(得分:0)
这是......相当奇怪,我不太明白,但我只是注意掉了它的不透明度(看它看起来怎么样),它确实有效。导航菜单仍然具有不透明度(父级),但文本和徽标/图像不具有(子级)。我也安装了thatNotYoChild.js,但在评论之前它没有用。