CSS布局学习笔记
来源:互联网 发布:des算法详解ppt 编辑:程序博客网 时间:2024/04/29 08:10
布局是web页面开发中常用到的一种方法,而CSS布局以众多的优点逐渐成为主流,table布局悄然淡出。最近在重新学习CSS,首先从布局的方向开始,逐渐深入。从网上的各种教程及博客搜集资料整理。通过整理博客的过程中加以理解,也不失为一个学习的方法。
三栏布局基本框架:
Left 和right 部分为固定宽度,Main部分为自适应
HTML的文档流必须是从Main开始,然后才是到两侧的渲染。对应的HTML结构如下:
1:
<div id="main"></div><div id="left"></div><div id="right"></div>
而常规的做法采用自身浮动法是Left 和 Right 部分分别左右浮动,中间部分使用边距。这种方法对应的布局结构就会发生改变。如下:
2:
<div id="left"></div><div id="right"></div><div id="main"></div>缺点就是在网速慢的时候,main部分内容会在最后才显示出来,而且如果Main部分存在clear:both属性,会清除浮动,导致不能正常布局,应避免clear样式。
如果采用第一个布局,就会造成以下情况:
====================================================================解决办法如下:------>>>>>
三栏布局-使用绝对定位方法
方法1:main部分采用绝对定位,自适应宽度,两侧固定宽度然后左右浮动。
HTML Content
<body> <div id="main"> <p style="height:999px; background:#fffaba; ">content</p> </div> <div id="left"> <p style="height:999px;background:#8fc41f;">left</p> </div> <div id="right"> <p style="height:999px; background:#00b7ef;">right</p> </div></body>
CSS Content
*{ margin:0; padding:0;}#main{position:absolute;left:200px;right:200px;}#left,#right{width:200px;}#left{float:left;}#right{float:right}
http://codepen.io/anon/pen/pDcgt
==============================
方法2:Left 和Right部分采用绝对定位,分别固定于页面的左右两侧,Main的主体栏用左右margin值撑开距离
Html Content
<body> <div id="main"> <p style="height:999px; background:#fffaba; ">content</p> </div> <div id="left"> <p style="height:999px;background:#8fc41f;">left</p> </div> <div id="right"> <p style="height:999px; background:#00b7ef;">right</p> </div></body>
*{ margin:0; padding:0;}#main{margin:0 200px}#left,#right{position:absolute;top:0;width:200px;}#left{left:0}#right{right:0}
页面效果:
http://codepen.io/anon/pen/lwFry
三栏布局-使用margin负值方法
首先,中间的主体要使用双层标签。外层div宽度100%显示,并且浮动,内层div为真正的主体内容,含有左右200像素的margin值。左栏与右栏都是采用margin负值定位的,左栏左浮动,margin-left为-100%,由于前面的div宽度100%与浏览器,所以这里的-100%margin值正好使左栏div定位到了页面的左侧;右侧栏也是左浮动,其margin-left也是负值,大小为其本身的宽度即200像素。
Html Content
<div id="wrap"> <div id="main"> <p style="height:999px; background:#fffaba; ">content</p> </div></div> <div id="left"> <p style="height:999px;background:#8fc41f;">left</p></div><div id="right"> <p style="height:999px; background:#00b7ef;">right</p></div>
CSS Content
*{ margin:0;padding:0;}#wrap{width:100%;height:100%;float:left;}#main{margin:0 200px;}#left,#right{width:200px;float:left;}#left{margin-left:-100%;}#right{margin-left:-200px;}
页面效果:
http://codepen.io/anon/pen/tuqJp
参考:
我熟知的三种三栏网页宽度自适应布局方法
http://www.planeart.cn/?p=446
0 0
- CSS布局学习笔记
- css布局-学习笔记
- CSS学习笔记--布局
- 学习笔记:CSS布局
- CSS学习笔记-学习CSS布局
- css布局的学习笔记
- CSS布局学习随手笔记
- CSS学习笔记:3 布局
- CSS学习笔记(四):CSS布局
- 布局--Css学习笔记(七)
- CSS学习笔记---固定宽度布局
- css学习笔记---盒模型,布局
- css布局学习笔记之box-sizing
- CSS布局学习笔记之图片居中
- CSS学习笔记11-表布局
- h5学习笔记: css布局案例练习
- CSS学习笔记:排版布局属性
- CSS学习笔记——布局
- POJ 2823 Sliding Window (单调队列)
- Lucene索引原理
- MYSQL同步--主从同步问题集锦
- ORACLE查询日期对应12生肖
- linux进程内存布局及内存管理函数总结
- CSS布局学习笔记
- qt下的madplay播放器
- Web Service学习笔记
- Uml之关系总结
- hibrenate @ManyToOne(fetch = FetchType.EAGER) 和 lazy 区别
- Win7如何对未分配的磁盘空间进行分区
- WinRTXamlToolkit.Controls.DataVisualization.Charting图形报表下自定义控件
- MFC的CEdit控件中实现复制、粘贴、剪切等操作的快捷键
- 服务好“最后一公里”,高效CDN架构经验