Every1,
我正在为仍然只使用IE7的组织构建一个网站。在我的笔记本电脑上创建此下拉菜单时,菜单可以正常运行。但是,在IE7浏览器上首次尝试时,它无效。
<!doctype html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="./menu.css">
<link rel="stylesheet" type="text/css" href="./styles.css">
<title>Title</title>
</head>
<body>
<header>
<div id="logo">
<img src="Crest.png">
</div>
<p id="name">Somename</p>
<p id="motto">MyMotto</p>
</header>
<nav id="navigation">
<ul>
<li id="menu"><a href="#">Home</a></li>
<li id="menu"><a href="#">Pubs</a>
<ul id="subMenu">
<li><a href="#">Book 1</a></li>
<li><a href="#">Book 2</a></li>
</ul>
</li>
<li id="menu"><a href="#">Links to Website</a>
<ul id="subMenu">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
</ul>
</li>
<li id="menu"><a href="#">Departments</a></li>
<li id="menu"><a href="#">References</a>
<ul id="subMenu">
<li><a href="#">Ref 1</a></li>
<li><a href="#">Ref 2</a></li>
</ul>
</li>
<li id="menu"><a href="#">Links</a>
<ul id="subMenu">
<li><a href="#">More 1</a></li>
<li><a href="#">More 2</a></li>
</ul>
</li>
<li id="menu"><a href="#">Forms</a>
<ul id="subMenu">
<li><a href="#">Form 1</a></li>
<li><a href="#">Form 2</a></li>
</ul>
</li>
<li id="menu"><a href="#">Orders</a></li>
<li id="menu"><a href="#">Status</a></li>
</ul>
</nav>
</body>
menu.css的代码
/* #navigation */
ul {
list-style:none;
padding:0px;
margin:0px;
}
ul#subMenu a:hover { color: #FF0; font-weight: bold;}
#navigation {
margin-top: 20px;
float: left;
}
#navigation ul, #navigation li {
list-style: none;
padding: 0;
margin: 0;
display: inline;
background-color: #30C;
/* box-shadow: #111 3px 3px 4px; */
}
li#menu { box-shadow: #111 3px 3px 4px; }
ul#subMenu { box-shadow: #111 3px 3px 4px; }
#navigation ul li {
float: left;
position: relative;
}
#navigation ul li a {
display: block;
padding: 3px 20px;
margin: 1px;
font-size: 12px;
white-space: nowrap;
color: #FFF;
text-decoration: none;
font-size: 16px;
}
#navigation ul ul {
position: absolute;
top: -99999px; /* Remove them out of viewport */
left: 0;
opacity: 0; /* Hide sub level, we will use this in transition */
-webkit-transition: opacity .4s ease-in-out;
-moz-transition: opacity .4s ease-in-out;
-o-transition: opacity .4s ease-in-out;
transition: opacity .4s ease-in-out;
z-index: 497;
background: #30C;
padding: 2px;
border: 1px solid #444;
border-top: none;
box-shadow: #111 0 3px 4px;
border-bottom-left-radius: 6px;
border-bottom-right-radius: 6px;
}
#navigation ul ul ul {
position: absolute;
top: -99999px;
left: 100%;
border-radius: 6px;
border: 1px solid #444;
background-color: #FFF;
}
#navigation ul li:hover>ul {
opacity: 1;
position: absolute;
top: 99%;
left: 0;
}
#navigation ul ul li:hover>ul {
opacity: 1;
position: absolute;
top: 0%;
left: 100%;
}
styles.css的代码
body {
width: 900px;
margin: 0 auto;
padding: 0;
background-color: #006;
}
@font-face {
font-family: Cowboys;
src: url('Bleeding_Cowboys.ttf');
}
#logo {
margin-top: 20px;
padding: 0;
float: left;
}
#name {
float: left;
font-size: 85px;
margin: 0;
margin-top: 20px;
padding: 0;
color: #FC0;
font-family: Cowboys;
position: relative;
left: 40px;
}
#motto {
float: left;
font-size: 25px;
margin: 0;
padding: 0;
position: relative;
left: -460px;
top: 160px;
color: #FC0;
font-family: Cowboys;
font-style: italic;
}
IE7上面的代码甚至没有显示水平菜单的属性,而是显示为显示所有子菜单的垂直菜单,上面的字体也不起作用。
我做错了什么?
感谢。
答案 0 :(得分:1)
其他人指出IE7中不支持<nav>
标记。然而,问题超出了这个范围。 IE7不支持HTML5,而且您的页面完全是HTML5 - Doctype不合适,不支持标题标记,不支持导航标记。
您可以使用javascript库来帮助推动旧浏览器理解HTML5。
此外,一些预先构建的框架(例如HTML5 Boilerplate)也可能有助于支持旧浏览器。
如果您主要为IE7构建,您可能希望坚持使用xHTML或HTML4和CSS2。
答案 1 :(得分:0)
ie7不知道nav
是什么....您应该使用html5shiv.js将其包含在文档中,然后为初学者添加nav{display:block}
答案 2 :(得分:0)
nav不适用于ie7及以下使用
<!DOCTYPE html>
位于标题区域的顶部