CSS垂直居中问题解决方法
来源:互联网 发布:域名批量查询工具下载 编辑:程序博客网 时间:2024/06/03 08:38
在实际运用中,经常需要用到垂直居中的地方主要有一下两种情况:
1、导航栏
导航栏常用到的ul,li标签均为块级元素,a标签为行内元素。要使得a标签的文字垂直居中于li中,只需要a标签的高度与li的高度一致皆可。
然而,a标签是行内元素,不能直接设置其height值,因此,可以选择a的dispaly方式为block,即可为之设置高度line-height。具体代码如下:
<ul class="nav"><li><a href="#">首页</a></li><li><a href="#">活动</a></li><li><a href="#">论坛</a></li><li><a href="#">分类</a></li></ul>
.nav{width: 200px;height: 50px;border: 1px solid #007AFF;text-align: center;padding: 0;margin: 0 auto;}.nav li{margin: 0 auto;display: inline-block;width: 22%;height: 50px;}.nav li a{display: inline-block;text-decoration: none;line-height: 50px;border: 1px solid #DDDDDD;}
为了使看起来更直观,我设置了a的边框以及ul的边框,在实际工作中,可以按照不同的要求改变样式。效果图:
2、div内容垂直居中
在多数情况下,第一种方法并不适用,因为第一种方法实际上的子元素的高度填满了上级元素。
要在不改变元素高度的情况下设置垂直居中显示,可以通过给父元素的伪元素添加高度实现。
具体代码如下:
<div class="container"><ul class="tab"><li><a href="#">首页</a></li><li><a href="#">活动</a></li><li><a href="#">论坛</a></li><li><a href="#">分类</a></li></ul></div>
.container {width: 80%;margin: 0 auto;height: 200px;border: 1px solid #000000;vertical-align: middle;text-align: center;/*子元素水平居中*/}/*伪元素撑开容器,使子元素垂直居中*/.container::before{height: 100%;vertical-align: middle;content: " "; display: inline-block;}.tab {width: 80%;/*以下两句是垂直居中的重点*/display: inline-block; vertical-align: middle; /*以上两句是垂直居中的重点*/ border: 1px solid #ddd;height: 40px;text-align: center;line-height: 40px;background: #fff;border-radius: 10px;overflow: hidden;padding: 0;}.tab li {float: left;width: 25%;position: relative;overflow: hidden;}.tab li:before,.tab li:after,.tab li a {-webkit-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;text-decoration: none;}.tab li:before,.tab li:after {content: "";display: block;}/*竖线*/.tab li:not(:first-child):after {background: #ddd;height: 20px;width: 1px;left: 0;top: 10px;position: absolute;}.tab li a {display: block;position: relative;z-index: 2;color: #000;font-size: 14px;}.tab li:before {width: 0;height: 0;top: 50%;left: 50%;z-index: 1;position: absolute;}.tab li:hover a {color: #fff;}.tab li:hover:before {box-shadow: 0 0 0 100px #007AFF;}/*竖线消失*/.tab li:hover+li:after,.tab li:hover:after {height: 0;top: 20px;}
效果图:
阅读全文
1 0
- CSS垂直居中问题解决方法
- CSS垂直居中方法
- css 垂直居中方法整理
- css垂直居中的方法
- css垂直居中的方法
- CSS图片垂直居中方法
- CSS水平垂直居中方法
- css 水平垂直居中方法
- css垂直水平居中方法
- CSS垂直居中水平居中方法
- css 水平居中 垂直居中方法
- CSS图片垂直居中方法整理集合
- CSS解决未知高度垂直居中方法
- CSS解决未知高度垂直居中方法
- CSS图片垂直居中方法整理集合 !
- 五种方法实现css垂直居中
- CSS图片垂直居中方法整理集合 !
- 两种方法实现CSS垂直居中
- jsp页面ajax接收不到json值报406
- android.view.InflateException: Binary XML file line #2: Error inflating class android.support.v7.wid
- H指数(h-index)的Python实现
- centos 7的防火墙命令
- oracle行专列,求总值
- CSS垂直居中问题解决方法
- SpringBoot启动报错"Related cause: org.springframework.beans.factory.UnsatisfiedDependencyException: Err"
- 从移动端 click 到摇一摇
- Spring Cloud OAuth2、 Actuator、Docker联配最佳实践
- 4 歌曲比赛
- jQuery判断数组是否包含了指定的元素
- tensorflow在python2和python3上的安装教程
- 文章标题
- shell如何把字符串切割为数组