刘颜
2016-12-13 23:30
<!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="css/main.css"> <script type="text/javascript" src="js/setHomeSetFav.js" charset="gb2312"></script> </head> <body> <div class="top"> <div class="top_content"> <ul> <li><a href="#">联系我们</a></li> <li><a href="#" onclick="AddFavorite(window.location,document.title)">加入收藏</a></li> <li><a href="#" onclick="SetHome(window.location)">设为首页</a></li> </ul> </div> </div> <!--top结束--> <div class="wrap"> <div class="logo"> <div class="logo_left"> <img src="images/logo.jpg" alt="慕课网"/> </div> <div class="logo_right"> <img src="images/tel.jpg" alt="服务热线"/>24小时服务热线:<span class="tel"> 123-456-7890</span> </div> </div><!--logo结束--> <div class="nav"> <div class="nav_left"></div> <div class="nav_mid"> <div class="nav_mid_left"> <ul> <li><a href="#">首页</a></li> <li><a href="list.html">关于慕课</a></li> <li><a href="list.html">新闻动态</a></li> <li><a href="list.html">课程中心</a></li> <li><a href="list.html">在线课程</a></li> <li><a href="list.html">人才招聘</a></li> </ul> </div> <div class="nav_mid_right"> <form action="" method="post"> <input type="text" /> </form> </div> </div> <div class="nav_right"></div> </div><!--nav结束--> </div><!--wrap结束--> </body> </html>
*{
margin: 0;
padding: 0;
font-size: 12px;
}
body{
background-color: #f5f5f5;
}
.top{
width: 100%;
height: 27px;
background: url(../images/top_bg.jpg) repeat-x;
}
.top_content{
width: 1000px;
margin: 0 auto;
}
.top_content li{
list-style-image: url(../images/li_bg.gif);
float: right;
width: 70px;
line-height: 27px;
}
.top_content li:link, .top_content li:visited{
color: #8e8e8e;
text-decoration: none;
}
.top_content li:hover, .top_content li:active{
color:#900;
text-decoration: none;
}
.wrap{
width: 1000px;
margin: 0 auto;
}
.logo{
height: 80px;
background-color: #fff;
}
.logo_left{
width: 200px;
float: left;
}
.logo_right{
width: 300px;
float: right;
height: 28px;
margin-top: 30px;
color: #8e8e8e;
}
.logo_right img{
vertical-align: middle;
margin-right: 10px;
}
.tel{
font-family: "微软雅黑";
font-size: 16px
color: #c00;
}
.nav{
height: 40px;
}
.nav_left{
width: 10px;
background: url(../images/nav_left.jpg) no-repeat;
}
.nav_mid{
width: 980px;
background: url(../images/nav_bg.jpg) repeat-x;
}
.nav_right{
width: 10px;
background: url(../images/nav_right.jpg) no-repeat;
}
.nav_left,.nav_mid,.nav_right{
float: left;
height: 40px;
}
这可能是因为有边框的存在,input默认有边框的,总宽度超过1000了,你把nav_mid改小一点,另外建议你把float:left放在上面。
由于 img (也就是慕课网那个 img )把父块 div 撑大了 3px ,而父块 div 又是向左浮动 ,所以后面的元素继续 向左浮动的时候,就顶到了 img的父块div,所以没有向左顶
到最左边,而后面的导航条div因为长度太长,自然就跳到了下一行,
解决方法:
1、给 父块div 设置和 img 一样的高度,这里就是 height: 80px;如图,就可以了
2、给 img 设置 display: block;
3、给 img 设置 vertical-align: middle;
4、这个案例里具有特殊性,所以还有其他办法,比如,给后面的元素 加 clear:left; 原理就是后面元素往左浮动的时候直接放在 img 父块 div 的下面了,认为这个 img 把 div 撑大的几 px 是存在的
(这是和其他四种方法不一样的地方);
5、给包含慕课网 img 父块 div 的整个大盒子 div 加上 overflow: hidden; 原理:就是隐藏 img 父块 div 溢出大盒子的部分;
当然我是推荐 前3种方法的,动的是元素本身,不大会对后续存在可能的影响;
.logo{ height:80px; background-color:#FFF; overflow:hidden; } 我的在这里加就不行,在下面加 clear:both;才解决的。为什么源码下下来是运行正常显示。
.nav_left {
clear:both;
width: 10px;
background: url(../images/nav_left.jpg) no-repeat;
}
不太明白 我把mid改小了也还是不行咋办吖?
啥意思
该课程中,慕课网首页案例,把html4改为html5(就是文档声明修改了),为什么修改后布局就出错呢?
企业网站综合布局实战
157038 学习 · 2157 问题
相似问题