前言

总括: CSS居中一直是一个比较敏感的话题,为了以后开发的方便,楼主觉得确实需要总结一下了,总的来说,居中问题分为垂直居中和水平居中,实际上水平居中是很简单的,但垂直居中的方式和方法就千奇百怪了。

  • 原文地址:CSS居中小谈

  • 知乎专栏&&简书专题:前端进击者(知乎)&&前端进击者(简书)

  • 博主博客地址:Damonare的个人博客

人生用物,各有天限;夏涝太多,必有秋旱。

正文

内联元素居中方案

水平居中设置:

  1. 行内元素 设置 text-align:center;

  2. Flex布局 设置display:flex;justify-content:center;(灵活运用)

垂直居中设置:

  1. 父元素高度确定的单行文本(内联元素) 设置 height = line-height;
  2. 父元素高度确定的多行文本(内联元素) a:插入 table (插入方法和水平居中一样),然后设置 vertical-align:middle; b:先设置 display:table-cell 再设置 vertical-align:middle;

    块级元素居中方案

    水平居中设置:

  3. 定宽块状元素 设置 左右 margin 值为 auto;

  4. 不定宽块状元素 a:在元素外加入 table 标签(完整的,包括 table、tbody、tr、td),该元素写在 td 内,然后设置 margin 的值为 auto; b:给该元素设置 display:inine 方法; c:父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:50%;

垂直居中设置:

  • 1.使用position:absolute(fixed),设置left、top、margin-left、margin-top的属性;

    .box{
    position:absolute;/*或fixed*/
    top:50%;
    left:50%;
    margin-top:-100px;
    margin-left:-200px;
    }
    • 2.利用position:fixed(absolute)属性,margin:auto这个必须不要忘记了;
.box{position: absolute;或fixedtop:0;right:0;bottom:0;left:0;margin: auto;
}
  • 3.利用display:table-cell属性使内容垂直居中,这个方法在多行文字居中的时候用的比较多;

HTML代码:

<div class="box"><span>多行文字,此处居中设置</span>
</div>

CSS代码:

.box{display:table-cell;vertical-align:middle;text-align:center;width:100px;height:120px;background:purple;
}
.box span{display: inline-block;vertical-align: middle;
}
  • 4.使用css3的新属性transform:translate(x,y)属性;
.box{position: absolute;top:50%;left:50%;transform: translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);
}
  • 5.最高大上的一种,使用before,after伪元素;

HTML代码:

<div class='box'><div class='content'>垂直居中</div>
</div>

CSS代码:

.box{position:fixed;display:block;background:rgba(0,0,0,.5);
}
.box:before{content:'';display:inline-block;vertical-align:middle;height:100%;
}
.box:after{content:'';display:inline-block;vertical-align:middle;height:100%;
}
.box .content{width:60px;height:60px;line-height:60px;color:red;
}
  • 6.Flex布局;
.box{display: -webkit-box;display: -webkit-flex;display: -moz-box;display: -moz-flex;display: -ms-flexbox;display: flex;水平居中-webkit-box-align: center;-moz-box-align: center;-ms-flex-pack:center;-webkit-justify-content: center;-moz-justify-content: center;justify-content: center;垂直居中-webkit-box-pack: center;-moz-box-pack: center;-ms-flex-align:center;-webkit-align-items: center;-moz-align-items: center;align-items: center;
}

结语

博主暂时掌握了这些居中方法,读者如果还有好方法或是觉得那个地方不对,欢迎评论,不吝感谢。

CSS垂直居中和水平居中相关推荐

  1. CSS 垂直居中、水平居中及流失布局宽高自适应

    CSS 垂直居中.水平居中及流失布局宽高自适应,在工作中,经常遇到某个元素如何居中,因此介绍一种简单的居中方式.同时,也经常遇到,上到下布局,当顶部动态变化时,及高度不固定,但是底部如何动态铺满父元素 ...

  2. css垂直居中和水平居中方法总结

    CSS垂直居中总结 文档转载网络并做整合                                                                                 ...

  3. css弹性布局笔记一(垂直居中、水平居中、居中)(display:flex)

    CSS弹性布局,需要一个容器,容器中至少包含一个以上的元素,以下代码包含子元素垂直居中.水平居中.居中三种情况 <html> <head> <style type=&qu ...

  4. css图片居中(水平居中和垂直居中)

    css图片居中(水平居中和垂直居中) css图片居中分css图片水平居中和垂直居中两种情况,有时候还需要图片同时水平垂直居中,下面分几种居中情况分别介绍. css图片水平居中 利用margin: 0 ...

  5. 高度不定垂直居中_经典:CSS垂直居中的七种方法

    点击上方"程序员黑叔",选择"置顶或者星标" 你的关注意义重大! 作者: 来自互联网 我们在编辑一个版面,通常都会用到水平居中和垂直居中来设计,而水平居中很好处 ...

  6. java布局垂直居中_CSS水平居中和垂直居中解决方案(转)

    一.CSS 居中 - 水平居中 DIV等标签本身没有定义自己居中的属性,网上很多的方法都是介绍用上级的text-align: center,然后嵌套一层DIV来解决问题. 可是这个方法有时候完全不起作 ...

  7. 前端中全部盒子靠左对齐_图文详解ul中li内容垂直居中和水平居中的方法

    在页面布局时,经常会用到li标签,它可用于列表,导航,选项卡等等,那你知道如何让ul中的li居中吗?这篇文章就和大家讲讲如何让ul中的li水平居中以及如何让li内容垂直居中.感兴趣的朋友继续往下看吧. ...

  8. CSS垂直居中的七个方法

    我们在编辑一个版面,通常都会用到水平居中和垂直居中来设计,而水平居中很好处理,不外乎就是设定margin:0 auto:或是text-align:center:,就可以轻松解决掉水平居中的问题,但一直 ...

  9. HTML 水平居中 垂直居中 垂直水平居中的几种实现方式

    文章目录 水平居中 垂直居中 垂直水平居中 方式1:绝对定位 方式二 定位+负margin 方式3:使用translate实现平移 方式4:通过设置bottom top left right marg ...

最新文章

  1. 为什么c语言编译器闪屏,C语言贪吃蛇闪屏问题,求大神!!!
  2. pycharm支持python3.8_PyCharm 2019.2 发布,Python 3.8功能的支持
  3. 张苗 清华大学 计算机,2011222229张苗组件局域网及搭建服务器技术分析.doc
  4. C++:38---final关键字和禁止类继承
  5. switch语句可以被代替吗_爬楼梯可以代替跑步吗?
  6. Zhang-Suen细化算法讲解及实现
  7. gcc4.4下实现backtrace代码
  8. Spring深入学习之IOC与AOP
  9. Android 中Animation简单例子
  10. unity3d C#UnityEngine API 提示中文汉化
  11. 关闭迅雷极速版自动更新功能
  12. 利用nginx搭建静态资源服务器,把服务器本地文件对外可直接访问
  13. 统计学——线性回归决定系数R2
  14. c语言32关键字详解pdf,C语言32个关键字.pdf
  15. ps无法打开计算机缺失文件,ps打开出现dll文件丢失怎么解决
  16. 安装JDK1.8报错 “当前页面的脚本发生错误”
  17. 吃货必备手册,爱辣条就不能错过的零食地图
  18. 韩非子《五蠹》全文及译文
  19. 【基于时间特征交互和引导细化的遥感变化检测 】2022TGRS
  20. win10清理_教你一招win10如何彻底清理C盘垃圾

热门文章

  1. 嵌入式ARM64 Linux内核FIT uimage方式启动
  2. 华为OD机试真题2023(JavaScript)
  3. 入门SpringBoot-关于那些静态资源(四)
  4. 最新深信服面试笔试题
  5. 计算机知识交流的平台,「电脑」-一个分享电脑知识的平台
  6. 【Unity】物理系统的静态碰撞体、刚体碰撞体、Kinematic刚体碰撞体
  7. E.03.09 China Tried to Slow Divorces by Making Couples Wait. Instead, They Rushed.
  8. chrome vue 未响应_vue兼容低版本chrome
  9. 独家 | 数据化思维、 数字化陷阱和 0.01 突破
  10. BIM设计要做哪些准备工作才能真正完成建筑全生命周期的使命