常用的CSS实现垂直居中的4种方法

这次给大家带来常用的CSS实现垂直居中的4种方法,CSS实现垂直居中的注意事项有哪些,下面就是实战案例,一起来看一下。

行高line-height实现单行文本垂直居中

以前一直认为单行文本垂直居中要将高度和行高设置成相同的值,但高度其实没必要设置。实际上,文本本身就在一行中居中显示。在不设置高度的情况下,行高撑开高度。

.test{    line-height: 50px;    background-color: lightblue;}    

测试文字

常用的CSS实现垂直居中的4种方法

设置vertical-align:middle实现垂直居中

【1】设置父元素的display为table-cell

通过为table-cell元素设置vertical-align:middle,可使其子元素均实现垂直居中。这和表格里单元格的垂直居中是类似的

[注意] 若要IE7-浏览器支持,则可以将其改为

表格结构

[注意] 设置为table-cell的p不能使用浮动或绝对定位,因为浮动或绝对定位会使元素具有块级元素特性,从而丧失了table-cell元素具有的垂直对齐的功能。

若需要浮动或绝对定位处理,则需要外面再套一层p。

.parent{  display: table-cell;  vertical-align: middle;}

我是有点长的有点长的有点长的有点长的测试文字

这里写图片描述

【2】若子元素是图片,通过设置父元素的行高来代替高度,且设置父元素的font-size为0。

vertical-align:middle的解释是元素的中垂点与父元素的基线加1/2 父元素中字母X的高度对齐。由于字符X在em框中并不是垂直居中的,且各个字体的字符X的高低位置不一致。

所以,当字体大小较大时,这种差异就更明显。当 font-size为0时,相当于把字符X的字体大小设置为0,于是可以实现完全的垂直居中。

.parent{  line-height: 100px;  font-size: 0;}.child{  vertical-align: middle;}

@@##@@

常用的CSS实现垂直居中的4种方法

【3】通过新增元素来实现垂直居中的效果

新增元素设置高度为父级高度,宽度为0,且同样设置垂直居中vertical- align:middle的inline-block元素。由于两个元素之间空白被解析,所以需要在父级设置font-size:0,在子级再将 font-size设置为所需值;若结构要求不严格,则可以将两个元素一行显示,则不需要设置font-size:0。

.parent{  height: 100px;  font-size: 0;}.child{  display: inline-block;  font-size: 20px;  vertical-align: middle;}.childSbling{  display: inline-block;  height: 100%;  vertical-align: middle;}

我是比较长的比较长的多行文字

思路三:通过绝对定位实现垂直居中

【1】若子元素不定高, 使用top50%配合translateY(-50%)可实现居中效果。
 

translate函数的百分比是相对于自身高度的,所以top:50%配合translateY(-50%)可实现居中效果。

[注意] IE9-浏览器不支持;

[注意]若子元素的高度已知,translate()函数也可替换为margin-top: 负的高度值。

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

测试文字

【2】若子元素定高,结合绝对定位的盒模型属性,实现居中效果

.parent{  position: relative;}.child{ position: absolute; top: 0; bottom: 0; margin: auto 0; height: 50px;}

测试文字

在水平居中对齐中,元素外层套一层p并设置absolute,元素设置负margin-left或者relative的负left属性,可以实现水平居中的效果。但由于margin是相对于包含块宽度的,这样margin-top:-50%得到的是宽度而不是高度的-50%,所以不可行;对于relative的百分比取值而言,在包含块高度为auto的情况下,chrome、safari和IE8+浏览器都不支持设置元素的百分比top值,所以也不可行。

思路四:使用弹性盒模型flex实现垂直居中

[注意] IE9-浏览器不支持

【1】在伸缩容器上设置侧轴对齐方式align-items: center

.parent{  display: flex;  align-items: center;}

测试文字

【2】在伸缩项目上设置margin: auto 0

.parent{  display: flex;}.child{  margin: auto 0;}

测试文字

相信看了本文案例你已经掌握了方法,更多精彩请关注创想鸟其它相关文章!

推荐阅读:

css3的pointer-events使用详解

focus-within的使用详解

CSS3做出无缝轮播广告

这里写图片描述

以上就是常用的CSS实现垂直居中的4种方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1609383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 00:45:00
下一篇 2025年12月10日 09:01:11

相关推荐

  • CSS生成常用的图标样式

    这次给大家带来CSS生成常用的图标样式,CSS生成常用的图标样式的注意事项有哪些,下面就是实战案例,一起来看一下。 基本图标: 您可以将Font Awesome图标使用在几乎任何地方,只需要使用CSS前缀 fa ,再加上图标名称。 Font Awesome是为使用内联元素而设计的。我们通常更喜欢使用…

    好文分享 2025年12月24日
    000
  • css如何做出0.5像素的线条

    这次给大家带来css如何做出0.5像素的线条,css做出0.5像素线条的注意事项有哪些,下面就是实战案例,一起来看一下。 公司的设计师在做设计图的时候都是以iphone6(宽为750物理像素)为基准进行设计的。iphone6的设备像素比(即css像素与物理像素的比例)是2,所以设计师在设计图画了边框…

    2025年12月24日
    000
  • css3的Transition平滑过渡菜单栏实现

    这次给大家带来css3的Transition平滑过渡菜单栏实现,实现Transition平滑过渡菜单栏的注意事项有哪些,下面就是实战案例,一起来看一下。 CSS3的制作动画的三大属性(Transform,Transition,Animation)下面介绍一下 Transition属性。transit…

    2025年12月24日
    000
  • CSS双飞翼布局的详解

    这次给大家带来CSS双飞翼布局的详解,实现CSS双飞翼布局的注意事项有哪些,下面就是实战案例,一起来看一下。 双飞翼布局,就是两端固定宽高,中间自适应的三栏布局 先来张图,左边和右边的灰色块是固定宽高的,中间绿色的区域是宽高自适应 方式一:通过flex弹性布局来实现 看代码 //HTML结构,p2是…

    2025年12月24日
    000
  • 怎样高效的使用CSS选择符

    这次给大家带来怎样高效的使用CSS选择符,高效使用CSS选择符的注意事项有哪些,下面就是实战案例,一起来看一下。 最初写CSS的时候,觉得很简单,写得天马行空。后来慢慢的发现,没有规则的瞎写,虽然也能实现效果,但是在实际开发中可能会多做无用功或是重复做功,并且CSS并不高效。于是后期开发时就特意按照…

    2025年12月24日
    000
  • CSS3实现瀑布流布局的方法

    这次给大家带来CSS3实现瀑布流布局的方法,CSS3实现瀑布流布局的注意事项有哪些,下面就是实战案例,一起来看一下。 以前使用瀑布流都要用js,现在有了css3,可以轻松实现了。 掌握点: 1、column-count 把p中的文本分为多少列 2、column-width 规定列宽 3、column…

    好文分享 2025年12月24日
    000
  • CSS3做出倒影的图文详解

    这次给大家带来css3做出倒影的图文详解,css3做出倒影效果的注意事项有哪些,下面就是实战案例,一起来看一下。 效果图如下: 示例图片 在CSS3之前,想要实现示例图片这样的一个倒影效果一般只能通过处理图片的方式,而CSS3问世之后,想要实现这样的效果变得非常简单,只需一个CSS3属性就可以轻松实…

    2025年12月24日 好文分享
    000
  • CSS3做出无缝轮播广告

    这次给大家带来CSS3做出无缝轮播广告,CSS3做出无缝轮播广告的注意事项有哪些,下面就是实战案例,一起来看一下。 无缝轮播的原理图 1 . html的架构 : @@##@@ @@##@@ @@##@@ @@##@@ @@##@@ @@##@@ @@##@@ @@##@@ @@##@@ JavaSc…

    2025年12月24日
    000
  • 完全利用CSS实现元素居中

    这次给大家带来完全利用CSS实现元素居中,利用CSS实现元素居中的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 记得有次找工作面试的时候,一面试官问了一个CSS方面的问题:如何让元素在浏览器窗口中上下左右居中。我记得当时给了个答案是,先用JS获取浏览器窗口高度,然后给body设置line-…

    好文分享 2025年12月24日
    000
  • css3的pointer-events使用详解

    这次给大家带来css3的pointer-events使用详解,使用css3的pointer-events的注意事项有哪些,下面就是实战案例,一起来看一下。 pointer-events 是什么? 顾名思义,pointer-events 是一个用于 HTML 指针事件的属性。 pointer-even…

    2025年12月24日
    000
  • CSS制作“正在加载”提示框

    这次给大家带来CSS制作“正在加载”提示框,CSS制作“正在加载”提示框的注意事项有哪些,下面就是实战案例,一起来看一下。  需求:               有时加载数据比较慢,页面一直没有反应,用户也许会不停的刷,而且用户体验也不好 解决:          在js中加入以下代码即可 //提示…

    2025年12月24日
    000
  • css中hover做遮盖罩闪动问题

    这次给大家带来css中hover做遮盖罩闪动问题,css中hover做遮盖罩的注意事项有哪些,下面就是实战案例,一起来看一下。 具体代码如下所示: 你好 这是html代码部分,原本想做一个遮盖罩的效果,当鼠标移动到p2的时候,p3会出现微微遮一下p2. 所以最开始的css代码是这样的 做完后发现出了…

    2025年12月24日 好文分享
    000
  • CSS的mask-image属性详解

    这次给大家带来CSS的mask-image属性详解,使用CSS的mask-image属性注意事项有哪些,下面就是实战案例,一起来看一下。 CSS mask遮罩属性的历史非常久远了,远到比CSS3 border-radius等属性还要久远,最早是出现在Safari浏览器上的,差不多可以追溯到09年。 …

    2025年12月24日
    000
  • CSS3的rem(设置字体大小)使用教程

    这次给大家带来CSS3的rem(设置字体大小)使用教程,使用CSS3的rem(设置字体大小)的注意事项有哪些,下面就是实战案例,一起来看一下。 css3新增了相对单位 rem ,使用rem同em一样皆为相对字体大小单位,不同的是rem相对的是HTML根元素。鉴于很多网友提到了rem,所以我这里就对其…

    2025年12月24日
    000
  • CSS的loading动画效果使用教程

    这次给大家带来CSS的loading动画效果使用教程,CSS的loading动画效果使用注意事项有哪些,下面就是实战案例,一起来看一下。 本文介绍了一份纯CSS loading效果代码示例,分享给大家,具体如下: 预览 代码 使用了CSS的keyframes自定义关键帧动画 Loading p#pr…

    2025年12月24日
    000
  • Css绘制扇形图案

    这次给大家带来Css绘制扇形图案,Css绘制扇形图案的注意事项有哪些,下面就是实战案例,一起来看一下。 阅读此文需具备基本数学知识:圆心角、弧度制、三角函数。 为实现如下效果呕心沥血: 当然你可以拥抱 Svg…在此分享如何纯 Css 打造圆环进度条,只需三步! 此物乃 2 + 1 夹心饼…

    2025年12月24日 好文分享
    000
  • 纯css实现照片墙3D效果

    这次给大家带来纯css实现照片墙3D效果,纯css实现照片墙3D效果的注意事项有哪些,下面就是实战案例,一起来看一下。 直接上代码 1.准备材料: 准备材料就是没什么材料,自己麻溜赶快的去:百度找几张美女的照片来测试即可。 2.html代码: 照片墙 @@##@@ @@##@@ @@##@@ @@#…

    2025年12月24日
    000
  • CSS的滤镜实现火焰效果

    这次给大家带来CSS的滤镜实现火焰效果,CSS滤镜实现火焰效果的注意事项有哪些,下面就是实战案例,一起来看一下。 上次我们了解了一些css滤镜的基础知识,CSS滤镜 filter属性 这次我们就来用css的滤镜实现一个 火焰的效果。 解释 要实现上面的火焰效果,我们先来了解一些必要的东西。 上次我们…

    2025年12月24日 好文分享
    000
  • css中sticker-footer布局如何使用

    这次给大家带来css中sticker-footer布局如何使用,使用css中sticker-footer布局的注意事项有哪些,下面就是实战案例,一起来看一下。 在网页设计中,Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过。它可以概括如下:如果页面内容不够长的时候,页…

    好文分享 2025年12月24日
    000
  • CSS3的鼠标移入图片动态提示效果

    这次给大家带来CSS3的鼠标移入图片动态提示效果,实现CSS3鼠标移入图片动态提示效果的注意事项有哪些,下面就是实战案例,一起来看一下。 第一次尝试着写博客,不好或者有误的地方希望大家多多指正呐,今天主要写的是关于CSS3的一个重要属性transform的一些用法,这些例子是之前在慕课网上学习某位老…

    2025年12月24日 好文分享
    000

发表回复

登录后才能评论
关注微信