当前位置: 首页 > Web前端 > CSS

如何实现HTML元素的水平和垂直居中(每天一个知识点)

时间:2023-03-30 22:19:17 CSS

在前端页面开发中,HTML元素的水平和垂直居中是需要经常处理的问题。今天我们就来系统的学习一下如何在HTML中实现水平居中和垂直居中。通过对主流水平和垂直居中实现方式的实践,找到适合特定情况的布局实现方式,逐步达到灵活运用的水平。水平居中方式一:text-align:center(仅限内联元素)text-align属性定义了内联元素(比如文本)如何相对于它们的块级父元素对齐。当它的值为center时,可以使行中的元素居中。<样式>.box1{宽度:200px;高度:200px;背景颜色:橙色;文本对齐:居中;}一段文字展示

二:margin:0automargin用于设置块元素的偏移量,其值有四个参数,分别代表:上、右、下、左(顺时针)四个方向的偏移量。它的值可以缩写为二。第一个值表示上下边的偏移量,第二个值表示左右边的偏移量。当我们设置左右两边的偏移量为auto时,就意味着我们让浏览器自己选择一个合适的偏移量,这样左右就可以水平居中了。<样式>.box2{宽度:75%;背景颜色:石灰;保证金:0自动;}一段文字演示
方法三:基于relativeLayout实现水平居中我们可以将一个元素设置为浮动元素,然后将其定位设置为relative,并将其子元素的定位设置为相对。然后将父元素的左值设置为50%,并向右移动50%,然后我们将子元素的左值设置为-50%,使其移动50%的位置在相反的方向,这样就可以达到同样的定心效果。<样式>.box3{浮动:左;位置:相对;左:50%;}.box4{位置:相对;左:-50%;}一段文字展示
方法四:基于Flex的水平居中(移动端首选)水平居中基于flex的很简单,只要设置justify-content属性为center即可。由于flex是响应式布局,是移动端跨页开发的首选,所以非常推荐移动端开发小伙伴通过这种方式实现横向布局。一段文字演示.box5{display:flex;justify-content:center;}方法五:父元素开启相对定位,子元素开启绝对定位。我们也可以通过为父元素启用相对定位,为子元素启用绝对定位,实现水平居中。具体实现方法如下:一段文字演示.box6{position:relative;}.box7{width:80%;位置:绝对;背景色:粉色;左:0;右:0;margin:0auto;}垂直居中方式一:单行文字水平居中实现单行文字水平居中是我们在前端页面开发中经常遇到的一种情况。这种情况比较特殊,这里先介绍一下。在块元素中,如果只有一行文字,我们只需要设置line-height参数与当前容器的高度一致即可。代码如下:一段文字演示方法二:基于Flex的垂直居中基于Flex的垂直居中也很简单,设置align-items:center即可,代码如下:方法三:基于Table布局方式,我们可以将父元素的display属性设置为table,然后将子元素的display设置为table-cell,然后vertical-align:middle;设置为实现子元素的垂直布局。一段文字展示这种垂直居中的缺陷是父元素需要指定宽度。方法四:绝对定位+变换我们可以将父元素的position属性设置为relative,然后将子元素的属性设置为absolute,子元素会相对于父元素定位,然后我们设置top属性子元素的高度为50%,此时子元素距离父元素顶部的距离为父元素高度的50%,这时我们需要将元素本身向上移动50%它的高度,我们可以使用变换来实现。一段文字展示实现水平和垂直居中的方式有??很多种,每一种实现方式都有自己的不足或者有点,比如我们设置元素浮动的时候会遇到高度塌陷的问题,而使用flexlayout在老的IE浏览器中会有兼容性问题。因此,我们需要根据自己的使用场景灵活选择,力求在实现方式上找到最优方案!