居中(纯css方式)
2015-09-14 22:50
555 查看
参考文章: http://blog.csdn.net/freshlover/article/details/11579669 http://blog.163.com/hongshaoguoguo@126/blog/static/1804698120135156225265/ http://blog.163.com/ranma2151920@126/blog/static/9502770620137522326362/[/code]
水平垂直居中:
1.display为table-cell
父 — 子 (居中元素)
父为display : table-cell,同时vertical-align : middle,(垂直居中); 子元素设置margin:auto;(水平居中)
<div id = "div1">
<div id = "div2"></div>
</div>
#div1 {
width : 300px;
height : 300px;
display : table-cell; //这句是关键
vertical-align : middle; //垂直居中
border : 1px solid red;
}
#div2 {
background : blue;
width:100px;
height : 100px;
margin:0px auto; //这句很重要,水平居中。
}
2.神奇的margin:auto;#div1 { position : relative; width : 300px; height :300px; border : 1px solid red; } #div2 { width: 100px; height: 100px; margin: auto; position: absolute; //相对于父元素定位 top: 0; left: 0; bottom: 0; right: 0; background : blue; }
3.css3中的transform中的translate平移属性,
先相对于文档流中的位置,设置top和left各自50%,在用translate在x轴和y轴上各自向反方向移动自身宽度和高度的50%(一半)#div1 { width : 300px; height :300px; border : 1px solid red; } #div2 { width: 100px; height : 100px; position: relative; //相对于文档流中的位置 top: 50%; //这个是相对于定位的元素的,top值 = 50% * 父元素的高度 left: 50%; //left值 = 50 % * 父元素的宽度 left : 50%; -webkit-transform: translate(-50%,-50%); //这个50%是相对于自身(div2)的, -ms-transform: translate(-50%,-50%); transform: translate(-50%,-50%); background : blue; }
总结:三种,一种是父元素设为display为table-cell,并设置vertical-align : middle,子元素为margin : 0px auto;
父为table-cell / vertical-align:middle + 子元素margin : auto;
第二种是(绝对定位居中):利用定位来的+margin:auto,子元素相对于父元素定位,父元素display设为不为static,子元素display为absolute,同时在子元素上设置margin:auto,还需要设置top/left/right/bottom都设为0px;
相对于父元素绝对定位+left/right/top/bottom均为0 + margin:auto;
第三种是transform中的translate,子元素relative ,设置top和left都是50%,然后tranform:translate(-50%,-50%);
相对定位 + top/left:50% + translate(-50%,-50%)
相关文章推荐
- css3中box-flex的使用
- 【html+css】block和inline的区别
- [CSS工具推荐]0001.推荐 10 个超棒的 CSS3 代码生成工具
- CSS-页面布局
- CSS-页面布局
- css学习 选择器
- css3的linear-gradient
- css学习绝对定位、相对定位
- Css_2跟3
- Css3_浏览器支持
- Css3_必备10个东西
- Htmlt_Div+Css简介
- Css_Backgroud-position(背景图片)定位问题详解
- Css_加载样式
- css优先级(特殊性)
- HTML&CSS Learning Notes 3
- IE6下margin双倍边距Bug的处理办法
- css3--text-overflow
- Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法
- css3图片旋转