关于CSS的垂直居中
来源:互联网 发布:超级sql注入工具下载 编辑:程序博客网 时间:2024/05/21 14:02
第一次写,有点紧张
在页面中,垂直居中是个老大难的问题,方法各种各样,我这边列举了我最喜欢的方便的几个方法:
1.父元素高度一定,单行文本垂直居中
html部分:
<div class="outside single-line"> 我是单行内容</div>
css部分:
.outside {margin: 10px auto; width: 250px; height: 200px; border: 3px solid #069;}/* 单行 */.single-line { line-height: 200px;}
这个最简单,单行文本,父元素高度一定,直接设置line-height = 父元素高度就行了。
2.父元素高度一定,多行文本居中
html部分:
<div class="align_box_2"> <span class="align_word">这里的文字用来做多行文字垂直居中对齐的测试。 这是第二行文字,您还可以再<a href="javascript:;">添加</a>一行文字做测试! </span></div>css部分:
.align_box_2 { display:table-cell; width:550px; height:250px; border:4px solid #beceeb; color:#069; vertical-align:middle;}这里使用table-cell,使用vertical-align: middle来定位,像表格一样定位,也可以适用于图片垂直定位,详细的讲解可以戳这里。
3.父元素高度不一定,子元素高度一定
这种情况也比较常见,方法很多人也肯定知道。
html部分:
<div class="out-auto"> <span class="text"> 我是内容,父元素的高度不一定,但是我的内容高度是不变的,要把我居中... </span></div>
css部分:
.out-auto { position: relative; margin: 10px auto; width: 200px; height: 200px; border: 3px solid #000;}.out-auto .text { position: absolute; top: 50%; margin-top: -50px; height: 100px; border: 1px dashed #ccc;}这种方法其实很巧妙,先是绝对定位,top值为50%,找到中间的垂直的基准线,在通过margin-top上移子元素高度的一半来达到垂直居中的效果,这种不管父元素高度怎么变,只要子元素高度不变,定位一定没问题,而且兼容性比较好。
4.父元素高度不定,子元素高度不定
一般像这种情况也可能在实际中会遇到比较多,比如手机端预览图片等等。
html部分:
<div class="out-auto"> <div class="inside-auto"> 我的高度不定,我的父元素的高度也不定,但是要居中 </div></div>css部分:
.out-auto { position: relative; margin: 10px auto; width: 200px; height: 200px; border: 3px solid #000;}.inside-auto { position: absolute; top: 50%; border: 1px dashed #069; transform: translateY(-50%); -webkit-transform: translateY(-50%); -o-transform: translateY(-50%); -ms-transform: translateY(-50%);}
这个方法使用C3的transform属性,原理与上一中绝对定位上移的原理一致,translateY(-50%)上移自身的一般高度,不过兼容性有限,在不考虑低版本浏览器的情况下,这种方法真的是太太太好用了,我也一直使用这种方法,即节省代码又效率高,PC移动都适用。
题外话:
在这里我在推荐一种方法,那就是flex布局,这种布局常见于移动端,有很多没见过的属性。
html部分:
<div class="v-flex"> <span class="v-item"> 你好,我是flex布局 </span></div>css部分:
.v-flex { display: flex; justify-content: center; align-items: center; border: 2px solid #069; width: 100px; height: 200px;}
flex布局很神奇很好用,我自己也还没有完全理解,现在很多移动端的框架都在使用这个,我也要与时俱进才行
1 0
- 关于CSS的垂直居中
- 关于css垂直居中
- css 关于垂直居中
- 关于css的水平垂直居中问题
- 关于css中两层div的水平垂直居中问题
- 关于css中两层div的水平垂直居中问题
- css垂直居中的方法
- css垂直居中的方法
- css的div垂直居中
- CSS的水平居中与垂直居中
- 关于使用CSS居中(包括水平/垂直)
- 关于使用CSS居中(包括水平/垂直)
- 关于使用CSS居中(包括水平/垂直)
- 关于CSS实现水平垂直居中
- 关于文字的垂直居中
- 关于垂直居中的问题
- 关于css中的内容左右居中和垂直居中问题的简单处理
- 用CSS实现层的垂直居中
- 关于Android触摸事件的一些理解
- Mac版eclipse安装cvs插件
- 领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处
- JAVASCRIPT之禁止网页刷新
- skynet学习之环境变量skynet_env
- 关于CSS的垂直居中
- Redis使用认证密码登录
- DOM(更改样式_事件)
- RMAN差异备份与累积备份区别
- 图解Android - Android GUI 系统 (5) - Android的Event Input System
- 对Jpa中Entity关系映射中mappedBy的理解
- 考试总结
- spring AOP中自身方法调用无法应用代理解决办法
- java.sql.SQLException: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general