加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

全面总结使用CSS实现水平垂直居中效果的方法

发布时间:2020-03-18 02:11:51 所属栏目:站长百科 来源:站长网
导读:副标题#e# 说起水平垂直居中大家常看到的是使用绝对定位与负margin的配合或者是inline-block配合vertical-align:middle等方法。当然还有其他一些解决方案,比如说,在水平垂直居中系列中介绍了一些制作方案。但这些方案或多或少都存在一些局限性。假设,要

这种方法在现代浏览器下是非常方便。但是在IE6-7中是不被支持的,因为display:table在IE6-7中不被支持,那么为了解决这种方法在IE6-7的兼容,需要额外增加一个div,并使用hack,下面我们一起来看看其解决办法。

HTML Markup

XML/HTML Code复制内容到剪贴板

<div class="table">  

 <div class="tableCell">  

  <div class="content">content</div>  

 </div>  

</div>  


CSS Code

CSS Code复制内容到剪贴板

.table {   

 height: 300px;/*高度值不能少*/  

 width: 300px;/*宽度值不能少*/  

 display: table;   

 position: relative;   

 float:left;   

}     

  

.tableCell {   

 display: table-cell;   

 vertical-align: middle;   

 text-align: center;      

 padding: 10px;   

 *position: absolute;   

 *top: 50%;   

 *left: 50%;   

}   

.content {   

 *position:relative;   

 *top: -50%;   

 *left: -50%;   

}  


还有一种方法、有点新意,用这种方法你需要在居中元素前面放一个空的<div>(块元素就可以),然后设置这个<div>的高度为50%,margin-bottom为元素高度的一半,而且居中元素需要清除浮动。需要注意的是,使用这种方法,如果你的居中元素是放在body中的话,你需要给html,body设置一个“height:100%”的属性。

HTML Markup

XML/HTML Code复制内容到剪贴板

<body>  

 <div id="floater"><!--This block have empty content --></div>  

 <div id="content">Content section</div>  

</body>  


CSS Code

CSS Code复制内容到剪贴板

html,body {height: 100%;}   

#floater{   

 float:left;   

 height:50%;/*相对于父元素高度的50%*/  

 margin-bottom: -120px;/*值大小为居中元素高度的一半(240px/2)*/  

}   

#content {   

 clear:both;/*清除浮动*/  

 height: 240px;   

 position: relative;   

}  


优点:

这种方法能兼容所有浏览器,在没有足哆空间下,内容不会被切掉

缺点:

元素高度被固定死,无法达到内容自适应高度,如果居中元素加上overflow属性,要么元素出现滚动条,要么元素被切掉;另外就是一个不算缺点的缺点,那就是加了一个空标签。


方式五:display:inline-block
这种方法是采用的display:inline-block,然后借助另一个元素的高度来实现居中

Html Markup

XML/HTML Code复制内容到剪贴板

<div id="parent">  

 <div id="vertically_center">  

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读