div+css布局

 二、三列布局

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style>
#content { width:470px; margin:0 auto;}
#side { background: #99FF99; height: 300px; width: 120px; float: left; }
#main { background: #99FFFF; height: 300px; width: 350px; margin-left: 120px; }
</style>
</head></p>
<p><body>
<div id="content"><!--margin:o auto是为了居中对齐-->
  <div id="side">此处显示 id "side" 的内容</div>
  <div id="main">此处显示 id "main" 的内容</div>
</div>
</body>
</html>

块级元素:就是一个方块,像段落一样,默认占据一行出现;

内联元素:又叫行内元素,顾名思义,只能放在行内,就像一个单词,不会造成前后换行,起辅助作用。

一般的块级元素诸如段落<p>、标题<h1><h2>...、列表,<ul><ol><li> 、表格<table>、表单<form>、DIV<div>和BODY<body>等元素。而内联元素则如: 表单元素<input>、超级链接<a>、图像<img>、<span> ........ 块级无素的显著特点是:每个块级元素都是从一个新行开始显示,而且其后的无素也需另起一行进行显示。

 也就是说,可以用css的display:inline将块级元素改变为内联元素,也可以用display:block将内联元素改变为块元素。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<style>

#content {margin:0 auto;}

#side {width: 202px; float: left; }

#main { margin-left: 202px; margin-right: 400px; }

</style>

</head></p>

<p><body>

<div id="content"><!--margin:o auto是为了居中对齐-->

  <div id="side"><img src="./2.jpg" width="192" height="142"></div>

  <div id="main">细心的朋友已经发现,上例中#main的div还定义了margin-left:120px;而这里没有定义,但它多出的文字却跑到了图片(#side)的下方,是不是设置margin-left:后,它就不会跑到#side的正文呢?如果你能想到这一点,你的确是太聪明了,事实确实是这样,在css样式表中加上下面一行

    文章出处:标准之路(http://www.aa25.cn)大家看看,是不是和word的效果已经很像相了,但这里的文字和图片右侧贴的很近,怎么办呢?刚才已经说了,当元素浮动过之后,需要指定一个宽度,否则它会尽可能窄。那么把side的宽度设置为大于图片的宽度,它们中间应该就有空隙了。图片的宽度是192px,设置side为202px,中间将会有10px的空隙了。

    文章出处:标准之路(http://www.aa25.cn)大家看看,是不是和word的效果已经很像相了,但这里的文字和图片右侧贴的很近,怎么办呢?刚才已经说了,当元素浮动过之后,需要指定一个宽度,否则它会尽可能窄。那么把side的宽度设置为大于图片的宽度,它们中间应该就有空隙了。图片的宽度是192px,设置side为202px,中间将会有10px的空隙了。

    文章出处:标准之路(http://www.aa25.cn)大家看看,是不是和word的效果已经很像相了,但这里的文字和图片右侧贴的很近,怎么办呢?刚才已经说了,当元素浮动过之后,需要指定一个宽度,否则它会尽可能窄。那么把side的宽度设置为大于图片的宽度,它们中间应该就有空隙了。图片的宽度是192px,设置side为202px,中间将会有10px的空隙了。

    文章出处:标准之路(http://www.aa25.cn)大家看看,是不是和word的效果已经很像相了,但这里的文字和图片右侧贴的很近,怎么办呢?刚才已经说了,当元素浮动过之后,需要指定一个宽度,否则它会尽可能窄。那么把side的宽度设置为大于图片的宽度,它们中间应该就有空隙了。图片的宽度是192px,设置side为202px,中间将会有10px的空隙了。

 float浮动

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style>
#content {margin:0 auto;}
#side {width: 202px; float: left; }
#main { margin-left: 202px; margin-right: 400px; }
</style>
</head></p>
<p><body>
<div id="content"><!--margin:o auto是为了居中对齐-->
  <div id="side"><img src="./2.jpg" width="192" height="142"></div>
  <div id="main">细心的朋友已经发现,上例中#main的div还定义了margin-left:120px;而这里没有定义,但它多出的文字却跑到了图片(#side)的下方,是不是设置margin-left:后,它就不会跑到#side的正文呢?如果你能想到这一点,你的确是太聪明了,事实确实是这样,在css样式表中加上下面一行
    文章出处:标准之路(http://www.aa25.cn)大家看看,是不是和word的效果已经很像相了,但这里的文字和图片右侧贴的很近,怎么办呢?刚才已经说了,当元素浮动过之后,需要指定一个宽度,否则它会尽可能窄。那么把side的宽度设置为大于图片的宽度,它们中间应该就有空隙了。图片的宽度是192px,设置side为202px,中间将会有10px的空隙了。
    文章出处:标准之路(http://www.aa25.cn)大家看看,是不是和word的效果已经很像相了,但这里的文字和图片右侧贴的很近,怎么办呢?刚才已经说了,当元素浮动过之后,需要指定一个宽度,否则它会尽可能窄。那么把side的宽度设置为大于图片的宽度,它们中间应该就有空隙了。图片的宽度是192px,设置side为202px,中间将会有10px的空隙了。
    文章出处:标准之路(http://www.aa25.cn)大家看看,是不是和word的效果已经很像相了,但这里的文字和图片右侧贴的很近,怎么办呢?刚才已经说了,当元素浮动过之后,需要指定一个宽度,否则它会尽可能窄。那么把side的宽度设置为大于图片的宽度,它们中间应该就有空隙了。图片的宽度是192px,设置side为202px,中间将会有10px的空隙了。
    文章出处:标准之路(http://www.aa25.cn)大家看看,是不是和word的效果已经很像相了,但这里的文字和图片右侧贴的很近,怎么办呢?刚才已经说了,当元素浮动过之后,需要指定一个宽度,否则它会尽可能窄。那么把side的宽度设置为大于图片的宽度,它们中间应该就有空隙了。图片的宽度是192px,设置side为202px,中间将会有10px的空隙了。
    文章出处:标准之路(http://www.aa25.cn)</div>
</div>
</body>
</html>

 三列

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style>
body { margin:0;}
#content{width: 800px;margin: 0 auto;}
#side { background: #99FF99; height: 300px; width: 120px; float: left; }
#side1 { background: #99FF99; height: 300px; width: 120px; float: right; }
#main { background: #99FFFF; height: 300px; margin:0 ; }
</style>
</head></p>
<p><body>
    <div id="content">
        <div id="side">此处显示 id "side" 的内容</div>
        <div id="side1">此处显示 id "side1" 的内容</div>
        <div id="main">此处显示 id "main" 的内容</div>
    </div>
</body>
</html>

 纵向导航菜单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
        body{
            font-family: Verdana;
            font-size: 12px;
            line-height: 1.5;
        }
        #menu{
            border-style: solid;
            border-width: 1px;
            border-color: #ccc;
            width: 100px;

        }
        #menu ul{
            list-style-type:none;
            padding: 0px;
            margin: 0px;
        }
        #menu ul li{
            background-color: #eee;
            padding: 0px 8px;
            line-height: 26px;
            border-bottom: 1px solid #ccc;
        }
        a{
            color: #000;text-decoration: none;
        }
        a:hover{
            color: #f00;
        }
    </style>
</head>
<body>
    <div id="menu">
        <ul>
            <li><a href="@#">首页</a></li>
            <li><a href="#">网页版式布局</a></li>
            <li><a href="#">div+css教程</a></li>
            <li><a href="#">div+css实例</a></li>
            <li><a href="#">常用代码</a></li>
            <li><a href="#">站长杂谈</a></li>
            <li><a href="#">技术文档</a></li>
            <li><a href="#">资源下载</a></li>
            <li><a href="#">图片素材</a></li>
                
        </ul>
    </div>
</body>
</html>

 二级纵向列表

<div id="menu">
<ul>
<li><a href="@#">首页</a></li>
<li><a href="#">网页版式布局</a>
<ul>
<li><a href="#">自适应宽度</a></li>
<li><a href="#">固定宽度</a></li>
</ul>
</li>
<li><a href="#">div+css教程</a>
<ul>
<li><a href="#">新手入门</a></li>
<li><a href="#">视频教程</a></li>
<li><a href="#">常见问题</a></li>
</ul>
</li>
<li><a href="#">div+css实例</a></li>
<li><a href="#">常用代码</a></li>
<li><a href="#">站长杂谈</a></li>
<li><a href="#">技术文档</a></li>
<li><a href="#">资源下载</a></li>
<li><a href="#">图片素材</a></li>
</ul>
</div>

 标签的默认样式
大多数标签都有自己的默认样式,比如第二天课程中遇到的body默认外边距,另外本例中ul前的圆点及左侧的内边距,另h1-h6字体大小各不相同,em默认为斜体,strong表载样式,也能让用户很容易阅读。但此时这些默认样式对我们没用,所示粗体。正因为有这些默认样式,一个设计合理的页面,即使没有加以需要清除掉,为了方便,建议用标签重定义方式,这样可以很简单地把全局的样式给统一起来。另外页面中的图片添加链接后会默认添加个边框,ul默认情况下会在列表前添加圆点,这些都是需要去掉的。

横向列表菜单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
        body{
            font-family: Verdana;
            font-size: 12px;
            line-height: 2;
        }
        #menu{
            border:1px solid #ccc;
            width: 370px;height: 30px;
            margin: 0 auto;background-color: #eee;
        }
        #menu ul{
            list-style-type:none;
            padding: 0px;
            margin: 0px;
        }
        #menu ul li{
            float: left;
        }
        #menu ul li a{
            display: block;/*还是把a转换成块级元素*/
            padding: 0px 8px;
            height: 26px;
            color: #000;text-decoration: none;
            float: left;
        }
        a:hover{
            background-color: #333;
            color: #fff;
        }
    </style>
</head>
<body>
    <div id="menu">
        <ul>
            <li><a href="@#">首页</a></li>
            <li><a href="#">网页版式布局</a></li>
            <li><a href="#">div+css教程</a></li>
            <li><a href="#">div+css实例</a></li>
            <li><a href="#">常用代码</a></li>
        </ul>
    </div>
</body>
</html>

最主要就是用float让li向右浮动后,实现横向排列,具体步骤不再赘述。以前许多朋友提问怎么让它水平居中,其实很简单,首先导航的宽度是固定的,然后设置margin:0 auto;即可实现了

大布局

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>大布局</title>
    <style type="text/css">
    #center{
        margin: 0 auto;
        width: 900px;
    }
    #header{
        height: 700px;
        background-color: #CCFFCC;
        margin-bottom: 8px;
    }
    #nav{
        height:30px; background:#CCFFCC; margin-bottom:8px
    }
    #content{
        margin-bottom: 500px;  
    }
    #main{
        float: left;
        width: 664px;
        height: 500px;
        background-color: #FFFF99;
    }
    #side{
        float:right; width:228px; height:500px; background:#FFCC99;
    }
    #footer{
        height: 70px;
        background-color: #CCFFCC;
    }
    .clearfloat{
        clear: both;
        height: 0;
        font-size: 1px;
        line-height: 0px;
    }
    </style>
    
</head>
<body>
    <div id="center">
        <div id="header"></div>
        <div class="clearfloat"></div>
        <div id="nav"></div>
        <div class="clearfloat"></div>
        <div id="content">
            <div id="main"></div>
            <div id="side"></div>
        </div>
        <div class="clearfloat"></div>
        <div id="footer"></div>
    </div>
    
</body>
</html>

 

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值