进入旧版 | 服务项目 | 成功案例 | 联系方式 | 过客留言 | 友情链接
   
设为首页
加入收藏
联系我们
网站首页 | 新闻资讯 | 操作系统 | 办公软件 | 网络软件 | 工具软件 | 媒体动画 | 网页制作 | 网站开发 | 程序开发 | 平面设计
Photoshop视频教程 | Word入门 | Flash入门 | JScript | VBScript | ASP | PHP | ADO | 网页特效 | 3DS MAX6.0命令 | 系统进程
您当前的位置:GOODSGY电脑学习网 -> 网页制作 -> 其它 -> 文章内容  
div+css布局漫谈

1.CSS布局常用的方法:
float : none | left | right
www.goodsgy.com

取值:
none : 默认值。对象不飘浮
left : 文本流向对象的右边
right : 文本流向对象的左边www.goodsgy.com

它是怎样工作的,看个一行两列的例子www.goodsgy.com

xHTML:www.goodsgy.com

<div id="warp">
 <div id="column1">这里是第一列</div>
 <div id="column2">这里是第二列</div>
 <div class="clear"></div>
</div>
www.goodsgy.com

CSS:www.goodsgy.com

#wrap{ width:100%; height:auto;}
#column1{ float:left; width:40%;}
#column2{ float:right; width:60%;}
.clear{ clear:both;}
www.goodsgy.com

position : static | absolute | fixed | relativewww.goodsgy.com

取值:www.goodsgy.com

static : 默认值。无特殊定位,对象遵循HTML定位规则
absolute : 将对象从文档流中拖出,使用 left , right , top , bottom 等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据 body 对象。而其层叠通过 z-index 属性定义
fixed : 未支持。对象定位遵从绝对(absolute)方式。但是要遵守一些规范
relative : 对象不可层叠,但将依据 left , right , top , bottom 等属性在正常文档流中偏移位置www.goodsgy.com

它来实现一行两列的例子www.goodsgy.com

xHTML:www.goodsgy.com

<div id="warp">
 <div id="column1">这里是第一列</div>
 <div id="column2">这里是第二列</div>
</div>
www.goodsgy.com

CSS:www.goodsgy.com

#wrap{ position:relative;/*相对定位*/width:770px;}
#column1{ position:absolute; top:0; left:0; width:300px;}
#column2{position:absolute; top:0; right:0; width:470px;}
www.goodsgy.com

他们的区别在哪?www.goodsgy.com

显然,float是相对定位的,会随着浏览器的大小和分辨率的变化而改变,而position就不行了,所以一般情况下还是float布局!www.goodsgy.com

2.CSS常用布局实例www.goodsgy.com

一列
单行一列
www.goodsgy.com

body { margin: 0px;   padding: 0px;  text-align: center;  }
#content {  margin-left:auto;  margin-right:auto;  width: 400px;  width: 370px; }
www.goodsgy.com

两行一列www.goodsgy.com

body {  margin: 0px;   padding: 0px;   text-align: center;}
#content-top { margin-left:auto;   margin-right:auto; width: 400px;  width: 370px;}
#content-end {margin-left:auto; margin-right:auto;  width: 400px;   width: 370px;}
www.goodsgy.com

三行一列www.goodsgy.com

body {  margin: 0px; padding: 0px;  text-align: center;  }
#content-top {  margin-left:auto;  margin-right:auto;  width: 400px;   width: 370px;  }
#content-mid { margin-left:auto; margin-right:auto;  width: 400px;  width: 370px; }
#content-end { margin-left:auto; margin-right:auto; width: 400px;  width: 370px; }
www.goodsgy.com

两列
单行两列
www.goodsgy.com

#bodycenter { width: 700px;margin-right: auto; margin-left: auto;overflow: auto;  }
#bodycenter #dv1 {float: left;width: 280px;}
#bodycenter #dv2 {float: right;width: 410px;}
www.goodsgy.com

两行两列www.goodsgy.com

#header{    width: 700px; margin-right: auto;margin-left: auto; overflow: auto;}
#bodycenter { width: 700px; margin-right: auto; margin-left: auto; overflow: auto; }
#bodycenter #dv1 { float: left; width: 280px;}
#bodycenter #dv2 { float: right;width: 410px;}
www.goodsgy.com

三行两列www.goodsgy.com

#header{    width: 700px;margin-right: auto; margin-left: auto;  }
#bodycenter {width: 700px; margin-right: auto; margin-left: auto;  }
#bodycenter #dv1 {  float: left;width: 280px;}
#bodycenter #dv2 { float: right;  width: 410px;}
#footer{     width: 700px;  margin-right: auto; margin-left: auto;  overflow: auto;  }
www.goodsgy.com

三列
单行三列
绝对定位
www.goodsgy.com

#left { position: absolute; top: 0px;  left: 0px; width: 120px;  }
#middle {margin: 20px 190px 20px 190px; }
#right {position: absolute;top: 0px; right: 0px;  width: 120px;}
www.goodsgy.com

float定位www.goodsgy.com

xHTML:www.goodsgy.com

<div id="warp">
 <div id="column">
 <div id="column1">这里是第一列</div>
 <div id="column2">这里是第二列</div>
 <div class="clear"></div>
 </div>
 <div id="column3">这里是第三列</div>
 <div class="clear"></div>
</div>
www.goodsgy.com

CSS:www.goodsgy.com

#wrap{ width:100%; height:auto;}
#column{ float:left; width:60%;}
#column1{ float:left; width:30%;}
#column2{ float:right; width:30%;}
#column3{ float:right; width:40%;}
.clear{ clear:both;}
www.goodsgy.com

float定位二www.goodsgy.com

xHTML:www.goodsgy.com

 <div id="center" class="column">
  <h1>This is the main content.</h1>
 </div>
 <div id="left" class="column">
  <h2>This is the left sidebar.</h2>
 </div>
 <div id="right" class="column">
  <h2>This is the right sidebar.</h2>
 </div>
www.goodsgy.com

CSS:www.goodsgy.com

body {margin: 0;padding-left: 200px;padding-right: 190px;min-width: 240px;}
.column {position: relative;float: left;}
#center {width: 100%;}
#left {width: 180px; right: 240px;margin-left: -100%;}
#right {width: 130px;margin-right: -100%;}
www.goodsgy.com

两行三列www.goodsgy.com

xHTML:www.goodsgy.com

<div id="header">这里是顶行</div>
<div id="warp">
 <div id="column">
 <div id="column1">这里是第一列</div>
 <div id="column2">这里是第二列</div>
 <div class="clear"></div>
 </div>
 <div id="column3">这里是第三列</div>
 <div class="clear"></div>
</div>
www.goodsgy.com

CSS:www.goodsgy.com

#header{width:100%; height:auto;}
#wrap{ width:100%; height:auto;}
#column{ float:left; width:60%;}
#column1{ float:left; width:30%;}
#column2{ float:right; width:30%;}
#column3{ float:right; width:40%;}
.clear{ clear:both;}
www.goodsgy.com

三行三列www.goodsgy.com

xHTML:www.goodsgy.com

<div id="header">这里是顶行</div>
<div id="warp">
 <div id="column">
 <div id="column1">这里是第一列</div>
 <div id="column2">这里是第二列</div>
 <div class="clear"></div>
 </div>
 <div id="column3">这里是第三列</div>
 <div class="clear"></div>
</div>
<div id="footer">这里是底部一行</div>
www.goodsgy.com

CSS:www.goodsgy.com

#header{width:100%; height:auto;}
#wrap{ width:100%; height:auto;}
#column{ float:left; width:60%;}
#column1{ float:left; width:30%;}
#column2{ float:right; width:30%;}
#column3{ float:right; width:40%;}
.clear{ clear:both;}
#footer{width:100%; height:auto;}
www.goodsgy.com

PS:这里列出的是常用的例子,而非研究之用,对一每个盒子,我都没有设置margin,padding,boeder等属性,是因为我个人觉得,含有宽度定位的时候,最好不好用到他们,除非必不得已,因为如果不是这样的话,解决浏览器兼容问题,会让你头疼,而且产生一系列CSS代码,我觉得这样的效率和效果都不好!www.goodsgy.com

3.CSS布局高级技巧www.goodsgy.com

margin和padding总是有可能要用到,而产生的问题如何解决呢?由于浏览器解释容器宽度的方法不同:www.goodsgy.com

IE 6.0 Firefox Opera等是
真实宽度=width+padding+border+margin
IE5.X
真实宽度=width-padding-border-marginwww.goodsgy.com

很明显,第一种下很完美的布局在第二种情况下后果是很凄惨的!www.goodsgy.com

解决的方法是 hackwww.goodsgy.com

www.goodsgy.com

 div.content {
width:400px; //这个是错误的width,所有浏览器都读到了
voice-family: "\"}\""; //IE5.X/win忽略了"\"}\""后的内容
voice-family:inherit;
width:300px; //包括IE6/win在内的部分浏览器读到这句,新的数值(300px)覆盖掉了旧的
}
HTML>body .content { //HTML>body是CSS2的写法
width:300px; //支持CSS2该写法的浏览器(非IE5)有幸读到了这一句
} www.goodsgy.com

div.content {
width:300px !important; //这个是正确的width,大部分支持!important标记的浏览器使用这里的数值
width(空格)/**/:400px; //IE6/win不解析这句,所以IE6/win仍然认为width的值是300px;而IE5.X/win读到这句,新的数值(400px)覆盖掉了旧的,因为!important标记对他们不起作用
}
HTML>body .content { //HTML>body是CSS2的写法
width:300px; //支持CSS2该写法的浏览器有幸读到了这一句
}www.goodsgy.com

具体解释点击下面链接查看www.goodsgy.com

www.blueidea.com/tech/site/2006/3170.asp
www.jluvip.com/blog/article.asp?id=114www.goodsgy.com

列等高技巧www.goodsgy.com

n行n列布局,每列高度(事先并不能确定哪列的高度)的相同,是每个设计师追求的目标,做法有:背景图填充、加JS脚本的
方法和容器溢出部分隐藏和列的负底边界和正的内补丁相结合的方法。www.goodsgy.com

背景图填充法:www.goodsgy.com

xHTML:www.goodsgy.com

<div id="wrap">
<div id="column1">这是第一列</div>
<div id="column1">这是第二列</div>
<div class="clear"></div>
</div>
www.goodsgy.com

CSS:www.goodsgy.com

#wrap{ width:776px; background:url(bg.gif) repeat-y 300px;}
#column1{ float:left; width:300px;}
#column2{ float:right; width:476px;}
.clear{ clear:both;}
www.goodsgy.com

就是将一个npx宽的一张图片在外部容器纵向重复,定位到两列交错的位置纵向重复,在视觉上产生了两列高度一样的错觉www.goodsgy.com

JS脚本法:www.goodsgy.com

www.blueidea.com/bbs/NewsDetail.asp?id=2453983
代码的原理基本就是这样,读取高度,判断高度,高度相等。www.goodsgy.com

容器溢出部分隐藏和列的负底边界和正的内补丁相结合的方法www.goodsgy.com

这篇文章说的很详细了:www.goodsgy.com

www.blueidea.com/tech/web/2006/3210.aspwww.goodsgy.com

还有:www.goodsgy.com

www.jluvip.com/blog/article.asp?id=151www.goodsgy.com

满屏高度布局(最窄770px最宽1024px经典布局)www.goodsgy.com

www.blueidea.com/tech/web/2005/3124.aspwww.goodsgy.com

今天和一个网友两天,他提到:给一个外国公司做网站,要求1.800x600满屏。2.1024x767满屏。3.1280下居中。4.不许用JS。
我突然想起了这篇文章,哈哈!把它感觉不可思议的事情解决了!但是好像对于IE5有点问题啊!www.goodsgy.com

在百度中搜索:div+css布局漫谈
在Google中搜索:div+css布局漫谈
在Yahoo中搜索:div+css布局漫谈

收藏到网摘:新浪VIVI 365key 我摘 POCO网摘 博采中心 YouNote 和讯网摘 天天收藏
[] [返回上一页] [打 印] [收 藏]
上一篇文章:像table一样布局div

 相关文章    最新文章
· DIV+CSS建立标准WEB网页的好处
· DIV与Table布局方式的可用性比较
· 让SEO更有效 CSS+DIV标签命名规范
· DIV+CSS常见错误汇总
· CSS教程:网页中Span和Div的区别
· DIV+CSS布局设计对网站SEO优化的影响
· [组图] Div+CSS布局入门教程
· 赛门铁克警告中文版Win2000 GDI安全漏洞
· DIV+CSS常用的网页布局代码
· 学DIV+CSS技术,如何入门?
 
· Google搜索引擎:迈向云计算的未来
· 一个合格网页设计师的标准是什么?
· 建立自己的博客的过程中学习到的知识
· 网站策划:网站栏目和页面的策划
· 初学:关于域名和空间的一些认识
· 什么是静态网页和动态网页?
· 设计网页前端界面必备的技能
· 如何调用Flash才符合Web网页标准?
· 网页色彩的搭配
· 文章内容SEO优化基本原则

∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
站内搜索

精彩图文
  网站导航  
操作系统 办公软件 网络软件
Vista Windows2003 WindowsXP Windows2000/NT Windows9X/ME Linux 其他 Word Excel Powerpoint Outlook 金山系列 其他 网页浏览 上传下载 联络聊天 邮件工具 服务器软件 网络辅助
工具软件 媒体动画 网页制作
系统工具 媒体工具 压缩工具 图文处理 文件管理 其他 3DMAX Authorware Director Maya 视频处理 其他 Flash Dreamweaver FireWorks FrontPage LiveMotion Golive HTML/CSS 其它
网站开发 平面设计 程序设计
ASP JSP PHP CGI JavaScript VBScript XML/SOAP Web服务器 Photoshop PhotoImpact CorelDraw Illustrator Freehand 设计欣赏 其他 VB VC .NET C/C++ DELPHI JAVA

冀ICP备05019428号
Copyright © 2004-2008 电脑学习网 Inc.All rights reserved.
TEL:13832340607
QQ:39873155
E_Mail:goodsgy(#)hotmail.com   (把(#)替换成@)
MSN:goodsgy(#)hotmail.com   (把(#)替换成@)