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

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

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

如果只是相对于视口进行居中,依然使用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的宽高,里面文本始终保持水平和垂直居中。

    推荐阅读
  • 张铎妈妈令人窒息(张铎妈妈想要无片酬演戏)

    近日,家庭伦理类综艺节目《婆婆和妈妈》正在持续热播中,该节目从播出到现在也有一段时间了,马上就要到结尾阶段了。程莉莎选择了花束,没想到陈松伶的婆婆和杨子也是花束,这个新的家庭也是很有趣了。程莉莎直接将杨子当作自己的老公一样使唤,杨子本来想用对待黄圣依的方式来对待程莉莎,但是发现压根就不管用,直接就被程莉莎给碾压了。

  • 入门眼线教程(画眼线的方法)

    入门眼线教程棉签按住上眼皮,会比用手指的接触感更干爽,接触眼皮面积也会很小。在同一个点,左右反复描绘几次,直至完成整条内眼线,具体可看图中示范。外眼线的部分不需要太夸张,用棉签按住眼尾轻轻向外拉,用眼线笔贴近睫毛根部,画一条细细的眼线即可。眼尾的部分稍稍向外平拉,眼尾钝一些,可以瞎按的整个眼更自然。划过眼线之后,用棉棒在沿线位置按压一下,用来吸走多余油分,也可以防止眼线脱妆。

  • 梅艳芳帅气角色(几千人中被选中饰演梅艳芳)

    距离传奇巨星梅艳芳逝世十八年时,这部关于她的传记电影《梅艳芳》终于来了,该片将于11月12日上映。备受瞩目的梅艳芳饰演者,是模特出道、从几千人中拿到角色的新人演员王丹妮。遗憾的是,今年3月廖启智因病去世,没能赶上“徒弟”王丹妮的出师。《梅艳芳》不仅是传记片,从头到尾还穿插了大量的歌舞,这给王丹妮带来了又一挑战。经过半年的特训,王丹妮已经分不清哪部分是自己,哪部分是梅艳芳了。

  • 虾线是在背上还是肚子下(虾线到底是在背上还是肚子下)

    以下内容希望对你有帮助!虾线是在背上还是肚子下虾线是虾的消化道,在虾的背部。虾的腹部也有一条线,但是这条线并不是虾的肠道,也不是我们日常生活中所说的虾线。如果想要除掉虾线,这个时候可以准备一个牙签并将它插入虾体内,然后把牙签往上挑直到将虾线挑出来,最后把虾线完整地拽出来。还可以将虾头掰断,将虾头中的内脏挤出来,接着也能将虾线给拉出来。

  • 福特野马哪款车型最好看(福特全新SUV售价5款车型任你选)

    MachE是福特旗下将推出的一款纯电SUV,新车或将定位为紧凑级车型。近日海外媒体曝光了福特全新MachE的车型售价,新车预计将推出5款车型,海外起售价为43,895美元兑,并将于下周即将开幕的2019年洛杉矶车展上正式发布。动力方面,新车将采用纯电形式驱动,并配备前后双电机,最大续航里程可达600km。外观方面,新车前脸采用了封闭式格栅设计,车身侧面呈溜背式造型,车尾与野马跑车车型保持一致。

  • 理睬的意思是什么一个一个字解释(理睬可以怎么解释)

    我们一起去了解并探讨一下这个问题吧!理睬的意思是什么一个一个字解释理睬的意思为对别人言行给以注意并表示态度。理的释义有四个,分别为:物质本身的纹路、层次,客观事物本身的次序,如心理、肌理、条理、事理。自然科学,有时特指“物理学”,如理科、数理化、理疗。按事物本身的规律或依据一定的标准对事物进行加工、处置,如理财、理事、管理、自理、修理、总理。睬的释义为理会、搭理。

  • 九江庐山市春节期间黄码人员核酸检测点

    健康码黄码人员需接受必要的核酸检测、健康监测等措施。请提前报告社区,并在做好防护后再前往以下黄码人员核酸采样点。提交成功后,县区解码专员会在24小时内在线审核,实现网上转码全闭环操作。如还有其他需要解答的问题,请与属地指挥部或社区工作人员联系。

  • 初唐四杰是谁 盛唐四杰是谁

    与四杰同时代的张说在《赠太尉裴公神道碑》中称:“在选曹,见骆宾王、卢照邻、王勃、杨炯”。

  • 牛种类 牛有几种

    牛是我们常见的一种动物,起源于中新世,是由原古鹿类分化的一支混杂而进步的支系,牛的用途有很多,那么牛种类有哪些?乳用品种是生长牛奶和奶制品为主,如荷兰牛。肉用品种是生产牛肉和牛肉制品,如短角牛,海福特牛,安格斯牛等。役用品种主要是用来耕作,如中国的水牛,黄牛等。兼用品种是乳肉兼用、肉役,如西门塔尔牛,丹麦红牛,瑞士褐牛等。