HTML div标签显示为内联

时间:2011-11-29 19:46:21

标签: html css

我的网站包含使用div元素制作的导航栏。

出于某种原因,导航栏显示外部包含div。

此外,它表现为内嵌,即它不会在包含div的宽度上展开,而是在它包含的最后一个元素之后的右边结束。任何后续元素将立即显示在其右侧,在同一行。

HTML:

<body>
    <header>
        <img src="imgs\coolPic.jpg />"
        <div id="nav">
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="#">Foobar</a>
                    <ul class="submenu">
                        <li><a href="#">Foo</a></li>
                        <li><a href="#">Bar</a></li>
                    </ul>
                </li>
                <li><a href="#">Lorem Ipsum</a>
                    <ul class="submenu">
                        <li><a href="#">Lorem</a></li>
                        <li><a href="#">Ipsum</a></li>
                    </ul>
                </li>
                <li><a href="#">FAQ</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </div>
    </header>
    ...more body stuff...
</body>

CSS:

header {
background-color: #cccccc;
}
#nav {
background-color: #cccccc;
border-bottom: 2px solid #000000;
position: absolute;
}
#nav ul li {
float:left;
display:block;
}
#nav ul li a:link,
#nav ul li a:visited
{
display:block;
padding: 8px 12px;
background-color: #cccccc;
text-decoration: none;
color: #111111;
}
#nav ul li a:hover {
background-color: #111111;
color: #cccccc;
}
#nav ul li ul li{
float:none;
display:block;
}
#nav ul li ul li a:link,
#nav ul li ul li a:visited{
color:#444;
font-size:11px;
font-weight:bold;
text-decoration:none;
padding:0 10px;
clear:both;
border-bottom:solid 1px #DEDEDE;
}
#nav ul li ul li a:hover{
color:#3B5998;
}
.submenu {
position: absolute;
width: 160px;
padding: 10px;
border: solid 1px #2E4B88;
border-top: none;
display: none;
line-height: 26px;
z-index: 1000;
}

...如果您想知道,这是使导航栏正常工作的jquery:

function nav(){
    $('div#nav ul li').mouseover(function() {
    $(this).find('ul:first').show();
    });

    $('div#nav ul li').mouseleave(function() {
    $('div#nav ul li ul').hide();
    });

    $('div#nav ul li ul').mouseleave(function() {
    $('div#nav ul li ul').hide();;
    });
    };

    $(document).ready(function() {
    nav();
    });

(信用说明:我找到了jquery here。)

我尝试使用positionheader元素的CSS div #nav属性,但它没有多大帮助。

问题出现在Firefox,Chrome和IE等。

有什么好主意吗?

2 个答案:

答案 0 :(得分:2)

position: absolute移除#nav并添加overflow: hidden。如果我理解你的问题,就应该解决它。

http://jsfiddle.net/Pcth2/

答案 1 :(得分:1)

您的图片代码错误

更改<img src="imgs\coolPic.jpg />" to <img src="imgs\coolPic.jpg" />

查看此http://jsfiddle.net/4fND9/1/