水平居中
垂直居中
1.图片水平垂直居中
- 图片背景大小确定
margin-left值等于图片所在容器的宽度(imbBoxWidth)减去图片本身宽度(imgWidth)的值的一半
margin-top值和margin-left很类似,只是把相对应的宽度值换成高度值
- 图片大小不固定
1. 对于容器 display:table-cell vertical-align:middle text-align:center ie6.7不支持
display:table-cell 属性指让标签元素以表格单元格的形式呈现,类似于td
标签
2. 添加一个与容器高度相同的标签span,兼容ie6,7
在图片的容器中创建一个空元素(比如说span),设置span的“display:inline-block;height:100%;vertical-align:middle”。
IE6-7中空的line-block元素宽度为“0”,在IE6-7下是没有效果的,给span加上“width:1px”,会给水平居中造成1px的误差。
圣杯布局和双飞翼布局
都是三栏布局,两边盒子宽度固定,中间宽度自适应。中间栏放到文档流前面,保证先行渲染。
都是三栏全部float:left浮动。
区别对于中间栏div的内容不被遮挡上,圣杯布局是中间栏在添加相对定位,并配合left和right属性,效果上表现为三栏是单独分开的(如果可以看到空隙的话
双飞翼布局是在中间栏的div中嵌套一个div,内容写在嵌套的div里,然后对嵌套的div设置margin-left和margin-right,效果上表现为左右两栏在中间栏的上面,中间栏还是100%宽度。
圣杯布局:用到浮动、负边距、相对定位,不添加额外标签
<div class="header">Header</div> <div class="bd"><div class="main">Main</div><div class="left">Left</div><div class="right">Right</div> </div> <div class="footer">Footer</div>
<style>body{padding:0;margin:0}.header,.footer{width:100%; background: #666;height:30px;clear:both;}.bd{padding-left:150px;padding-right:190px;}.left{background: #E79F6D;width:150px;float:left;margin-left:-100%;position: relative;left:-150px;}.main{background: #D6D6D6;width:100%;float:left;}.right{background: #77BBDD;width:190px;float:left;margin-left:-190px;position:relative;right:-190px;}</style>
双飞翼布局
<div id="hd">header</div> <div id="middle"><div id="inside">middle</div></div><div id="left">left</div><div id="right">right</div><div id="footer">footer</div>
#hd{height:50px;background: #666;text-align: center; } #middle{float:left;width:100%;/*左栏上去到第一行*/ height:100px;background:blue; } #left{float:left;width:180px;height:100px;margin-left:-100%;background:#0c9; } #right{float:left;width:200px;height:100px;margin-left:-200px;background:#0c9; }/*给内部div添加margin,把内容放到中间栏,其实整个背景还是100%*/ #inside{margin:0 200px 0 180px;height:100px; } #footer{ clear:both; /*记得清楚浮动*/ height:50px; background: #666; text-align: center; }