CSS文字或元素的水平垂直居中多种方式(简单明了)

前言:水平居中,我们可以很容易想到使用text-align实现文字水平居中,使用margin:0px auto;可以实现元素水平居中;所以重点将是怎么实现文字和元素的垂直居中??

 

--- 本文将通过举栗子说明各种解决方式:

 首先,单行文字、多行文字怎么水平垂直居中??

 

① 方案一:文本水平居中使用text-align:center即可,height设置和line-height一致可以实现单行文本垂直居中;如下

   .class1 {height:50px;width:500px;text-align: center;background-color:lightblue;line-height:50px;overflow: hidden;  }
   <div class="class1">测试单行文字水平垂直居中</div>

 

 

②方案二:具体到像素,单行或多行文字垂直居中还可以通过上下padding相等来实现,如下

   .class2 {font-size:20px;color:red;padding:20px 0px;border:1px solid red;text-align:center; }
   <p class="class2">这是段落内容,可以通过上下padding实现文字垂直居中</p>

 

 

③方案三:使用flex布局的justify-content: center;align-items: center;以及text-align:center;来单行或多行文字水平垂直居中实现,如下

   .class3 {height:90px;color:blue;border:1px solid red;display:flex;justify-content: center;align-items: center;text-align:center;}
<p class="class3">这是段落内容,可以通过上下display:flex和text-align:center实现文字水平垂直居中,可以通过上下display:flex和text-align:center实现文字水平垂直居中,</p>

 

 

④方案四:display: table-cell;vertical-align: middle;实现单行或多行文字垂直居中,如下

   .class4 {height:90px;width:500px;text-align: center;background-color:orange;display: table-cell;vertical-align: middle;}

注意:vertical-align:center只对行内元素有效,加上display:table-cell可以实现垂直居中的效果;但是table布局不推荐使用,因为会影响网页性能;

 

 

元素水平垂直居中:

①方案一:已知子元素宽高,比如宽高都是200px; 使用absoluted定位和负margin值是宽高的一半来实现水平垂直居中,如下

   .outBox {position: relative;width:600px;height:300px;border:1px solid purple;}.innerBox {width:200px;height:200px;background-color:lightblue;position: absolute;top:50%;left: 50%;margin-top:-100px;margin-left: -100px;}
   <div class="outBox"><div class="innerBox">这是元素内容块,使用绝对定位结合负margin来实现垂直水平居中</div></div>

说明:项目中经常使用,兼容性较好

 

 

 

②方案二:已知元素宽高。在绝对定位下,top、right、bottom、left均为0的情况下会自动填充父元素的可用空间,再使用margin:auto会平均分配空间;如下

.outBox {position: relative;border:1px solid red;height:250px;width:650px;
}
.innerBox {width:300px;height:100px;position: absolute;top:0;bottom: 0;left:0;right:0;background-color: lightblue;margin:auto;
}
<div class="outBox"><div class="innerBox">这是需要水平居中的元素,使用的是绝对定位top、bottom、left、right均为0</div>
</div>

 

③方案三:元素未知或已知宽高。利用css3的transform实现垂直水平居中

outBox {position: relative;border:1px solid red;height:250px;width:650px;
}
.innerBox {border:1px solid blue; position: absolute;top:50%;left:50%;transform: translate(-50%,-50%);
}

说明:此方法和flex布局只支持IE9+以上的浏览器。

 

 

④元素未知或已知宽高。利用flex弹性布局实现(flex布局后续会详解)

.outBox {border:1px solid red;height:250px;width:650px;display: flex;justify-content: center;align-items: center;
}
.innerBox {border:1px solid blue;
}

 

 

其它常用的布局常遇到的问题demo

 

Demo1: 如何解决单行图片和文字水平居中排列的问题??

<div><img src="http://www.w3school.com.cn/i/eg_bookasp.gif" style="width:50px;height:50px;vertical-align: middle;">测试用的文字
</div>

说明:只需要在img标签加上vertical-align:middle; 样式就可以实现单行图片文字垂直居中;

效果:

 

 

Demo2:为什么在使用dispaly:inline-block; 的元素上使用vertical-align:middle;无效??

<div style="border:1px solid red ;width:220px;height:50px;display: inline-block;vertical-align: middle;text-align: center;">需要垂直居中显示的文字
</div>
<span>nihao</span>

说明:vertical-align:middle;只对行内元素有效。 使用了dispaly:inline-block;的元素可以理解为是可在一行内排列的块级元素,可以设置宽高;解决办法:使用display:cell-table;vertical-align:middle; 或使用line-height;或使用flex布局居中;

效果:

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯视频怎么设置下载视频位置

腾讯视频是当下人们普遍使用的影视娱乐工具&#xff0c;腾讯视频怎么设置下载视频位置呢&#xff0c;下面我为大家一一介绍 1、打开电脑 2、打开腾讯视频 3、点击右上角菜单 4、点击设置 5、如下图选择 6、点击应用 7、腾讯视频设置开机自动启动就成功了&#xff0c;赶紧…

Vue-cli 项目打包布署(简单清晰)

第一步&#xff1a;项目打包前更改项目config配置 打开项目的 config>index.js文件修改build对象的assetsPublicPath: 属性值为 ./ 如下 第二步&#xff1a;对vue-cli项目进行打包 在运行窗口输入cmd后打开命令窗口&#xff0c;在项目文件下输入npm run build命令 如下&…

PP视频怎么把输出声音设置成单声道输出

在使用PP视频看电影时&#xff0c;怎么把输出声音设置成单声道输出呢?下面小编就介绍下方法。 1、先安装PP视频安装&#xff0c;然后点击快捷键启动。 2、进入到主页后点击右上角的三角形图标。 3、我们点击窗口中的“设置”按钮。 4、点击新页面左侧的“高级”按钮。 5、…

Vue-cli项目中路由的基础用法,以及路由嵌套

文件目录&#xff1a; 编辑router文件夹下的index.js文件 第一步&#xff1a;引用vue和vue-router &#xff0c;Vue.use&#xff08;VueRouter&#xff09; /* eslint-disable*/ import Vue from vue import Router from vue-router Vue.use(Router) 第二步&#xff1a;引用…

电脑端腾讯视频如何设置离线下载完成后自动关机

小编今天更新“电脑端腾讯视频如何设置离线下载完成后自动关机”&#xff0c;1、点击主页面右上角的三条横杠 2、点击【设置】 3、点击左侧的【自动关机】 4、勾选【离线下载完成自动关机】 5、点击【应用】即可 腾讯视频最新电视剧推荐&#xff1a; 纪录片《诺斯伍兹&am…

Vue路由传参的几种方式

前言&#xff1a;顾名思义&#xff0c;vue路由传参是指嵌套路由时父路由向子路由传递参数&#xff0c;否则操作无效。传参方式可以划分为params传参和query传参&#xff0c;params传参又可以分为url中显示参数和不显示参数两种方式。具体区分和使用后续分析。 参考官网&#x…

腾讯视频如何缓存视频

本文小编给大家分享的是腾讯视频下载安装免费2020_腾讯视频如何缓存视频。腾讯视频看到喜欢的视频&#xff0c;想把视频缓存下来&#xff0c;那腾讯视频如何缓存视频呢? 具体该如何操作&#xff0c;下面小编来详细的讲解一下。 1、首先打开腾讯视频&#xff0c; 2、接着选择…

常用html字符的转义字符串(html代码),全部转义字符备用

转义字符串&#xff0c;即字符实体&#xff08;Character Entity&#xff09;分成三部分&#xff1a; 第一部分是一个&符号&#xff1b; 第二部分是实体&#xff08;Entity&#xff09;名字或者是#加上实体&#xff08;Entity&#xff09;编号&#xff1b; 第三部分是一个分…

PP视频如何开启允许非WI-FI下载

今天分享一下PP视频如何开启允许非WI-FI下载&#xff0c;在使用PP视频的时候&#xff0c;如有需要&#xff0c;我们可以开启允许非WI-FI下载&#xff0c;具体步骤请看下面的详细介绍。 1、打开PP视频&#xff0c;然后点击右下角的我的选项。 2、进入到我的界面后&#xff0c;…

单行文字、多行文字溢出时省略号表示的多种解决方式;调整字符间距;段落首字母大写缩进效果;

文本溢出省略号表示的实现效果&#xff1a; 1、解决单行文字溢出&#xff1a; 解决方式&#xff1a; 在文字容器样式中添加 overflow:hidden; text-overflow:ellipsis; white-space: nowrap; 其中overflow:hidden;是在超出元素宽度范围时候不使用滚动条&#xff0c;text-ove…

如何升级IE浏览器 电脑IE浏览器怎么升级

如何升级IE浏览器?升级IE浏览器有两种方法&#xff0c;其一便是在网络上下载另一个版本的IE浏览器安装即可&#xff0c;另外一种则是直接访问微软官网获取IE&#xff0c;但因为微软的服务器不在中国&#xff0c;访问速度可能会让你崩溃。 如何升级IE浏览器&#xff1f; 方法…

js遍历对象、遍历数组、js数组方法大全、区分map()和forEach()以及filter()、区分for...in...和for...of...

1、给对象添加属性&#xff1a;使用 object.prop 或object[prop] 给对象添加属性 let obj{};obj.name"zhangsan";obj["age"]23;obj["class"]"语文";console.log(obj); //输出&#xff1a;{name: "zhangsan", age: 23, cl…

老毛桃U盘快速装系统

第一步&#xff1a;准备工作 1、一个u盘&#xff08;大小在4G以上&#xff09;&#xff1b; 2、下载所需安装的win7、win8 系统ISO文件&#xff08;大小在4G左右&#xff0c;过小则说明IOS下载错误&#xff09;&#xff1b; 3、U盘爱动盘制作工具&#xff08;这里使用的是老…

禁止IE页面自动跳转到EDGE浏览器的方法教程

IE浏览器一直是我们最常用的浏览器&#xff0c;但是Windows系统在大力推广edge浏览器的时候强制原来的IE用户使用IE浏览器的时候直接跳转到edge浏览器。应该怎么禁止IE浏览器跳转edge浏览器呢?下面小编就带着大家一起学习一下吧! 设置步骤&#xff1a; 1、首先打开IE浏览器&…

Vuex使用详解,附加项目遇到的问题(简单明了)

Vuex的定义、个人理解和结构解析 vuex定义&#xff1a;vuex是一个专门为vue.js设计的集中式状态管理架构。 vuex的个人理解&#xff1a; 是存储公有状态数据state的一个仓库(store)&#xff1b;解决了大型应用时组件传参的繁杂和不易维护性&#xff1b;vuex的状态储存是响应的…

Chorme控制台console的用法;

前提&#xff1a;是谷歌浏览器&#xff01; IE8- 不支持console.log();会报错&#xff0c;解决如下&#xff1a; (function (){//创建空console对象&#xff0c;避免JS报错 if(!window.console) window.console {}; var console window.console; //添加console对象的方…

搜狗浏览器如何下载安装 安装搜狗浏览器的详细步骤

搜狗浏览器如何下载安装?搜狗浏览器是一款很不错的网页浏览软件&#xff0c;但是大家知道如何下载安装搜狗浏览器吗?不会的小伙伴就请跟着小编一起来看看安装搜狗浏览器的操作步骤吧。 方法/步骤 1、我们寻找搜狗浏览器官方版本&#xff0c;点击搜寻。 2、可以选择软件库下…

null、undefined、NaN区分解析和条件判定,以及在IF条件中的判定

NaN的理解和用法&#xff1a; NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值&#xff0c;来指示其不是数字值。 Number.NaN 是一个特殊值&#xff0c;说明某些算术运算&#xff08;如求负数的平方根&#xff09;的结果不是数…

360浏览器鼠标手势怎么关 取消360浏览器鼠标手势的方法

360浏览器鼠标手势怎么关?鼠标手势&#xff0c;也就是右键滑动动作&#xff0c;对于不习惯使用该功能的用户而言&#xff0c;是一项体验很差的功能&#xff0c;如果你也想要关闭该功能&#xff0c;可以参考下文中的方法进行处理&#xff0c;想要再次开启也可以这样操作。 1、…

vue数组修改不触发视图更新、vue向响应式对象添加或删除属性

背景&#xff1a;在vue开发中会遇到data数据更改后view试图不会进行响应式更新的情况 以下4种情况不触发vue响应式更新&#xff01;&#xff01; 不能检测到的数组变动是&#xff1a; 1、当利用索引直接设置一个项时&#xff0c;例如&#xff1a;vm.items[indexOfItem] newVal…