首页 > 代码库 > 【div+css网页布局详解】
【div+css网页布局详解】
前言:
网页布局是制作一个网页的第一步也是最重要的一步,今天来详细谈一下使用div+css布局的方法。
用dw编写网页的时候是可以通过两种方法的,一是图形界面,二是代码,初学的话可以用图形界面,学的差不多的时候使用代码更能提高效率。
因为现在css3和之前css2有较大改动,咱们先从css2的说起吧。
(笔者采用的是dreamweaver cs6,破解版下载地址:http://www.aa25.cn/download/954.shtml)
一、单列布局
一个网页编写手先要搭一个框架,就像下图样:
简单把网页分成了4部分,header标题部分,nav导航部分,article主体,footer注脚
这样的就是单列布局。
通过div建立这4中结构,然后css布局、添加样式
使用dw快速建立div如下图:
以往建立这种结构直接用div,通过id找到这个div进行布局,
点图右的新建按钮,建立css样式,注意中间的select Type ,选择样式的规则,这个是直接通过id选择的,id就想一个身份证,每个的都不一样,当然根据情况
也可以选择css类选择器,伪类选择器等等
在确定弹出的页面中设置css样式:
我们给刚才的布局添加颜色,并设置固定大小宽度高度结果如下:
发现上面和左面有两处白边,这中问题也是新手容易疑惑的,其实这是css的默认值,有很多类似这样的,
把所以一般在写网页时先把一些属性都进行初始化。像这样的写法:body { margin:0 auto; font-size:12px; font-family:Verdana; line-height:1.5;}
ul,dl,dd,h1,h2,h3,h4,h5,h6,form,p { padding:0; margin:0;}
而这里取消白边只需要写:body { margin:0}
所有代码如下:
<span style="font-size:18px;color:#006600;"><strong><!doctype html> <html> <head> <meta charset="utf-8"> <title>Untitled Document</title> <style type="text/css"> #header { background-color: #0F9; height: 100px; width: 500px; } #nav { background-color: #F00; height: 50px; width: 500px; } #article { background-color: #93C; height: 300px; width: 500px; } #footer { background-color: #F99; height: 50px; width: 500px; } </style> </head> <body> <div id="header">header</div> <div id="nav">nav</div> <div id="article">article</div> <div id="footer">footer</div> </body> </html></strong></span>上面是固定宽度,如要要让宽度浏览器大小变化而变化,采用%单位即可,如:width:70%
使div居中的属性:margin属性改为 auto
上面是html4和css2的写法。
在html5中因为加入了新的结构标签 很多地方不需要写div这个块级结构,而是直接用<header><nav>等这种标签,加css时可以通过类选择器直接添加
<span style="font-size:18px;color:#006600;"><strong><header>header</header> <nav>nav</nav> <article>article</article> <footer>footer</footer></strong></span>
二、多列布局
因为div为块级元素,故名思议,一块一块的,而且一块占一行,如果要一行中有多个块,就要用css调成多列布局
显示如下效果:
代码:
<span style="font-size:18px;color:#006600;"><strong><!doctype html> <html> <head> <meta charset="utf-8"> <title>Untitled Document</title> <style type="text/css"> #left { background-color: #3FC; float: left; height: 400px; width: 100px; } #center { background-color: #9C0; float: left; height: 400px; width: 100px; } #right { background-color: #F9F; height: 400px; width: 100px; float: left; } </style> </head> <body> <div id="left">header</div> <div id="center">nav</div> <div id="right">article</div> </body> </html> </strong></span>css2中的方法是:给div加浮动属性,
在box中将float属性设置为left
float: left;
这种方式有一个坏处:比如你发了一篇文章,用float把这篇文章分了3列,你在任意一列增加内容后,这一列就会长于其他列,这样修改的话就会十分麻烦。
css3中新加的多列布局和盒布局完美的解决了这个问题。
先使用盒布局来看下代码,效果和上图一样,可以自己实现一下:
<span style="font-size:18px;color:#006600;"><strong><!doctype html> <html> <head> <meta charset="utf-8"> <title>Untitled Document</title> <style type="text/css"> #layout{ display: -moz-box; display: -webkit-box; } #left { background-color: #3FC; height: 400px; width: 100px; } #center { background-color: #9C0; height: 400px; width: 100px; } #right { background-color: #F9F; height: 400px; width: 100px; } #left,#center,#right{ -moz-box-sizing:border-box; -wdbkit-box-sizing:border-box; } </style> </head> <body> <div id="layout"> <div id="left">header</div> <div id="center">nav</div> <div id="right">article</div> </div> </body> </html> </strong></span>
以上的这种盒布局可以实现css2中float+position布局一样的效果,而且可以自动实现对齐不会出现float的那个问题。
下面来看一下多栏布局的实现:就像例子中实现的一样,多栏布局主要适用于文章中,可以进行任意修改而不改变网页的美观。当然这种布局也有局限性 :每栏宽度都相等。
而且你要写出栏的总宽度,然后需要几栏它会自动平均分配。
代码如下:
<span style="font-size:18px;color:#006600;"><strong><!doctype html> <html> <head> <meta charset="utf-8"> <title>Untitled Document</title> <style type="text/css"> #article{ width:800px; -moz-column-count:3; -webkit-column-count:3; } </style> </head> <body> <div id="article"> (节省篇幅,文章内容略) </div> </body> </html> </strong></span>
好了,前面说了div+css的单栏布局和多栏布局,布局基本就差不多了,因为div是可嵌套的,所以一个div里面细分的话还是脱离不了这两种。