你知道几种div布局方法?_采风浪人_太平洋博客
来源:百度文库 编辑:神马文学网 时间:2024/10/04 06:06:46
你知道几种div布局方法?
- 阅读:(146) 评论:(1) 发表时间:2009-
07-16作者:采风浪人 - 常用的DIV布局方法
汇总 根据个人的经验网页的 输出用纯粹的div+ css 并不是最好的方式,那并不符合标准的 xhtml语义,也不 利于seo的推广优化 。用div来布局整个 网页的架构还是不错的 ,那会比用table 的嵌套更加简洁。至于 用div输出的网页运 行速度是不是会比ta ble来得要快? 刚学习之初我是抱有很 大的疑问的,在这里我 只是说下我自己的理解 和看法也不一定完全的 正确。相信很多的朋友 都会在baidu或g oogle里看到过d iv+css 实例教程的那个例子,我也看了 。DIV结构如下:
│body {} /*这是一个HTML元素,具体我就 不说明了*/
└#Container {} /*页面层容器 */
├#Header {} /*页面头部* /
├#PageBody {} /*页面主体* /
│ ├#Sidebar {} /*侧边栏*/
│ └#MainBody {} /*主体内容* /
└#Footer {} /*页面底部* / 对于一个初学者来说那 是非常好的教程,不过 这个布局完全是用ta ble布局的思路来写 的。所有的div都在 #Container 里,那就达不到div 分块显示的效果。Di v输出的原则是尽量细 分和少的嵌套,那样就 不会因为某个div 显示得比较慢而影响了 整个页面的显示速度。 当然了从代码量来说d iv布局确实是会比t able更加简洁和清 晰的,尽管如此也不是 任何时候都是用div 就比用table好。 像本来显示效果就是表 格的网页那当然是考虑 用表格比div要好得 多了,那样用tabl e输出工作效率更高并 且代码量也不比用di v 少那又何乐而不为呢? 网页输出的时候应该不 拘一格,那样的工作效 率才会更高,效果也更 加好。 好了长话短说,现在直 接进入我们的主题di v的几种布局方式,还 是以上面的页面为例子 。 1、 上下布局 ├#Head er {} /*页面头部* /
├#PageBody {} /*页面主体* /
└#Footer {} /*页面底部* / Html代码: ="Content- Type" content="t ext/html; charset=ut f-8" /> 常用的 五种DIV布局方法- by采风浪人tle> ; padding:0p x; } #Header, #PageBody, #Footer{ width:900p x; margin:0 auto; } #Header{ height:100 px; background :#003366; } #PageBody{ height:100 0px; border:1px #000000 solid; } #Footer{ height:200 px; background :#990000; } 2 、左右布局 │ ├#S idebar {} /*侧边栏*/
│ └#MainBody {} /*主体内容* / 1) 指定左右两列的宽度, 只需要将左边的div 向左浮动{float :left;},右边 的div 向右浮动{float :right;},并 清除浮动,即可实现。 Html代码: x; height:100 %; background :#000000; float:left ; } #MainBody{ width:700p x; height:100 %; float:righ t; background :#6600CC; } /* 左右布局结束 */ 注:右边的div 向左浮动#MainB ody {float:lef t;}也是可以,因为 #Sidebar和# MainBody是包 含在#PageBod y这里没有清除浮动也 是没有问题的。 清除浮动有三种方式 :
a、通过在浮动元素的父级元素上添加清除浮 动的class类; 面添加一个空元素,然 后在这个空元素上定义 clear:both 来清除浮动; ar”>C、在下一个div的css里加入clea r:both来清除浮 动; 假设上面的div布局 里没有# PageBody 率来说应该是最符合D IV输出的思想的,不 过那样很容易出错输出 难度会比较大。具体用 那种方式布局就看个人 的喜好和页面的效果图 来确定。 2) 不指定宽度布局 a、 左边指定宽度,右边指 定宽度,左在上,右在 下;(此处的上和下是 指在html代码中从 上到下编写顺序中的位 置,下文皆同) 这种布局方法与左右定 宽布局的方法基本相同 ,只需要将左边的di v向左浮动{floa t:left;},并 清除浮动,右边的di v就会跟在已浮动的“ div左”后面,即已 经实现左右两列布局了 。我们试着将#Mai nBody的宽度注释 掉就可以看到右边的宽 度是根据内容变化的。 左边导航iv>右边内容#MainBody{ /*width:70div> 0px; */ height:100 %; float:righ t; background :#6600CC; } b、 左边指定宽度,右边不 指定宽度,左在下,右 在上; 为什么要用这种有点奇 怪的不合乎常规的布局 方法呢? 这样布局当然有它自己 本身的优点的。将右边 div写在上方,通常 是希望在加载网站内容 时先显示右边的内容。 代码示例如下: 右边内容div> 左边导航iv>/* 左右布局开始 */ #Sidebar{ width:200px; height:100 %; background :#000000; float:left ; } #MainBody{ /*width:70 0px; */ width:100% ; height:100 %; margin-lef t:-300px; float:righ t; background :#6600CC; } #MainBody .content{ background :#FF9966; margin-lef t:200px; } /* 左右布局结束 */ 使用左边指定宽度,右 边不指定宽度,左在下 ,右在上布局方法的几 个要点 1)将右边的div向 右浮动,并设一个负的 margin-lef t,注意这个这个宽带 应该大于或等于左边的 宽度;
2)在右边div里面增加一个div,用于 放右边的内容,计算出 左边需要留出的宽度, 并将此数据设置为该d iv的margin- left,如{mar gin-left:2 00px;};
3)要是外面没有#PageBody包含, 浮动后一定要在父级元 素或后一个元素上清除 浮动; 以上是我们在进行网页 布局时最常用的几种方 式,当然在实际应用中 还是需要掌握很多技巧 的。熟能生巧那是一点 不错的,关键在于勤学 苦练。 要让div居中通常用 margin:0 auto; 另外指定最小高度的自 适应高度也是比较常用 的 :100px; _height:10 0px; } .clearbox { border-top :1px solid transparen t !important ; margin-top :-1px !important ; border-top :0; margin-top :0; clear: both; visibility : hidden; } 这里你可以把#Pag eBody看成一个画 卷,而.clearb ox是画轴。自适应高 度就是这样。 好了,到此为止把例子 的最终代码贴上来: Index.html ="Content- Type" content="t ext/html; charset=ut f-8" /> 常用的 五种DIV布局方法- by采风浪人tle> 右边内容 左边导航iv>Index.css : @charset "utf-8"; /* CSS Document */ body{ margin:0px; padding:0p x; } .clear{ clear:both ; } /* 上下布局开始 */ #Header, #PageBody, #Footer{ width:900p x; margin:0 auto; } #Header{ height:100 px; background :#003366; } #PageBody{ height:100 0px; background :#CCCCCC; } #Footer{ height:200 px; background :#990000; } /* 上下布局结束 */ /* 左右布局开始 */ #Sidebar{ width:200p x; height:100 %; background :#000000; float:left ; } #MainBody{ /*width:70 0px; */ width:100% ; height:100 %; margin-lef t:-10px; float:righ t; background :#6600CC; } #MainBody .content{ background - 常用的DIV布局方法