当前位置:  编程技术>WEB前端

DIV+CSS网页制作布局技巧学习

    来源: 互联网  发布时间:2014-09-06

    本文导语:  CSS布局常用的方法:float:none|left|right取值:none: 默认值。对象不飘浮left: 文本流向对象的右边right: 文本流向对象的左边 它是怎样工作的,看个一行两列的例子xhtml:这里是第一列这里是第二列 /*这是违背web标准意图的,...

CSS布局常用的方法:float:none|left|right
取值:
none: 默认值。对象不飘浮
left: 文本流向对象的右边
right: 文本流向对象的左边

它是怎样工作的,看个一行两列的例子
xhtml:


这里是第一列

这里是第二列

/*这是违背web标准意图的,只是想说明在它下面的元素需要清除浮动*/

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

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

它来实现一行两列的例子
xhtml:


这里是第一列

这里是第二列


CSS:
#wrap{position:relative;/*相对定位*/width:770px;}
#column1{position:absolute;top:0;left:0;width:300px;}
#column2{position:absolute;top:0;right:0;width:470px;}
他们的区别在哪?
显然,float是相对定位的,会随着浏览器的大小和分辨率的变化而改变,而position就不行了,所以一般情况下还是float布局!

CSS常用布局实例

单行一列
body{margin:0px;padding:0px;text-align:center;}
#content{margin-left:auto;margin-right:auto;width:400px;}

两行一列
body{margin:0px;padding:0px;text-align:center;}
#content-top{margin-left:auto;margin-right:auto;width:400px;}
#content-end{margin-left:auto;margin-right:auto;width:400px;}

三行一列
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;}
#content-end{margin-left:auto;margin-right:auto;width:400px;}

单行两列
#bodycenter{width:700px;margin-right:auto;margin-left:auto;overflow:auto;}
#bodycenter#dv1{float:left;width:280px;}
#bodycenter#dv2{float:right;width:420px;}

两行两列
#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:420px;}

三行两列
#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:420px;}
#footer{width:700px;margin-right:auto;margin-left:auto;overflow:auto;clear:both;}

单行三列

绝对定位
#left{position:absolute;top:0px;left:0px;width:120px;}
#middle{margin:0px190px0px190px;}
#right{position:absolute;top:0px;right:0px;width:120px;}

float定位
xhtml:



这里是第一列

这里是第二列

/*用法web标准不建议,但是记住下面元素需要清除浮动*/

这里是第三列

/*用法web标准不建议,但是记住下面元素需要清除浮动*/

CSS:
#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;}

float定位二
xhtml


Thisisthemaincontent.


Thisistheleftsidebar.


CSS
body{
margin:0;
padding-left:200px;/*LCfullwidth*/
padding-right:190px;/*RCfullwidth CCpadding*/
min-width:200px;/*LCfullwidth CCpadding*/
}
.column{
position:relative;
float:left;
}
#center{
width:100;
}
#left{
width:200px;/*LCwidth*/
right:200px;/*LCfullwidth*/
margin-left:-100;
}
#right{
width:190px;/*RCwidth*/
margin-right:-100;
}


/***IEFix***/
*html#left{
left:190px;/*RCfullwidth*/
}

两行三列
xhtml:




这里是第一列

这里是第二列



这里是第三列



CSS:
#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;}

三行三列
xhtml:




这里是第一列

这里是第二列



这里是第三列




CSS:
#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;}

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

CSS布局高级技巧
margin和padding总是有可能要用到,而产生的问题如何解决呢?由于浏览器解释容器宽度的方法不同:
IE6.0FirefoxOpera等是
真实宽度=width padding border margin
IE5.X
真实宽度=width-padding-border-margin

IE中有浮动对象的双倍距离之BUG(IEDoubledFloat-MarginBug),这里还需要具体问题具体解决,下面是解决办法www.forest53.com/tutorials/tutorials_show.asp?id=31

很明显,第一种下很完美的布局在第二种情况下后果是很凄惨的!
解决的方法是hack
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)有幸读到了这一句
}

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该写法的浏览器有幸读到了这一句
}

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

背景图填充法:
xhtml:


这是第一列

这是第二列



css:
#wrap{width:776px;background:url(/blog_article/bg.gif)repeat-y300px;}
#column1{float:left;width:300px;}
#column2{float:right;width:476px;}
.clear{clear:both;}

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


    
 
 

您可能感兴趣的文章:

  • 用标准件的方式来组装网页DIV布局-WEB标准网站设计心得
  • 非常漂亮的Div+CSS布局入门教程第1/5页
  • 使用JQUERY进行后台页面布局控制DIV实现左右式
  • DIV+CSS布局中不推荐使用的标签集合Dont Use These Tags
  • DIV+CSS布局的网站对网站SEO的影响分析
  • DIV CSS网页布局 最小高度(min-height)的妙用
  • div+css布局必了解的列表元素ul ol li dl dt dd详解
  • DIV+CSS布局教程大全与pdf电子书 下载
  • DIV+CSS网页另类上下布局的实例代码
  • div+CSS网页布局的意义与副作用原因小结第1/2页
  • 不用float实现div模块居中布局
  • div+css页面布局的五个小技巧
  • 布局用CSS+DIV的优点总结
  • 用div实现像table一样的布局方法
  • CSS顶级技巧大放送,div+css布局必知
  • 像table一样布局div
  • div+css布局必须要知道的css条件注释理论及实践第1/2页
  • div结合css布局bbs首页(div+css布局入门)
  • 推荐彻底弄懂CSS盒子模式(DIV布局快速入门)第1/3页
  • 脚本控制三行三列自适应高度DIV布局
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • html小技巧之td,div标签里内容不换行
  • CSS技巧DIV为空时占据空间的解决办法
  • 小技巧处理div内容溢出
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • 如何动态修改层(<div ....> </div>)的显示与否?
  • java命名空间javax.swing.text.html类html.tag的类成员方法: div定义及介绍
  • 父div高度不能自适应子div高度的解决方案
  • java命名空间javax.management类query的类成员方法: div定义及介绍
  • 难!!!在jsp文件的java代码片段中控制该网页上DIV的属性以达到隐藏或显示某div的目的???
  • java命名空间javax.imageio.plugins.jpeg类jpegqtable的类成员方法: k1div2luminance定义及介绍
  • jQuery拖动div、移动div与弹出层实例
  • java命名空间javax.imageio.plugins.jpeg类jpegqtable的类成员方法: k2div2chrominance定义及介绍
  • 常用的DIV+CSS的基本框架结构但不推荐都放一个div里
  • 在div中使用css让文字底部对齐的方法
  • jQuery拖动div、移动div、弹出层实现原理及示例
  • 基于DIV+ul+li实现的表格(多示例)
  • Jquery在指定DIV加载HTML示例代码
  • HTML 区块元素:<DIV>和 <SPAN>各自的定义与区别详细介绍
  • java开源软件 iis7站长之家
  • HTML <div> 标签
  • 巧用jquery解决下拉菜单被Div遮挡的相关问题
  • jquery 实现弹出div位于屏幕正中(图文)
  • 解决 select 挡住div的解决方法
  • div+css如何实现页脚的置底


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3