【CSS】水平垂直居中

CSS中元素居中及flex属性详解
  1. 给父盒子设置属性 flex

    • display: flex;写在父元素上这就是定义了一个伸缩容器
    • justify-content:center 设置主轴对齐方式为居中,默认是横轴。子元素居中。
    • align-items:center 设置纵轴对齐方式为居中,默认是纵轴。子元素居中。
  2. 给父盒子和子盒子设置属性

    给容器设置 display: flex; 子项设置 margin: auto;

  3. 绝对定位设置居中

    容器设置position: relative。子元素设置 position: absolute; left: 50%; top: 50%; transfrom: translate(-50%, -50%);

    优点就是不用关心子元素的长和宽,但是这种方法兼容性依赖 translate2d 的兼容性

  4. 绝对定位另一种方法
    需要给子元素设置 position: absolute; 设置固定宽度和高度;top、left、bottom、right都设置为0; margin设置为auto;也能实现垂直水平居中。

flex:1 的作用

  • 首先 flex: 1; 等同于 flex: 1 1 auto;
  • flex: 1 实际上是三个属性的缩写:flex-grow: 1; flex-shrink: 1 flex-basis: auto;
CSS实现元素水平垂直居中的方法有多种,下面为你详细介绍: ### 使用 `margin: auto` 这是较为简单粗暴的方式,可在之前水平垂直居中的基础上实现另一个方向的居中 [^1]。 ### Flex布局 关键属性作用如下: - `display: flex`:表示该容器内部的元素将按照flex进行布局。 - `align-items: center`:表示这些元素将相对于本容器水平居中。 - `justify-content: center`:表示元素垂直居中。 示例代码如下: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .box1 { background-color: #bfa; width: 500px; height: 500px; display: flex; /* 主轴居中 */ justify-content: center; /* 辅轴居中 */ align-items: center; } .box2 { background-color: red; width: 100px; height: 100px; } </style> </head> <body> <div class="box1"> <div class="box2"></div> </div> </body> </html> ``` 上述代码中,`.box1` 作为父容器使用了flex布局,通过 `justify-content: center` 和 `align-items: center` 实现了 `.box2` 元素的水平垂直居中 [^3][^4]。 ### Grid布局 CSS新出的网格布局,代码量少,但兼容性不太好。示例代码如下: ```html <style> .father { display: grid; align-items: center; justify-content: center; width: 200px; height: 200px; background: skyblue; } .son { width: 10px; height: 10px; border: 1px solid red } </style> <div class="father"> <div class="son"></div> </div> ``` 在上述代码中,`.father` 容器使用 `display: grid` 开启网格布局,再通过 `align-items: center` 和 `justify-content: center` 实现了 `.son` 元素的水平垂直居中 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秀秀_heo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值