相关文章推荐
从容的火锅  ·  webpack 不同source ...·  7 月前    · 
讲道义的甘蔗  ·  softlayer virtual ...·  1 年前    · 
宽容的大白菜  ·  python - "no such ...·  1 年前    · 
/* 第三种: CSS绝对定位 + Javascript/JQuery 主要利用绝对定位,再用Javascript/JQuery调整到中间位置。相比第一种方法,此方法提高了class的灵活性。 实测在IE11、FF、Chrome完美呈现 .align3 { position : absolute ; left : 50% ; top : 50% ; /* 第四种: CSS3绝对定位 + 位移 使用绝对定位与CSS3的 transform: translate同样也可以达到效果。 实测在IE11、FF、Chrome完美呈现 .align4 { position : absolute ; top : 50% ; left : 50% ; transform : translate(-50%,-50%) ; /* 第五种: Flexbox: [伸缩布局盒模型] 要让元素水平垂直,对于Flexbox模型来说太容易了。 实测在IE11、FF、Chrome完美呈现 .align5 { display : flex ; justify-content : center ; /* 水平居中 */ align-items : center ; /* 垂直居中 */ </ style > < script src ="jquery-1.11.1.min.js" ></ script > </ head > < div class ="max_box" > < div class ="min_box align4" ></ div > </ div > <!-- 第五种得改变结构如下 --> <div class="max_box align5"> <div class="min_box"></div> < script type ="text/javascript" > // $(function(){ // $(".align3").css({ // "margin-left":($(".align3").width()/-2), // "margin-top":($(".align3").height()/-2) // }); // }); </ script > </ body > </ html >

几种方法的比较:

  • 第一种 :使用CSS绝对定位margin设置为auto,兼容性很好,应该是一种最好的方法了。
  • 第二种 :使用CSS绝对定位margin调整,兼容性很好但是欠缺灵活性。如果有很多box里需要水平垂直居中,因其width,height不同而需要写不同的 .align-center 。
  • 第三种 :使用脚本语言,兼容性很好且弥补了第一种的缺点。不因width,height的改变而影响水平垂直居中的效果。
  • 第四种 :使用CSS3的一些新的属性,兼容IE10, Chrome, Firefox, 和 Opera。兼容性不太很好,不因width,height的改变而影响水平垂直居中的效果。
  • 第五种 :使用Flexbox模型,兼容Firefox、Opera 和 Chrome,IE全军覆没。也是不因width,height的改变而影响水平垂直居中的效果。
  •