爱美容
当前位置: 首页 美容百科

css实现垂直居中的5种方法(CSS之基于不同场景的垂直居中解决方案)

时间:2023-05-23 作者: 小编 阅读量: 4 栏目名: 美容百科

如果只是相对于视口进行居中,依然使用margin就可以解决,只是需要使用一个很少见的单位“vh”。“vh”是一个视口相关的长度单位,1vh表示视口高度的1%,50vh表示视口高度的一半,由此一个基于视口垂直居中的方法如下:div{margin:50vhauto0;transform:translateY;}这种方法无需定位,可自适应高度,缺点就是只适用于基于视口的垂直居中。

大家好,今天要给大家分享的是CSS实现垂直居中的几种方法,相信大家对元素的水平居中都非常了解了,如果是一个行内元素,就对它的父元素应用 “text-align:center”;如果是一个块级元素,就对它自身应用“margin:auto”。但是要对一个元素进行垂直居中,你能想到哪些方法呢?下面我给大家介绍几种基于不同场景实现元素垂直居中的方法,希望能对你有所帮助。

水平垂直居中

首先我们用一些基本的html和css得到下图的效果,后面几种居中方法都基于此。

一、基于绝对定位的解决方案

1、绝对定位 固定宽高的垂直居中

div{position: absolute;width: 18em;height: 6em;top: 50%;left: 50%;margin-top: -3em;/*高度的一半*/margin-left: -9em;/*宽度的一半*/}

原理:这种居中的方法本质上做了两件事,一是先把需要居中的元素的左上角放在视口(或具有定位属性的父元素)的正中心,然后再利用负外边距把它向左、向上移动自身宽高的一半,从而使元素水平和垂直居中(如下图所示)。

缺点:要求元素有固定的宽高,但很多情况下,居中元素的尺寸是由其内容来决定的。

那么对于未知宽高的元素如何实现垂直居中呢?这时我们可能会想到用百分比来解析,但问题是,包括margin在内的很多CSS属性,百分比都是以其父元素的尺寸为基准进行解析的。

2、绝对定位 自适应宽高的垂直居中

如果找到一个能以自身尺寸为基准进行解析的属性对元素进行移动变换问题是不是就迎刃而解了呢?细心的同学会发现,CSS3为我们提供的2D转换属性中的translate属性恰好是以元素自身尺寸为基准进行换算和移动的。

div{position: absolute;top: 50%;left: 50%;transform:translate(-50%,-50%);}

这样是不是就可以摆脱对固定尺寸的依赖实现垂直居中了。

二、基于视口单位的解决方案

有些情况基于对整体布局的考虑不想使用绝对定位,这时我们任然可以采用translate()技巧把元素以其自身宽高的一半为距离进行移动,只是在没有定位缺少left和top的情况下如何把元素的左上角放在容器的中心呢?如果只是相对于视口进行居中,依然使用margin就可以解决,只是需要使用一个很少见的单位 “vh”。

“vh” 是一个视口相关的长度单位,1vh表示视口高度的1%,50vh表示视口高度的一半,由此一个基于视口垂直居中的方法如下:

div{margin: 50vh auto 0;transform:translateY(-50%);}

这种方法无需定位,可自适应高度,缺点就是只适用于基于视口的垂直居中。

三、基于Flexbox(伸缩盒)的解决方案

我认为这是最简单也是最高效的方法,唯一需要注意的就是浏览器的兼容问题,只需要两行代码就可以搞定:

一是给待居中元素的父元素设置display:flex,再给自身设置 margin:auto即可。

body{height: 100vh;display: flex;}div{margin: auto;}

除此之外,给父元素指定一个固定尺寸,可借助 "align-items" 和 “justify-content" 属性对其子元素进行垂直和水平居中,这种方法同时也适用于文本,自此就不用太过纠结line-height了。

div{display: flex;align-items: center;justify-content:center;width: 20em;height:10em;}

上面的代码随意改变div的宽高,里面文本始终保持水平和垂直居中。

    推荐阅读
  • 刺梅果根的功效与作用(刺梅果根的功效与作用有哪些)

    刺梅果根的功效与作用止血刺梅果根入药以后起到止血作用,而且止血效果特别好,它能缩短人体凝血时间,平时人们出现外伤出血时可以把它导碎制成细末,直接外敷在伤处,用药后能尽快止血,而且能防止牲畜感染,加快伤处愈合。收敛止泻刺梅果根还具有它不但能消除人类肠道炎症,还能尽快止泻,能维持人类肠道健康,平时人们出现肠炎,腹泻和痢疾等正式都能直接用它煎水喝,多数患者服用后病情能明显减轻,肠道功能也能尽快恢复正常。

  • 怎么解决汽车轮胎被扎(汽车轮胎被钉子扎了咋办)

    我们的车子在日常行驶过程中,轮胎难免会被异物所扎破。如果汽车轮胎被钉子扎破了,可以试试用应急补胎枪,适用于各种真空胎车型,不需要其他辅助工具,一枪即可完成补胎,不会对汽车轮胎造成伤害。所以,建议跑长途的司机在车上常备补胎器,遇到意外扎胎漏气的情况,应急必备的真空胎补胎工具就派上了用场,它具有方便快捷省力的特点,是开车出行必备的好物。

  • 2022江西城乡居民养老保险业务暂停及恢复办理时间安排

    江西省人力资源和社会保障厅发布公告,宣布2022年8月15日18时-8月25日24时暂停全省城乡居民养老保险业务经办,具体安排详见正文。

  • 叠组词(叠怎么组词)

    以下内容希望对你有帮助!叠组词商圈重叠:不同位置的商店商圈彼此重叠。

  • 瓜子血糖升高吗(1把瓜子等于6碗米饭)

    有些人认为每天吃点瓜子有利于心血管健康,而有的人却持完全相反的看法,认为瓜子里面的热量太高,吃一把等于吃六碗米饭,不仅会导致肥胖,还会损害健康。还有的人认为瓜子的热量高,吃多了会增加脂肪含量,加重肝脏的代谢负担,损害肝脏健康。一般建议,成年人每日的瓜子摄入量不要超过50g,成年人手抓一把的量大概就是这个量。另外在吃完瓜子之后要多喝水,避免上火。

  • 三从四德指的是什么意思(三从四德的意思)

    三从四德指的是什么意思?我们一起去了解并探讨一下这个问题吧!三从四德指的是什么意思三从四德:是中国古代到解放前妇女应有的品德,三从是未嫁从(听从)父、既嫁从(辅助)夫、夫死从(抚养)子,四德指妇德、妇言、妇容、妇功。三从四德是中国古代封建社会用于约束妇女的行为准则与道德规范,“三从”与“四德”的合称。

  • 3dvnand是mlc还是tlc(mlc 3dnand)

    三星手机是三星集团研发的智能手机,三星手机真正开始风靡全球是从A系列开始。A系列最初为折叠手机系列,最早三星SGH、A188、SGH、A288都是经典之作。

  • oppo什么时候收购的一加(OPPO有孙子了)

    据外媒TheMobilelndian爆料,一加正在考虑将旗下Nord产线剥离,成立一个全新的子品牌,经营关系类似于一加和OPPO。Nord有望在近期宣布具体消息,以更加独立的实体面向消费者,只在某些重大场合使用“一加”品牌前缀,证明与母公司没有完全剥离。如果以上消息得到证实,欧加集团将成为最大赢家,旗下共有OPPO、一加、realme、Nord四大品牌产线“儿孙绕膝”。

  • 土味情话大全撩男生(土味情话集锦)

    女:那你已经喜欢上70%的我了。大象的鼻子,熊猫的眼圈,鸟儿的翅膀,蜗牛的壳,我的你。如果你前女友和现女友同时掉到水里,我可以做你女朋友吗?

  • 我是小小营养师教案大班(幼儿园小小营养师教案)

    引导幼儿进行猜测。长期食用还会导致肥胖、营养不良的现象,所以我们应该尽量少吃。活动中,教师可以了解食物金字塔的含义,尝试科学配餐等方式达成教学目标。2.尝试根据“食物金字塔”设计搭配科学合理的营养午餐方案。