资讯专栏INFORMATION COLUMN

Web前端 css实现元素垂直居中的常用方法

MonoLog / 1274人阅读

摘要:不过这里得确定内部元素的高度,可以用百分比,比较适合移动端。方法这实际上是方法的变形,移位是通过来实现的。清除浮动,并显示在中间。

方法1:table-cell

html结构:

1 2 3 class="box box1">         垂直居中

css:

1 2 3 4 5 .box1{     display: table-cell;     vertical-align: middle;     text-align: center;         }

方法2:display:flex

1 2 3 4 5 .box2{     display: flex;     justify-content:center;     align-items:Center; }

方法3:绝对定位和负边距

.box3{position:relative;}
.box3 span{ position: absolute; width:100px; height: 50px; top:50%; left:50%; margin-left:-50px; margin-top:-25px; text-align: center; }

方法4:绝对定位和0

1 2 3 4 5 6 7 8 9 .box4 span{   width: 50%;    height: 50%;    background: #000;   overflow: auto;    margin: auto;    position: absolute;    top: 0; left: 0; bottom: 0; right: 0;  }

这种方法跟上面的有些类似,但是这里是通过margin:auto和top,left,right,bottom都设置为0实现居中,很神奇吧。不过这里得确定内部元素的高度,可以用百分比,比较适合移动端。

方法5:translate

1 2 3 4 5 6 7 8 .box6 span{             position: absolute;             top:50%;             left:50%;             width:100%;             transform:translate(-50%,-50%);             text-align: center;         }

这实际上是方法3的变形,移位是通过translate来实现的。

方法6:display:inline-block

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 .box7{   text-align:center;   font-size:0; } .box7 span{   vertical-align:middle;   display:inline-block;   font-size:16px; } .box7:after{   content:";   width:0;   height:100%;   display:inline-block;   vertical-align:middle; }

这种方法确实巧妙...通过:after来占位。

方法7:display:flex和margin:auto

1 2 3 4 5 .box8{     display: flex;     text-align: center; } .box8 span{margin: auto;}

方法8:display:-webkit-box

.box9{
    display: -webkit-box;
    -webkit-box-pack:center;
    -webkit-box-align:center;
    -webkit-box-orient: vertical;
    text-align: center
}

css3博大精深,可以实现很多创造性的效果,需要好好研究下。

今天又发现一种方法,现在补上:

方法9:display:-webkit-box

这种方法,在 content 元素外插入一个 div。设置此 div height:50%; margin-bottom:-contentheight;

content 清除浮动,并显示在中间。

Content here
.floater {
    float:left; 
    height:50%; 
    margin-bottom:-120px;
}
.content {
    clear:both; 
    height:240px; 
    position:relative;
}

优点: 
适用于所有浏览器 
没有足够空间时(例如:窗口缩小) content 不会被截断,滚动条出现

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/1030.html

相关文章

  • css - 收藏集 - 掘金

    摘要:绝对底部前端掘金来自国外的设计达人,纯,可以实现当正文内容很少时,底部位于窗口最下面。有效解决图片使用单位边角缺失的问题前端掘金起因在移动端使用布局时图片也需要用单位。 CSS 绝对底部 - 前端 - 掘金来自国外的设计达人,纯CSS,可以实现: 当正文内容很少时,底部位于窗口最下面。当改变窗口高度时,不会出现重叠问题。甚至,创造该CSS的人还专门成立一个网站介绍这个CSS底部布局方案...

    phpmatt 评论0 收藏0
  • 前端-CSS3&H5

    摘要:高度模型浅识为的简写,简称为块级格式化上下文,为浏览器渲染某一区域的机制,中只有和中还增加了和。并非所有的布局都会在开发中使用,但是其中也会涉及一些知识点。然而在不同的纯制作各种图形纯制作各种图形多图预警 一劳永逸的搞定 flex 布局 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平、垂直同时居中。记得刚开始学习 CSS 的时候,看到 float 属性不...

    xiaolinbang 评论0 收藏0
  • 查漏补缺 - 收藏集 - 掘金

    摘要:酝酿许久之后,笔者准备接下来撰写前端面试题系列文章,内容涵盖浏览器框架分钟搞定常用基础知识前端掘金基础智商划重点在实际开发中,已经非常普及了。 这道题--致敬各位10年阿里的前端开发 - 掘金很巧合,我在认识了两位同是10年工作经验的阿里前端开发小伙伴,不但要向前辈学习,我有时候还会选择另一种方法逗逗他们,拿了网上一道经典面试题,可能我连去阿里面试的机会都没有,但是我感受到了一次面试1...

    YuboonaZhang 评论0 收藏0
  • 常用前端知识积累

    摘要:闭包的理解使用闭包主要是为了设计私有的方法和变量。只在中存放不敏感数据,即使被盗也不会有重大损失。每个最多只能有条,每个长度不能超过,否则会被截掉。有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。 闭包的理解 使用闭包主要是为了设计私有的方法和变量。 优点是可以避免全局变量的污染, 缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存...

    B0B0 评论0 收藏0

发表评论

0条评论

MonoLog

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<