CSS下拉菜单不适用于IE7

时间:2013-03-12 01:23:39

标签: css internet-explorer-7

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上面的代码甚至没有显示水平菜单的属性,而是显示为显示所有子菜单的垂直菜单,上面的字体也不起作用。

我做错了什么?

感谢。

3 个答案:

答案 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> 

位于标题区域的顶部