现在的位置: 首页 > 综合 > 正文

div+css实战演练—优酷盒子模型和搜狐首页面布局效果

2013年08月05日 ⁄ 综合 ⁄ 共 10929字 ⁄ 字号 评论关闭
div+css实战演练---优酷盒子模型和新浪首页面布局效果

说明:为了加强div+css的训练,这里列举了两个实例(未涉及asp、php内容),优酷盒子模型和搜狐首页面的布局。实现方式因人而异,各有不同。
如果对div+css概念和盒子模型觉得理解起来困难,请参见另一篇关于这部分理论的实例讲解部分:div+css入门与实战演练

1.优酷盒子模型实现

优酷盒子模型对应的原图如下:

(1)实现方式一:

盒子模型分析如下图所示:

实现代码如下:

//youkubox.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> 优酷盒子模型(体验版) </title>
 </head>
<link rel="stylesheet" type="text/css" href="youkubox.css">
 <body>
 <!--最外层div-->
  <div class="divout">
  <!--这是第一个单元-->
  <div class="divmid">
  <!--span标题框-->
  <span>优酷牛人<span><a href="#">更多牛人</a></span></span>
   <!--图片和信息列表-->
  <ul class="faceul">
  <li><div class="divinner"><img class="imgbig" src="images/p1.jpg"/><br/><a href="#">michaelni..</a><!--最内层div-->
  <img class="imgsmall" src="images/s1.jpg"/></div></li>
  <li><div class="divinner"><img class="imgbig" src="images/p2.jpg"/><br/><a href="#">小演矿</a>
  <img class="imgsmall" src="images/s1.jpg"/></div></li>
  <li><div class="divinner"><img  class="imgbig" src="images/p3.jpg"/><br/><a href="#">道聴途説</a>
  <img class="imgsmall" src="images/s1.jpg"/></div></li>
  </ul>
  </div>
  <!--这是第二个单元-->
  <div class="divmid">
  <!--span标题框-->
  <span>明星空间<span><a href="#">更多空间</a></span></span>
    <!--图片和信息列表-->
  <ul class="faceul">
  <li><div class="divinner"><img class="imgbig" src="images/p4.jpg"/><br/><a href="#">爱心月</a>
  <img class="imgsmall" src="images/s3.jpg"/></div></li>
  <li><div class="divinner"><img class="imgbig" src="images/p5.jpg"/><br/><a href="#">【城堡】</a>
  <img class="imgsmall" src="images/s3.jpg"/></div></li>
  <li><div class="divinner"><img class="imgbig" src="images/p6.jpg"/><br/><a href="#">卢正雨</a>
  <img class="imgsmall" src="images/s2.jpg"/></div></li>
  </ul>
  </div>
  <!--这是第三个单元-->
  <div class="divmid">
  <!--span标题框-->
  <span>优酷公益<span><a href="#">更多公益网站</a></span></span>
   <!--图片和信息列表-->
  <ul class="faceul">
  <li><div class="divinner"><img class="imgbig" src="images/p7.jpg"/><br/><a href="#">扶贫基金会</a></div></li>
  <li><div class="divinner"><img class="imgbig" src="images/p8.jpg"/><br/><a href="#">李冰冰LOVE</a></div></li>
  <li><div class="divinner"><img class="imgbig" src="images/p9.jpg"/><br/><a href="#">生态中国</a></div></li>
  </ul>
  </div>
  </div>
 </body>
</html>

//youkubox.css

/*html页面*/
 a{
color:#0829AD;
font-size:15px;
text-decoration:none;
}
/*最外层div*/
.divout{
width:410px;
height:300px;
/*border:2px solid red;*/
}
/*内层div*/
.divmid {
width:390px;
height:90px;
margin-top:5px;
margin-left:5px;
margin-right:5px;
margin-bottom:5px;
border:1px solid pink;
}
.divmid  span{
height:15px;
font-size:15px;
font-weight:bold;
color:black;
margin-top:2px;
margin-right:5px;
/*border:1px solid pink;*/
}
.divmid  span span{
font-size:15px;
height:15px;
font-weight:normal;
margin-top:2px;
padding-right:2px;
float:right;
text-align:right;
/*border:1px solid pink;*/
}
/*内层列表 横向排列*/
.faceul{
height:60px;
width:390px;
margin-left:3px;
padding-left:5px;
margin-top:5px;
}
.faceul li{
list-style-type:none;
float:left;
width:120px;
margin-left:5px;
margin-top:5px;
padding-left:3px;
}
/*最内层div*/
.divinner{
height:50px;
width:115px;
margin-left:0px;
padding-left:0px;
margin-top:2px;
margin-bottom:5px;
/*border:1px solid blue;*/
}
/*最内层大图片*/
.imgbig{
height:30px;
width:45px;
margin-left:10px;
margin-bottom:2px;
}
/*最内层小图片*/
.imgsmall{
height:13px;
width:15px;
margin-left:0px;
margin-right:0px;
margin-bottom:2px;
}

对应的运行效果图(含边框的)如下所示:

对应的运行效果图(无边框的)如下所示:

(2)实现方式二

优酷盒子模型图解如下:

实现代码如下:

//youkubox2.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> 优酷盒子模型(简洁版) </title>
 </head>
<link rel="stylesheet" type="text/css" href="youkubox2.css">
 <body>
 <!--外层div-->
  <div class="divout">

  <!--这是第一个单元-->
  <div class="divmid">
  <!--span标题框-->
  <span>优酷牛人<a href="#">更多牛人</a></span>
   <!--图片和信息列表-->
  <ul class="faceul">
  <li><img class="imgbig" src="images/p1.jpg"/><br/><a href="#">michaelni..</a><!--内层div-->
  <img class="imgsmall" src="images/s1.jpg"/></li>
  <li><img class="imgbig" src="images/p2.jpg"/><br/><a href="#">小演矿</a>
  <img class="imgsmall" src="images/s1.jpg"/></li>
  <li><img  class="imgbig" src="images/p3.jpg"/><br/><a href="#">道聴途説</a>
  <img class="imgsmall" src="images/s1.jpg"/></li>
  </ul>
  </div>

  <!--这是第二个单元-->
  <div class="divmid">
  <!--span标题框-->
  <span>明星空间<a href="#">更多空间</a></span>
    <!--图片和信息列表-->
  <ul class="faceul">
  <li><img class="imgbig" src="images/p4.jpg"/><br/><a href="#">爱心月</a>
  <img class="imgsmall" src="images/s3.jpg"/></li>
  <li><img class="imgbig" src="images/p5.jpg"/><br/><a href="#">【城堡】</a>
  <img class="imgsmall" src="images/s3.jpg"/></li>
  <li><img class="imgbig" src="images/p6.jpg"/><br/><a href="#">卢正雨</a>
  <img class="imgsmall" src="images/s2.jpg"/></li>
  </ul>
  </div>

  <!--这是第三个单元-->
  <div class="divmid">
  <!--span标题框-->
  <span>优酷公益<a href="#">更多公益网站</a></span>
   <!--图片和信息列表-->
  <ul class="faceul">
  <li><img class="imgbig" src="images/p7.jpg"/><br/><a href="#">扶贫基金会</a></li>
  <li><img class="imgbig" src="images/p8.jpg"/><br/><a href="#">李冰冰LOVE</a></li>
  <li><img class="imgbig" src="images/p9.jpg"/><br/><a href="#">生态中国</a></li>
  </ul>
  </div>

  </div>
 </body>
</html>

//youkubox2.css

/*html页面*/
 a{
color:#0829AD;
font-size:15px;
text-decoration:none;
}
/*外层div*/
.divout{
width:405px;
height:295px;
/*border:2px solid red;*/
}
/*内层div*/
.divmid {
width:390px;
height:90px;
margin-top:5px;
margin-left:5px;
margin-right:5px;
margin-bottom:5px;
padding:0px;
border:1px solid pink;
}
.divmid  span{
height:15px;
font-size:15px;
font-weight:bold;
color:black;
margin-top:2px;
margin-right:5px;
/*border:1px solid pink;*/
}
.divmid  span a{
font-size:15px;
height:13px;
font-weight:normal;
margin-top:2px;
padding-right:2px;
float:right;
/*border:1px solid pink;*/
}
/*内层列表 横向排列*/
.faceul{
height:64px;
width:380px;
margin-left:0px;
padding-left:5px;
margin-top:3px;
margin-bottom:2px;
/*border:1px solid blue;*/
}
.faceul li{
width:110px;
height:58px;
list-style-type:none;
float:left;
margin-left:12px;
margin-top:2px;
margin-bottom:2px;
padding-left:0px;
/*border:1px solid red;*/
}
.faceul li a{
list-style-type:none;
float:left;
margin-left:0px;
margin-top:5px;
padding-left:0px;
}
/*最内层大图片*/
.imgbig{
height:30px;
width:45px;
margin-left:15px;
margin-bottom:2px;
}
/*最内层小图片*/
.imgsmall{
height:13px;
width:15px;
margin-left:4px;
margin-right:0px;
margin-top:4px;
margin-bottom:2px;
}

运行效果(含边框的)如下图所示:

运行效果(无边框的)如下图所示:

2.搜狐首页面布局效果

说明:因为页面布局的方法大同小异,这里仅以搜狐首页面上半部分为介绍,其余部分未作介绍。

搜狐首页面上半部分原图如下所示:


实现方式图解如下:

实现代码如下:(说明:由于在实际编写时,经验不足,无法调整好一些对齐、边距,因此代码和布局图所示有所改动,实现方法应该存在更简便的)

//sohu.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title>搜狐-中国最大的门户网站 </title>
  <link rel="stylesheet" type="text/css" href="sohu.css" />
 </head>
 <body>
  <!--top部分-->
  <div class="divtop">
  <span ><font id="redfont">我的</font><font>搜狐</font></span>
  <span><img src="images/logosmall.jpg"/>通信证账号/手机</span>
  <span><form><input type="text"/></form></span>
  <span><form><input type="image" src="images/submit.jpg"/></form></span>
  <span ><a href="#">注册</a><a href="#">邮件</a><a href="#">博客</a><a href="#">相册</a><a href="#">说两句</a><a href="#">应用</a></span>
  <span id="rightspan"><a href="#"><font>搜狐微博</font></a><a href="#">微活动:抢楼送礼 iPad3等你拿!</a></span>
  </div>
  <!--中间部分mid-->
  <div class="divmid">

  <div class="middiv1"><img src="images/logo.jpg"></div>
   
   <div class="middiv2">

   <span id="sep1">
   <a href="#"><font id="redfont">搜狗</font></a>
   <a href="#">输入法</a>
   <a href="#">浏览器</a>
   <a href="#">地图</a>
   <a href="#"><font id="redfont">微博</font></a>
   <a href="#">博客</a>
   <a href="#">白社会</a>
   <a href="#"><font id="redfont">BBS</font></a>
   <a href="#">校友录</a>
   <a href="#"><font id="redfont">视频</font></a>
   <a href="#">博客</a>
   <a href="#">游戏</a>
   <a href="#">天龙</a>
   <a href="#"><font id="redfont">鹿鼎记</font></a>
   <a href="#">手机搜狐网</a>
   <a href="#">听书</a>
   <a href="#">手机游戏</a>
   <a href="#">e购房</a>
   </span>

   <span >
   <a href="#"><font id="redfont">新闻</font></a>
   <a href="#">图片</a>
   <a href="#">评论</a>
   <a href="#">我说两句</a>
   <a href="#">军事</a>
   <a href="#">公益</a>
   <a href="#"><font id="redfont">体育</font></a>
   <a href="#">NBA</a>
   <a href="#">中超</a>
   <a href="#">S</a>
   <a href="#">财经</a>
   <a href="#">理财</a>
   <a href="#">股票</a>
   <a href="#">基金</a>
   <a href="#">IT</a>
   <a href="#">数码</a>
   <a href="#">手机</a>
   <a href="#">汽车</a>
   <a href="#">购车</a>
   <a href="#">房产</a>
   <a href="#">二手房</a>
   <a href="#">家居</a>
   <a href="#"><font id="redfont">娱乐</font></a>
   <a href="#">韩娱</a>
   <a href="#">V</a>
   <a href="#">音乐</a>
   </span>

  <span id="sep2">
   <a href="#">天气</a>
   <a href="#">男人</a>
   <a href="#"><font id="redfont">女人</font></a>
   <a href="#">美容</a>
   <a href="#">母婴</a>
   <a href="#">健康</a>
   <a href="#">绿色</a>
   <a href="#">吃喝</a>
   <a href="#">促销</a>
   <a href="#">旅游</a>
   <a href="#">高尔夫</a>
   <a href="#"><font id="redfont">文化</font></a>
   <a href="#">读书</a>
   <a href="#">原创</a>
   <a href="#">教育</a>
   <a href="#">出国</a>
   <a href="#"><font id="redfont">商学院</font></a>
   <a href="#">彩票</a>
   <a href="#">星座</a>
   <a href="#">上海</a>
   <a href="#">广东</a>
   </span>

  </div>
</div>
  <!--底部btm-->
  <div class="divbtm">
<div class="btmdiv1">新闻组1</div>
<div class="btmdiv2">新闻组2 </div>
<div class="btmdiv3">新闻组3</div>
<div class="btmdiv4"><img class="imgmid" src="images/right1.jpg"></div>
  </div>
 </body>
</html>
                    

//sohu.css

body{
margin:0 auto;
width:980px;
height:320px;
/*border:3px solid red;*/
font-size:12px;
}
/*top顶层div*/
.divtop{
width:970px;
height:22px;
margin-left:2px;
margin-right:2px;
margin-top:5px;
/*border:2px solid black;*/
background-color:#F5FAFF;
}
.divtop a{
text-decoration:none;
color:black;
margin-left:8px;
margin-top:2px;
}
.divtop font{
text-decoration:none;
color:black;
font-weight:bold;
margin-top:2px;
margin-bottom:2px;
}
#redfont{
color:#BA1D16;
}
.divtop img{
margin-left:2px;
margin-bottom:0px;
height:20px;
float:left;
}
.divtop form{
display:inline;
height:20px;
margin-top:0px;
margin-bottom:2px;
}
.divtop span{
height:20px;
margin-top:2px;
margin-bottom:2px;
float:left;
text-align:center;
border:1px #EEF8FA;
}
#rightspan
{
  height:20px;
  float:right;
  margin-top:2px;
  margin-bottom:2px;
  margin-right:5px;
}
/*mid中间div*/
.divmid{
width:965px;
height:68px;
margin-left:2px;
margin-right:2px;
margin-top:2px;
/*border:3px solid red;*/
border:1px solid pink;
}
.divmid a{
text-decoration:none;
color:black;
margin-left:1px;
}
/*中间左边div*/
.middiv1{
width:143px;
float:left;
margin-left:0px;
margin-right:0px;
/*border:2px solid black;*/
}
/*中间右边div*/
.middiv2{
height:68px;
margin-left:144px;
margin-right:0px;
/*border:2px solid blue;*/
background-color:#FFFCD9;
}
.middiv2 span{
/*border:3px solid blue;*/
float:left;
background-color:#FFFCD9;
margin-left:0px;
margin-top:7px;
}
.middiv2 span a{
margin-left:0px;
margin-right:2px;
}
#sep1{
background-color:#FEE990;
}
#sep1 a{
margin-left:0px;
margin-right:8px;
}
#sep2{
background-color:#FFFCD9;
}
#sep2 a{
margin-left:0px;
margin-right:7px;
}
/*btm底部div*/
.divbtm{
width:965px;
height:210px;
margin-left:2px;
margin-right:2px;
margin-top:2px;
margin-bottom:2px;
/*border:2px solid gray;*/
border:1px solid pink;
float:left;
}
/*底部第1个div*/
.btmdiv1{
width:140px;
height:205px;
margin-left:2px;
border:1px solid green;
float:left;
}
/*底部第2个div*/

.btmdiv2{
width:460px;
height:205px;
margin-left:2px;
border:1px solid green;
float:left;
}
/*底部第3个div*/
.btmdiv3{
width:180px;
height:205px;
margin-left:2px;
border:1px solid green;
float:left;
}
/*底部第4个div*/
.btmdiv4{
width:165px;
height:205px;
margin-right:2px;
border:1px solid green;
float:right;
}
/*底层大图片*/
.imgbig{
}
/*底层小图片*/
.imgmid{
height:185px;
width:160px;
margin:8px 4px 5px 4px;
}

运行效果(含边框的)如下图所示:


运行效果(无边框的)如下图所示:


总结:

1.在设计页面布局时,应该先做个草稿图形,划分好布局的元素,div、span等。

2.在编写css文件时,遵循先整体页面,然后div,最后是小元素。

3.页面元素的定位和边距这些东西还是有些难度,个别时候不好调整,要加强练习。

后续更正:
关于外边距margin 属性,这些值的顺序是从上外边距 (top) 开始围着元素顺时针旋转的:

margin: top right bottom left。
因此可以将上述代码中设置边距的代码
margin-top:5px;
margin-left:5px;
margin-right:5px;
margin-bottom:5px;
按照上述规则更改为:

margin:5px 5px 5px 5px;
使代码更简洁。

抱歉!评论已关闭.