【发布时间】:2017-01-05 09:51:03
【问题描述】:
我有一个纯 CSS 多层下拉菜单(我知道这很疯狂),虽然它在 Firefox 中运行良好,但当我的朋友使用其他浏览器检查该网站时,它有点搞砸了:
- Internet Explorer 在下拉菜单之间添加了几个像素,因此您必须快速移动光标,否则它会消失
- Chrome 将子菜单重叠显示,使它们无法使用
该网站是omartahir.com(是的,去我吧!)如果您将鼠标悬停在“编程”上,然后是其中一个子菜单,例如,下拉菜单就会出现。 'C++' - 在 IE 中有一个间隙,而在 Chrome 中,菜单不会出现在一边,而是直接向下!
谁能解释为什么会这样?我完全没有跨浏览器兼容性或它们之间的差异的经验:(
这是 CSS(抱歉,有这么多!):
.navbutton
{
color:#BBBBBB;
background-color:rgba(255, 255, 255, 0.85);
text-align:center;
font-size:18px;
display:inline-block;
width:120px;
height:45px;
padding-top:17px;
padding-left:5px;
padding-right:5px;
transition:all 0.3s;
position:relative;
z-index:1;
}
.navbutton2line
{
height:55px;
padding-top:7px;
}
.navbutton:hover, #navbuttonselected:hover
{
color:#111111;
transition-delay:0s;
}
#navbuttonselected
{
color:#FFFFFF;
background-color:#00A2E8;
}
/* CSS Dropdown Menu */
/* Programming */
#programming
{
display:inline-block;
}
#programming > div
{
display:none;
}
#programming:hover > div
{
display:block;
position:absolute;
}
/* /programming/cpp */
#cpp
{
display:inline-block;
}
#cpp > div
{
display:none;
}
#cpp:hover > div
{
display:inline-block;
position:absolute;
}
/* /programming/web */
#web
{
display:inline-block;
}
#web > div
{
display:none;
}
#web:hover > div
{
display:inline-block;
position:absolute;
}
/* /programming/python */
#python
{
display:inline-block;
}
#python > div
{
display:none;
}
#python:hover > div
{
display:inline-block;
position:absolute;
}
/* /programming/basic */
#basic
{
display:inline-block;
}
#basic > div
{
display:none;
}
#basic:hover > div
{
display:inline-block;
position:absolute;
}
还有 HTML:
<div id="navbar">
<a href="/index.php" class="navbutton" id="navbuttonselected">Home</a
><a href="/about.htm" class="navbutton">About Me</a
><div id="programming"><a href="/programming.htm" class="navbutton">Programming</a>
<div>
<div id="cpp"><a href="/programming/cpp.htm" class="navbutton">C++</a>
<div>
<div><a href="/programming/cpp/shooter.htm" class="navbutton navbutton2line">Shooter Game</a></div>
<div><a href="/programming/cpp/invoker.htm" class="navbutton navbutton2line">Invoker Practice</a></div>
<div><a href="/programming/cpp/gameoflife.htm" class="navbutton">Game of Life</a></div>
</div>
</div>
</br>
<div id="web"><a href="/programming/web.htm" class="navbutton navbutton2line">Web Development</a>
<div>
<div><a href="/programming/web/site.htm" class="navbutton">This Site</a></div>
<div><a href="/programming/web/coursework.htm" class="navbutton">Coursework</a></div>
</div>
</div>
</br>
<div id="python"><a href="/programming/python.htm" class="navbutton">Python</a>
<div>
<div><a href="/programming/python/p1.htm" class="navbutton">p1</a></div>
<div><a href="/programming/python/p2.htm" class="navbutton">p2</a></div>
</div>
</div>
</br>
<div id="basic"><a href="/programming/basic.htm" class="navbutton">SuperBASIC</a>
<div>
<div><a href="/programming/basic/b1.htm" class="navbutton">b1</a></div>
<div><a href="/programming/basic/b2.htm" class="navbutton">b2</a></div>
</div>
</div>
</div>
</div>
</div>
谢谢!
【问题讨论】:
-
在不浏览代码的情况下,您可能希望从 Normalize 之类的东西开始,以使所有浏览器呈现相同的元素。 necolas.github.io/normalize.css
-
好的,我尝试使用它,但它弄乱了 Firefox 和 Chrome 的一些布局,但没有解决问题。似乎它不起作用。 :(
标签: css cross-browser