CSS实现文字垂直居中

CSS实现文字垂直居中CSS 实现文字垂直居中

一、问题描述: 当高度固定或不固定时,单行或多行文本难以实现垂直居中;

二、解决方法:

1、使用line-height属性,将line-height设置与元素高度等高。

局限性:只适用于单行文本,局限性大。

代码:

.box { 
    height: 100px; line-height: 100px; white-space: nowrap; } 

2.padding:设置相等的上下padding值。

局限性:有高度限制时不能垂直居中。

代码:

.box{ 
    padding-top: 30px; padding-bottom: 30px; } 

3.绝对定位居中:top:0; bottom:0; left:0; right:0; margin:auto;

元素在过度受限情况下,将margin设置为auto,浏览器会重算margin的值。(过度受限指的是同时设置top/bottom与height或者left/right与width。)

优点:支持响应式,只有这种方法在resize之后仍然垂直居中

缺点:使用绝对定位时元素必须有明确高度,没有显式设置overflow时,内容超过元素高度时会溢出,没有滚动条。IE浏览器不支持

代码:

.box{ 
   /*display:none;*/ position:absolute; width:200px; height:200px; top:0; bottom:0; left:0; right:0; margin:auto; background:#000; resize:both;/*用于设置了所有除overflow为visible的元素*/ overflow:auto; } 

4.固定高度定位居中:top: 50%;height: 100px;margin-top: -50px;

代码:

.parent { 
    position: relative; } .child { 
    position: absolute; top: 50%; height: 100px; margin-top: -50px; /*transform: translateY(-50%);*/ } 

5.不固定高度定位居中:top:50%;left:50%;transform:translate(-50%, -50%)

缺点:不支持响应式(不能使用百分比、min/max-width)

代码:

.parent { 
   position: relative;} .child{ 
    position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); } 

6.table-cell方式居中:dispaly:table;display:table-cell;vertical-align:middle;

display:table-cell属性指让标签元素以表格单元格的形式呈现,类似于td标签。

原理:利用表布局特点,vertical-align设置为middle后,单元格中内容中间与所在行中间对齐。

优点:支持任意内容的可变高度、支持响应式布局

缺点: 每一个需要垂直居中的元素都会需要加上额外标签(需要table、table-cell两个额外元素);

IE浏览器不支持

代码:

.father{ 
    height:200px; display:table; } .son{ 
    border:1px solid #000; width:760px; vertical-align:middle; display:table-cell; /*cell垂直居中,如果外层div不为table则tablecell须有高度*/ } 

7.弹性盒式布局居中:display: flex;align-items:center;

优点:真正的垂直居中布局

缺点:ie11才开始支持弹性布局

代码:

.box{ 
    display:-webkit-box; display:-moz-box; display:-ms-flexbox; display: -webkit-flex; display:flex; -webkit-align-items:center; align-items:center; -webkit-justify-content: center; justify-content: center; } 

总结

1、只有单行文本时,可以将line-height设置与元素高度等高

2、外层div与内层div高度均固定时,可以使用设置相等的上下padding值;

3、当高度固定时,可以采用固定高度定位居中:top: 50%;height: 100px;margin-top: -50px;此方法对IE浏览器支持较好;

4、当高度不固定时,可以采用弹性盒式布局居中:display: flex;align-items:center;此方法操作简单,但ie11才开始支持弹性布局;或者采用table-cell方式居中:dispaly:table;display:table-cell;vertical-align:middle;此方法支持任意内容的可变高度,但操作繁琐,并且IE8以上的浏览器才支持;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203226.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午10:18
下一篇 2026年3月19日 下午10:19


相关推荐

  • Collections工具类

    Collections工具类Collections 工具类概念 集合工具类 定义了除了存取以外的集合常用方法 方法 publicstatic List list 反转集合中元素的顺序 publicstatic List list 随机重置集合元素的顺序 publicstatic List T list 升序排序 元素类型必须实现 Comparable 接口 COPY 演示 T

    2026年3月16日
    1
  • git 拉新分支_git基于远程分支新建本地分支

    git 拉新分支_git基于远程分支新建本地分支原文地址:http://www.cnblogs.com/lingear/p/6062093.html开发过程中经常用到从master分支copy一个开发分支,下面我们就用命令行完成这个操作:1.切换到被copy的分支(master),并且从远端拉取最新版本$gitcheckoutmaster$gitpull2.从当前分支拉copy开发分

    2022年8月22日
    8
  • subprocess的用法[通俗易懂]

    subprocess的用法[通俗易懂]从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值。subprocess意在替代其他几个老的模块或者函数,比如:os.systemos.spawn*os.popen*popen2.*commands.*一、subprocess.Popensubprocess模块定义了一个类:Popenc…

    2025年8月12日
    5
  • SPSS系列—-异方差检验(等级相关系数检验法)

    SPSS系列—-异方差检验(等级相关系数检验法)这里写目录标题 SPSS 的异方差检验 等级相关系数检验法 数据来源普通最小二乘法求回归方程功能快捷键合理的创建标题 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中 居左 居右 SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必不可少的 KaTeX 数学公式新的甘特图功能 丰富你的文章 UML 图表 FLowchart 流程图导

    2026年3月19日
    2
  • python解压gz_python解压gz

    python解压gz_python解压gz广告关闭云服务器 1 核 2G 首年 99 年 还有多款热门云产品满足您的上云需求执行程序 会在当前目录下生成 aa tar gz 文件二 解压 defuntar fname dirs 解压 tar gz 文件 paramfname 压缩文件名 paramdirs 解压后的存放路径 return booltry t tarfile open fname t extractall path dirs returntru

    2026年3月18日
    2
  • Discuz! X3.2 二次开发基本流程

    Discuz! X3.2 二次开发基本流程1.Discuz目录结构1.1根目录文件admin.php—————————————–后台入口文件 api.php———————————————-合作API输出接口文件 connect.php—————————————-云…

    2022年5月19日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号