【问题标题】:<nav> element transparent without any previous opacity/transparency adjustments HTML/CSS<nav> 元素透明,没有任何先前的不透明度/透明度调整 HTML/CSS
【发布时间】:2014-02-12 01:14:07
【问题描述】:

我注意到我的导航栏是透明的,我不希望它是透明的。我没有以前的不透明度/透明度设置会导致它继承该属性。我想让我的导航栏不透明。

这是 CSS:

nav {
margin: 20px auto; 
text-align: center;
} 
nav ul ul {
display: none;
} 
nav ul li:hover > ul {
display: block;
} 
nav ul {
font-size: 25px;
background: white;
padding: 0px;
border-radius: 10px;  
border-style: solid;
list-style: none;
position: relative;
display: inline-table;
} 
nav ul:after {
content: ""; 
clear: both; 
display: block;
} 
nav ul li {
float: left;
} 
nav ul li:hover {
background: black;
} 
nav ul li:hover a {
opacity: 1;
color: white;
} 
nav ul li a {
display: block; 
padding: 15px 20px;
color: black; 
text-decoration: none;
} 
nav ul ul {
background: #000000; 
border-radius: 0px 0px 10px 10px;
padding: 0;
position: absolute; 
top: 100%;
} 
nav ul ul li {
float: none; 
} 
nav ul ul li a {
padding: 15px 20px;
} 
nav ul ul li a:hover {
background: #2E2E2E;
border-radius: 10px;
}


#welcome_paragraph {
position: relative;
top: 50px;
width: 500px;
margin: auto;
}

下面是对应的 HTML:

<nav>
<ul>
    <li><a href="#">Information</a>
    <ul>
        <li><a href="#">Getting Started?</a></li>
                        <li><a href="#">About Us</a></li>
                        <li><a href="#">Contact</a></li>
                    </ul>
                </li>
                <li><a href="#">Starter Kits</a></li>
                <li><a href="#">Rebuildables</a>
                    <ul>
                        <li><a href="#">Genesis</a></li>
                        <li><a href="#">Dripper</a></li>
                        <li><a href="#">Silica/Cotton</a></li>
                    </ul>
                </li>
                <li><a href="#">Mods</a>
                    <ul>
                        <li><a href="#">Mechanical</a></li>
                        <li><a href="#">Variable Voltage</a></li>
                    </ul>       
                </li>
                <li><a href="#">Accessories</a></li>
            </ul>
        </nav>
<p id="welcome_paragraph">
Welcome, blah blah (this text shows through the nav bar)<br />
</p>

【问题讨论】:

  • 支持并标记答案,以便将来对某人有所帮助

标签: html css transparency opacity


【解决方案1】:

HTML

<nav>
    <ul>
        <li><a href="#">Information</a>

            <ul>
                <li><a href="#">Getting Started?</a>
                </li>
                <li><a href="#">About Us</a>
                </li>
                <li><a href="#">Contact</a>
                </li>
            </ul>
        </li>
        <li><a href="#">Starter Kits</a>
        </li>
        <li><a href="#">Rebuildables</a>

            <ul>
                <li><a href="#">Genesis</a>
                </li>
                <li><a href="#">Dripper</a>
                </li>
                <li><a href="#">Silica/Cotton</a>
                </li>
            </ul>
        </li>
        <li><a href="#">Mods</a>

            <ul>
                <li><a href="#">Mechanical</a>
                </li>
                <li><a href="#">Variable Voltage</a>
                </li>
            </ul>
        </li>
        <li><a href="#">Accessories</a>
        </li>
    </ul>
</nav>
<p id="welcome_paragraph">Welcome, blah blah (this text shows through the nav bar)
    <br />
</p>

CSS

nav {
margin: 20px auto; 
text-align: center;
} 
nav ul ul {
display: none;
} 
nav ul li:hover > ul {
display: block;
} 
nav ul {
font-size: 25px;
background: white;
padding: 0px;
border-radius: 10px;  
border-style: solid;
list-style: none;
position: relative;
display: inline-table;
} 
nav ul:after {
content: ""; 
clear: both; 
display: block;
} 
nav ul li {
float: left;
} 
nav ul li:hover {
background: black;
    position:relative;
z-index:1;
} 
nav ul li:hover a {
color: white;
 position:relative;
 z-index:1;
} 
nav ul li a {
display: block; 
padding: 15px 20px;
color: black; 
text-decoration: none;
} 
nav ul ul {
background: #000000; 
border-radius: 0px 0px 10px 10px;
padding: 0;
position: absolute; 
top: 100%;
} 
nav ul ul li {
float: none; 
} 
nav ul ul li a {
padding: 15px 20px;
} 
nav ul ul li a:hover {
background: #2E2E2E;
border-radius: 10px;
}


#welcome_paragraph {
position: relative;
top: 50px;
width: 500px;
margin: auto;
    color:white;
}
body
{
    background-color:blue;
}

更新了你的 CSS

 nav ul li:hover {
background: black;
    position:relative;
z-index:1;
} 
nav ul li:hover a {
color: white;
 position:relative;
 z-index:1;
}

Updated Fiddle

【讨论】:

  • 即使在小提琴中它对我来说仍然是透明的。也许是浏览器的问题?
  • 尝试将一大段文本粘贴到#welcome_message 中并显示出来
  • @AlekHurst 你不想让消息出现还是应该出现??
  • 我不希望消息通过导航栏的下拉部分显示。例如,如果您在welcome_message 中有一大段文字并将鼠标悬停在“信息”选项卡上,然后将鼠标悬停在“关于我们”或“联系方式”选项上,文本就会显示出来。
  • @AlekHurst 我已经更新了你可以用小提琴检查你是否希望你的菜单在两列中如果你想在单列中你可以用这个fiddle
【解决方案2】:

你试过了吗;

nav {
    background: white;
}

元素是透明的,除非您为其设置背景或其继承。

编辑:如果这无助于为我们 jsfiddle.net 设置小提琴。

【讨论】:

    【解决方案3】:

    在你的 CSS 中

    nav ul {
    font-size: 25px;
    background: white;
    padding: 0px;
    border-radius: 10px;  
    border-style: solid;
    list-style: none;
    position: relative;
    display: inline-table;
    } 
    

    背景是白色的。

    如果您将背景更改为其他颜色,您的问题可能会消失。希望对你有帮助

    干杯!!

    【讨论】:

    • 感谢您的回复,我试过了,但没有成功
    猜你喜欢
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 2022-01-02
    • 1970-01-01
    • 2012-07-11
    • 2015-04-23
    • 1970-01-01
    相关资源
    最近更新 更多