分享

Div+CSS样式布局学习笔记(1)

 毁人不倦 2007-04-20
   去年刚刚接触DIV+CSS样式布局,发现这种布局有好多优点,其中最大的优点是能够很清析的结构化html代码,给后期制作后台程序带来很大的便捷,于是便喜欢上了这种布局方式。
   现在总结一些我在做DIV+CSS样式布局时遇到的一些问题,以及这些问题的解决方法,以便以后自己查询,也希望有高人能看到这篇笔记,从而指导并交流一下。
   1。IE浏览器真的是让人又爱又恨,它是被运用最广的浏览器,可偏偏又不符合标准,以至于页面设计师们,在制作页面布局的时候,要考虑到IE和其它浏览器的兼容问题,如和FireFox之间的兼容。现在有很多网站很喜欢在大分辨率的显示器中,采用页面居中的方式布局。在IE中只要如下布局即可:
 
<html>
<head>
<title>CSS</title>
<style type="text/css">
<!--
body{margin:0; padding:0;font-size:12px;line-height:1.8; font-family:Verdana, "宋体", Arial,Sans; text-align:center;}
#wrap{ width:778px; text-align:left; border:1px solid #333333; height:200px;}
-->
</style>
</head>
<body>
   <div id="wrap"></div>
</body>
</html>
 
但是现在这段代码,在IE下看是居中的,可在FireFox中,则依然是左对齐,如果要解决两个浏览器都能居中显示,只需要在#wrap里加入margin:0 auto;即可,详细代码如下:
 
<html>
<head>
<title>CSS</title>
<style type="text/css">
<!--
body{margin:0; padding:0;font-size:12px;line-height:1.8; font-family:Verdana, "宋体", Arial,Sans; text-align:center;}
#wrap{ width:778px; text-align:left; border:1px solid #333333; height:200px; margin:0 auto; }
-->
</style>
</head>
<body>
   <div id="wrap"></div>
</body>
</html>
 
 2。在DIV+CSS样式布局中经常会用到<ul><li>来进行布局,通常是用于新闻标题列表。见下面的代码:
 
<html>
<head>
<title>CSS</title>
<style type="text/css">
<!--
body{margin:0; padding:0;font-size:12px;line-height:1.8; font-family:Verdana, "宋体", Arial,Sans; text-align:center;}
ul,li{list-style:none; padding:0px; margin:0px;}
#wrap{ width:778px; text-align:left; border:1px solid #333333; height:200px; margin:0 auto; }
-->
</style>
</head>
<body>
   <div id="wrap">
      <ul>
         <li>test1</li>
         <li>test2</li>
         <li>test3</li>
     </ul>
   </div>
</body>
</html>

上面代码的效果,是让<li>列表能够左对齐,因为<ul><li>都是默认自带样式的,不加上面的样式,他是默认与左边线有一段距离的,上面的代码还解决了IE和FireFox兼容问题,如果只写padding:0px;在FireFox下可以实现左对齐,IE不能;只写margin:0px;在IE下可以实现左对齐,FireFox又不能了(唉,这两个浏览器太能整人了),所以把这两个样式都加上,这样肯定是没有错的。
 
3。在用table布局的时候,咱们可以使用<table>作出一个1px的线,注意:不是用<hr>。在Div下也可以实现:
 
<html>
<head>
<title>CSS</title>
<style type="text/css">
<!--
body{margin:0; padding:0;font-size:12px;line-height:1.8; font-family:Verdana, "宋体", Arial,Sans; text-align:center;}
.line{height:1px; background:#FF0000;width:50%; font-size:1px;}
#wrap{ width:778px; text-align:left; border:1px solid #333333; height:200px;}
-->
</style>
</head>
<body>
   <div id="wrap">
      <div class="line"></div>
   </div>
</body>
</html>

在FireFox中,只要加上height:1px;那么就已经认出了,这个Div的高度为1px,可是IE下不能,就是高那么一块(好像Div的高度低于15px,IE都不能直接用height来控制),所以用font-size:1px;来解决这个问题。
 
 4。Div不同于table,没有垂直居中,如果只是单纯的让文字实现垂直居中,可以用以下代码:
<html>
<head>
<title>CSS</title>
<style type="text/css">
<!--
body{margin:0; padding:0;font-size:12px;line-height:1.8; font-family:Verdana, "宋体", Arial,Sans; text-align:center;}
#valign_div{height:300px; line-height:300px; overflow:hidden;}
#wrap{ width:778px; text-align:left; border:1px solid #333333; height:200px;}
-->
</style>
</head>
<body>
   <div id="wrap">
      <div id="valign_div">test</div>
   </div>
</body>
</html>

让Div的高度和行高相等,最好加个overflow:hidden;来控制下文溢出的问题,防止破坏页面布局。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多