CSS居中对齐指南---ProMax

本文详述了CSS中让元素居中对齐的六种方法:使用变换、Flex布局、负边距、网格、填充和表格单元格。适合前端开发者掌握不同场景下的居中技巧,包括水平和垂直居中。

让我们来看看我对css的毕生所学

目录

1. 使用变换

2. 使用Flex

3. 使用负边距

4. 使用网格

5. 使用填充

6. 使用表格单元格

使用文本对齐

使用边距


1. 使用变换

        什么时候用:

  • 当元素的宽度和高度未知时;
  • 卡片式弹出框中有多个子元素,其中一个焦点元素位于中心。

这个思路是使用绝对定位——topleft 50%,然后应用负变换。topleft中使用的值根据父元素的尺寸解析,而translate方法中的值根据元素本身的尺寸解析。

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

2. 使用Flex

        什么时候用:

  • 当有一个或多个元素要居中时;
  • 当子元素是动态的并且大小未知时;
  • 当有一行项目需要像页脚一样居中时。

这个思路是使父容器成为flexbox并使用flex属性将元素沿水平和垂直方向居中,如下所示。

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

当有多个元素需要一个在另一个元素上方堆叠,并使该元素堆叠在其中心时,那我们就:

flex-direction: column; 

3. 使用负边距

        什么时候用:

  • 当元素的高度和宽度已知时。

这个思路是再次使用类似于变换技术的绝对定位,但应用的是元素宽度和高度一半的负边距而不是平移。

width: 200px; /* CSS 变量 */
height: 100px; /* CSS 变量 */
.center {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -50px -100px; 
}

4. 使用网格

这玩意说实话我不太会,经查阅使用方法如下

什么时候用:

  • 当只有一个子元素需要居中时。

这个思路是创建一个网格容器并将边距设置为auto。在非网格容器中,当margin设置为auto时,margin-topbottom取值为0。但是,在网格容器中,margin-topbottom平均分配可用空间,从而使元素居中

.parent {
  display: grid;
}
.center {
  margin: auto;
}

另一种使用网格来实现居中的方法是:

.parent {
  display: grid;
  place-items: center;
}

5. 使用填充

注意嗷注意!!!        不建议将此技术用于中心对齐,但它也是可行的。

        什么时候用:

  • 当父元素的高度已知或者固定时;
  • 当中心元素的高度为弹性可变时。

这个思路是为已知固定高度的容器设置固定的垂直填充,并允许子元素占据最大高度和自动边距。

.parent {
  height: 600px; 
  padding: 200px 0; 
}
.center{
  margin: 0 auto;
  height: 100%; 
}

6. 使用表格单元格

这个现在用得比较少,但是也能用

这个思路是使用display强制父级表现得像一个表格单元格。然后使用vertical align属性进行垂直居中,使用margin auto进行水平居中。

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

以上就是居中对齐元素的6种方法了

然后

另外我们再讲一讲——水平居中

水平居中通常用于标题样式和页脚,并结合均匀的填充或边距。

使用文本对齐

        什么时候用:

  • 当中心元素为文本内容或者inline-*类型元素时;
  • linline-*包括inlineinline-blockinline-flexinline-table等。
    .parent {
       text-align: center;
    }

    据尝试它还可以居中块类型子元素,但我不是很推荐,如果你这么搞出问题了很难改!

使用边距

        什么时候用:

  • 当中心元素是块元素时
.center {
    margin: 0 auto;
}

好了到此结束,以上就是我目前毕生所学了

怕我了解的不全面误导人我还特意去查阅了各种资料总结的,就是说希望对你们有帮助吧.那么bye~

知识参考:https://blog.youkuaiyun.com/weixin_37580235/article/details/82317240

                HTML 标签参考手册

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值