【札记】让DIV水平垂直居中的两种方法
【笔记】让DIV水平垂直居中的两种方法
今天写的了百度前端学院春季班的任务:定位和居中问题 由于距离上次学习CSS有点久远了,加上以前木有记笔记的习惯,方法忘得只剩下一种,今天通过网上查阅资料总结了以下两种简单的方法让DIV水平垂直居中。=。=
先来个效果图:
HTML代码:
1 <div class="wrap"> 2 <div class="main first"> 3 <div id="left" class="yuan"></div> 4 <div id="right" class="yuan"></div> 5 </div> 6 </div>
CSS:
1 .main{ 2 width: 400px; 3 height: 200px; 4 overflow: hidden; 5 background-color: #ccc; 6 position: absolute; 7 } 8 .yuan{ 9 width: 100px; 10 height: 100px; 11 background-color:yellow; 12 border-radius: 50%; 13 -moz-border-radius: 50%; 14 -webkit-border-radius: 50%; 15 position: absolute; 16 } 17 #left{ 18 top: -50px; 19 left: -50px; 20 } 21 #right{ 22 bottom: -50px; 23 right: -50px; 24 }
第一种方法:利用负margin,前提是需要知道尺寸。兼容性最好。
设定水平和垂直偏移父元素的50%,
再根据实际长度将子元素上左挪回一半大小
1 .first{ 2 top: 50%; 3 left: 50%; 4 margin-left: -200px; 5 margin-top: -100px; 6 }
第二种方法:利用CSS3的transform,宽度不定,支持IE9+
1 .second{ 2 left: 50%; 3 top: 50%; 4 transform: translate(-50%,-50%); 5 }
- 2楼Wodertian
- 张鑫旭还写过一种利用absolute和margin的方法,http://www.zhangxinxu.com/wordpress/?p=3794 第三条
- 1楼123小麦粥
- 倒是比较常用第一种,第二种存在兼容问题,移动端可以考虑使用。