CSS实现垂直居中
来源:互联网 发布:淘宝工作室怎么运营 编辑:程序博客网 时间:2024/05/24 22:44
方案一:line-height
适用于单行文本,
居中前:
<div class="vertical">居中元素</div>.vertical { height: 100px; line-height:100px; border: 1px solid red; }
居中后:
说明:这种对于单行的文本很有效果
适合应用在文本和图片上,并且这种方法,当你文本不是单行时,效果极差,差到让你感到恶心。
这种方法对运用在小元素上是非常有用的,比如说让一个button、图片或者单行文本字段。
<div class="vertical"> <p> 居中元素</p> <p>另一个文本呢</p> </div>
效果极差
因为line-height是行高,所以每行之间的间距就是100px;
方案二:设置绝对定位,高度(top)和margin-top为高度的一半
<div class="container"> <div class="vertical"> 居中元素 </div> </div>/---css-------/ .container { position: relative; border: 1px solid blue; height: 200px; } .vertical { height: 100px; position: absolute; top: 50%; margin-top: -50px; border: 1px solid red; }
实现了中间那个红框元素的居中
优点:在各大浏览器都能适用;
缺点: 基于绝对定位来的,一定要把握住父元素是谁
另外此方法是通过绝对定位来实现的,那么用这种方法实现元素的垂直居中需要注意以下几点:其一元素定位关系到一个相对定位参考,所以要保证元素是相对于哪个为参考坐标;另外需要设置给元素明确定一个高度值并且给元素设置一个负值的margin-top,而且值为元素高度的一半。
这里我建议大家给元素定一个宽度值,因为元素进行绝对定位后脱离文档流,其宽度是根据元素内容所占宽度来计算的(不是100%),为这能让其视觉效果更好,最好给元素定义一个宽度值。
方案三:利用table-cell实现垂直居中
使用div模拟表格布局
.container { position: relative; border: 1px solid blue; height: 200px; display: table; } .vertical { display: table-cell; vertical-align: middle; border: 1px solid red; }
html
<div class="container"> <div class="vertical"> 居中元素 </div> </div>
优点:此方法没有高度限制,不会出现滚动条等问题;
缺点:
不兼容ie6 ie7;
因为display:table在IE6-7中不被支持
方案四:在居中元素前加一个空的浮动元素
这个浮动元素的高度设置为容器的一半;margin-bottom设置为居中元素高度的一半;
如图:这里我用了一个绿色的border来展示这个隐藏元素;可以看到其实就是它把那个位置占据了,因此居中元素就自动往下平移了;
.container { position: relative; border: 1px solid blue; height: 400px; width: 400px; display: table; } .vertical { height: 300px; clear: both; border: 1px solid red; } .floater { float: left; height: 50%; margin-bottom: -150px; border: 5px solid green; }
html
<div class="container"> <div class="floater"></div> <div class="vertical"> </div> </div>
利用padding
<div class="columns"> <div class="item">test</div> </div>
.columns { position: relative; border: 1px solid blue; /* height: 400px; */ width: 400px; display: table; } .item { padding-top: 30px; padding-bottom: 30px; }
要点:设置上下一样的padding;
缺点:外容器高度固定不能达到效果
外容器高度不固定:
高度固定(height:400px):
就不居中了
原文链接:http://www.w3cplus.com/css/vertically-center-content-with-css
- CSS实现垂直居中!
- CSS实现垂直居中
- CSS实现垂直居中
- CSS实现垂直居中
- CSS实现垂直居中
- CSS实现垂直居中
- CSS实现垂直居中
- css实现垂直居中
- css实现垂直居中
- css实现垂直居中
- CSS实现垂直居中
- CSS垂直居中实现
- CSS实现垂直居中
- CSS实现完美垂直居中
- CSS实现完美垂直居中
- CSS实现完美垂直居中
- CSS实现完美垂直居中
- CSS实现完美垂直居中
- 仿微信图片选择器的添加使用
- 知乎和Quora高分APP原型设计工具推荐
- log4J2写入mysql
- android studio gradle配置
- 指针占几个字节
- CSS实现垂直居中
- fragment事物跳转
- MySQl优化-02
- Linux下查看文件内容的命令
- FreeMarker 的使用-网页
- 分享vs低版本开发的项目到VS高版本时遇到的4个小问题解决之记录
- 字符指针赋值的问题
- JavaScript易错知识点整理
- vim使用技巧