HTML对于元素水平垂直居中的探讨
来源: 阅读:773 次 日期:2016-06-15 11:57:26
温馨提示: 小编为您整理了“HTML对于元素水平垂直居中的探讨”,方便广大网友查阅!

我们在设计页面的时候,经常要把DIV居中显示,而且是相对页面窗口水平和垂直方向居中显示,如让登录窗口居中显示。

到现在为止,探讨了很多种方法。

HTML:

XML/HTML Code

1.

2.

3.

4.

5.

Baidu
map

6.

效果图(下面几种方法效果图一样):

名字

第一种: CSS绝对定位

主要利用绝对定位,再用margin调整到中间位置。

父元素:

CSS Code

1..maxbox{

2. position: relative;

3. width: 500px;

4. height: 500px;

5. margin: 5px;

6. box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);

7.}

8.

子元素:

CSS Code

1..minbox{

2. width: 200px;

3. height: 200px;

4. box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);

5.}

水平垂直居中对齐:

CSS Code

1..align-center{

2. position: absolute;

3. left: 50%;

4. top: 50%;

5. margin-left: -100px; /*width/-2*/

6. margin-top: -100px; /*height/-2*/

7.}

第二种: CSS绝对定位 + Javascript/JQuery

主要利用绝对定位,再用Javascript/JQuery调整到中间位置。相比第一种方法,此方法提高了class的灵活性。

父元素:

CSS Code

1..maxbox{

2. position: relative;

3. width: 500px;

4. height: 500px;

5. margin: 5px;

6. box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);

7.}

8.

子元素:

CSS Code

1..minbox{

2. width: 200px;

3. height: 200px;

4. box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);

5.}

水平垂直居中对齐:

CSS Code1..align-center{

2. position: absolute;

3. left: 50%;

4. top: 50%;

5.}

6.

JQuery:

JavaScript Code

1.$(function(){

2. $(".align-center").css(

3. {

4. "margin-left": ($(".align-center").width()/-2),

5. "margin-top": ($(".align-center").height()/-2)

6. }

7. );

8.});

9.

第三种: CSS3绝对定位 + 位移

使用绝对定位与CSS3的 transform: translate同样也可以达到效果。

父元素:

CSS Code

1..maxbox{

2. position: relative;

3. width: 500px;

4. height: 500px;

5. margin: 5px;

6. box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);

7.}

8.

子元素:

CSS Code

1..minbox{

2. width: 200px;

3. height: 200px;

4. box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);

5.}

6.

水平垂直居中对齐:

CSS Code

1..align-center{

2. position: absolute;

3. top: 50%;

4. left: 50%;

5. -webkit-transform: translate(-50%, -50%);

6. -moz-transform: translate(-50%, -50%);

7. transform: translate(-50%, -50%); /*向左向上位移*/

8.}

9.

第四种: Flexbox: [伸缩布局盒模型]

要让元素水平垂直,对于Flexbox模型来说太容易了。

这里得改变一下HTML:

XML/HTML Code

1.

2.

3.

4.

父元素:

CSS Code

1..maxbox{

2. position: relative;

3. width: 500px;

4. height: 500px;

5. margin: 5px;

6. box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);

7.}

8.

子元素:

C# Code

1..minbox{

2. width: 200px;

3. height: 200px;

4. box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);

5.}

水平垂直居中对齐:

CSS Code

1..align-center{

2. display: flex;

3. display: -webkit-flex; /*兼容问题*/

4. justify-content: center;

5. align-items: center;

6.}

几种方法的比较:

第一种CSS绝对定位margin调整,兼容性很好但是欠缺灵活性。如果有很多box里需要水平垂直居中,因其width,height不同而需要写不同的 .align-center 。

第二种使用脚本语言,兼容性很好且弥补了第一种的缺点。不因width,height的改变而影响水平垂直居中的效果。

第三种使用CSS3的一些新的属性,兼容IE10, Chrome, Firefox, 和 Opera。兼容性不太很好,不因width,height的改变而影响水平垂直居中的效果。

使用Flexbox模型,兼容Firefox、Opera 和 Chrome,IE全军覆没。也是不因width,height的改变而影响水平垂直居中的效果。

以上就是本文的全部内容,希望对大家的学习有所帮助。

更多信息请查看 网页制作
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们| 联系我们| 人才招聘| 网站声明| 网站帮助| 非正式的简要咨询| 简要咨询须知| 加入群交流| 手机站点| 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00) 版权所有:
云南网警报警专用图标
Baidu
map