样式问题(使用浮动)

时间:2014-12-06 01:18:58

标签: html css

我很奇怪为什么段落标记内容填写在两个浮动的div之间?我希望段落标记的内容位于标题下方。另外,为什么段落标记中的行返回不显示?

这是JS小提琴:http://jsfiddle.net/yf3nyfk1/

HTML:

<body>
<div id="header-container">
    <div id="header-wrap">
        <div class="left logo logoimg">
            <img src="http://i.imgur.com/dtMBhKq.png"/>
        </div>
        <ul class="nav">
            <li class="contact">CONTACT</li>
            <li class="about">ABOUT</li>
            <li class="portfolio">PORTFOLIO</li>
        </ul>
    </div>
</div>
<div>
<p>
Lorem ipsum...
</p>
</div>
</body>

CSS:

body {
background: #000000;
margin: 0;
font-family: Helvetica, Arial, sans-serif;
font-size: 12px;
color: #FFFFFF;  
text-align: center;
}

h1 {
font-size: 24px;
color: #FF9000;
}

img {
max-width: 100%;
}

.left {
float: left;
}

ul{
    padding: 0px 0px 0px;
}

.right.nav {
    float: right;
}

/******************************************************************************/
/* Menus */
/******************************************************************************/
#header-container{
margin: auto;
padding: 80px 0px 0px;
max-width: 1160px;
width: 100%;
}

#header-wrap{
padding: 0px 40px 0px;
}

.logo{
max-width: 440px;
width: 100%;
}

ul{
    list-style-type:none;
    display: inline-block;
}

.nav{
float:right;
list-style-type:none;
overflow: hidden;   
}

.nav li{
float:right;
overflow: hidden;
}

.portfolio{
color: #00bff3;
border: 1px solid #00bff3;
padding: 8px 4px 8px;
margin-left: 0px;
width: 87px;
text-align: center;
}

.about{
color: #00bff3;
border: 1px solid #00bff3;
padding: 8px 4px 8px;
margin-left: 10px;
width: 60px;
text-align: center; 
}

.contact{
color: #00bff3;
border: 1px solid #00bff3;
padding: 8px 4px 8px;
margin-left: 10px;
width: 76px;
text-align: center;
}

.orangebutton{
color: #FF9000;
border: 1px solid #FF9000;
margin: 0px 5px 0px;
}

/******************************************************************************/
/* Media Queries */
/******************************************************************************/
@media only screen and (max-width: 867px) {
#header-wrap{
padding: 10px;

}

.right{
float: none;
}

.nav{
float: none;
}

.left {
float: none;
}
.logo{
margin:auto;

}
}

2 个答案:

答案 0 :(得分:1)

你需要清除花车:

p {
    clear:both;    
}

Fixed fiddle

More on clear to be read at MDN

至于第二个问题,HTML忽略所有空格,包括换行符和回车符,将它们折叠到一个空格中。要使用换行符,请使用<br>插入符号元素或使用</p>正确结束段落元素。

或者您也可以通过在CSS中的whitespace:pre元素上设置p来修改空白处理,但这几乎不是您想要的。只需正确关闭段落即可获得实际段落。

答案 1 :(得分:0)

如果您希望p到下一行,请清除浮动,以便它可以清除浮动,如此

<p style='clear:both'>
    Lorem ipsum...
</p>

http://jsfiddle.net/yf3nyfk1/2/