HTML对于元素水平垂直居中的探讨
我们在设计页面的时候,经常要把DIV居中显示,而且是相对页面窗口水平和垂直方向居中显示,如让登录窗口居中显示。
到现在为止,探讨了很多种方法。
HTML
- <body>
- <div class="maxbox">
- <div class="minbox align-center"></div>
- </div>
- </body>
效果图(狼蚁网站SEO优化几种方法效果图一样)
第一种 CSS绝对定位
主要利用绝对定位,再用margin调整到中间位置。
父元素
- .maxbox{
- position: relative;
- width: 500px;
- height: 500px;
- margin: 5px;
- box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);
- }
子元素
- .minbox{
- width: 200px;
- height: 200px;
- box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);
- }
水平垂直居中对齐
- .align-center{
- position: absolute;
- left: 50%;
- : 50%;
- margin-left: -100px; /width/-2/
- margin-: -100px; /height/-2/
- }
第二种 CSS绝对定位 + Javascript/JQuery
主要利用绝对定位,再用Javascript/JQuery调整到中间位置。相比第一种方法,此方法提高了class的灵活性。
父元素
- .maxbox{
- position: relative;
- width: 500px;
- height: 500px;
- margin: 5px;
- box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);
- }
子元素
- .minbox{
- width: 200px;
- height: 200px;
- box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);
- }
水平垂直居中对齐
- .align-center{
- position: absolute;
- left: 50%;
- : 50%;
- }
JQuery
- $(function(){
- $(".align-center").css(
- {
- "margin-left": ($(".align-center").width()/-2),
- "margin-": ($(".align-center").height()/-2)
- }
- );
- });
第三种 CSS3绝对定位 + 位移
使用绝对定位与CSS3的 transform: translate同样也可以达到效果。
父元素
- .maxbox{
- position: relative;
- width: 500px;
- height: 500px;
- margin: 5px;
- box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);
- }
子元素
- .minbox{
- width: 200px;
- height: 200px;
- box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);
- }
水平垂直居中对齐
- .align-center{
- position: absolute;
- : 50%;
- left: 50%;
- -webkit-transform: translate(-50%, -50%);
- -moz-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%); /向左向上位移/
- }
第四种 Flexbox: [伸缩布局盒模型]
要让元素水平垂直,对于Flexbox模型来说太容易了。
这里得改变一下HTML
- <div class="maxbox align-center">
- <div class="minbox"></div>
- </div>
父元素
- .maxbox{
- position: relative;
- width: 500px;
- height: 500px;
- margin: 5px;
- box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);
- }
子元素
- .minbox{
- width: 200px;
- height: 200px;
- box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);
- }
水平垂直居中对齐
- .align-center{
- display: flex;
- display: -webkit-flex; /兼容问题/
- justify-content: center;
- align-items: center;
- }
几种方法的比较
第一种CSS绝对定位margin调整,兼容性很好欠缺灵活性。如果有很多box里需要水平垂直居中,因其width,height不同而需要写不同的 .align-center 。
第二种使用脚本语言,兼容性很好且弥补了第一种的缺点。不因width,height的改变而影响水平垂直居中的效果。
第三种使用CSS3的一些新的属性,兼容IE10, Chrome, Firefox, 和 Opera。兼容性不太很好,不因width,height的改变而影响水平垂直居中的效果。
使用Flexbox模型,兼容Firefox、Opera 和 Chrome,IE全军覆没。也是不因width,height的改变而影响水平垂直居中的效果。
以上就是本文的全部内容,希望对大家的学习有所帮助。
长沙网站设计
- 如何进行东阳SEO关键词优化?
- 边坝哪有关键词排名优化:提升你的网站流量与
- 安国百度优化服务:提升您的在线可见性
- 阜康新手做SEO怎么做
- 山西seo网站排名关键词优化:提升您网站曝光率
- 临沂seo网站排名关键词优化:提高你的网站可见
- 广西SEO网站推广怎样付费比较合理
- 双辽SEO网站推广:提升你的网站可见性与流量
- 辽宁企业网站优化购买方式有哪些
- 提升宝清百度SEO排名的实用技巧与策略
- 静宁百度SEO排名:提升您网站曝光率的关键策略
- 彭州百度SEO排名的提升策略和实施指南
- 广南百度关键词SEO:提升网站排名的关键策略
- 辽宁关键词优化怎么做论坛营销
- 吉林百度seo排名如何做到让用户满意
- 内黄百度优化服务:提升在线可见性的关键