flex 垂直居中_多个你不知道的 CSS 居中方案

本文详细介绍了多种CSS居中方法,包括内联元素的text-align: center,Flexbox的justify-content: center,CSS Grid的align-items,块元素的margin auto和absolute定位等。此外,还探讨了垂直居中和水平垂直居中的解决方案,提供了一个全面的CSS居中技术参考指南。
摘要由CSDN通过智能技术生成

水平居中

内联元素

要使内联元素(如链接,span 或img)居中,使用 text-align: center 足够了。

.desk {  text-align: center;}
66510850e8dedd32cf0237e565689d95.png

对于多个内联元素,也可以使用text-align:center:

.desk {  text-align: center;}
22ac8b56544c3ed92c75263619cfce6d.png

Flexbox

使用 flexbox 也可以快速居中元素:

.desk {  display: flex;  justify-content: center;}

对于多个内联的项目,也可以正常工作:

f17ae8851360f99db7804267b8a5518a.png

CSS Grid

使用网格容器时,图中的盘子将根据其网格区域居中。请注意,除非将它们包裹在一个元素中,否则这将不适用于多个盘子。

.desk {  display: grid;  justify-content: center;}
581d1b32a8e6a90769388e8f3b209f8c.png

块元素

Auto Margin

宽度和高度已知的块元素可以通过设置margin-left:auto 和 margin-right:auto 居中元素。

.plate {  width: 120px;  height: 120px;  margin-left: auto;  margin-right: auto;}
dc461a5cb4bd4691e3f30a16a231ccc7.png

对于多个块元素,它们应该包装在一个元素中,然后让这个父元素居中。

.tray {  display: flex;  margin-left: auto;  margin-right: auto;}
3fb0783d2375a78c8f84a6d684bca9a0.png

Flexbox

对于 flexbox 同样也是使用 justify-content:center 来居中元素:

.desk {  display: flex;  justify-content: center;}
7bf90c3579733d5501ae4e1e7408b5c5.png

对于多个元素,我们不需要将它们包裹在一个元素中,flexbox 可以将它们都居中。

CSS定位

通过绝对定位,我们可以轻松地通过CSS transform将其水平居中。

.plate {  position: absolute;  left: 50%;  transform: translateX(-50%);}
51810def79cdbdf1db30e45dad00f0bf.png

在已知元素宽度的情况下,可以使用负边距代替CSS transform。

.plate {  position: absolute;  left: 50%;  margin-left: -60px;}

垂直居中

内联元素

Vertical Padding

垂直居中元素最简单的方法之一是使用padding:

  padding-top: 24px;  padding-bottom: 24px;}
306f5398b61857d207cb2e700e6a7d37.png

Vertical Align

vertical-align属性可用于一个或多个元素。

在此示例中,叉子和刀子应与桌子垂直居中。

.desk {  text-align: center;}.plate,.fork,.knife {  vertical-align: middle;}

Flexbox

为了对齐盘子,叉子和刀,我们可以使用 flexbox:

.desk {  display: flex;  justify-content: center;  align-items: center;}
be13b5129de84d01e1fcb6c99ff05778.png

块元素

绝对定位

通过绝对定位元素,可以使用 CSS transform将元素垂直居中:

.plate {  position: absolute;  top: 50%;  transform: translateY(-50%);}
6f12c3e5e909a02347adf949daf46f47.png

如果知道元素高度,则可以使用负边距代替transform。

.plate {  position: absolute;  top: 50%;  margin-top: -60px;}

CSS Grid

使用CSS网格,我们可以使用align-items将项目垂直于其网格区域居中。

.desk {  display: grid;  align-items: center;}
699bab2029716ba01b4145b5e23b9c19.png

水平垂直居中

内联元素

Padding 和Text Align

.plate {  text-align: center;  padding-top: 24px;  padding-bottom: 24px;}

其他元素类型

绝对定位

.plate {  position: absolute;  left: 50%;  top: 50%;  transform: translate(-50%,-50%);}
9b2aaf38d255ace5c892ecec38e8e4e6.png

Flexbox

通过 justify-content:center 和 align-items:center 就可以将元素垂直水平居中:

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

CSS Grid

通过place-items属性就可以通过,它结合了justify-content和align-items:

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

作者:Ahmad Shadeed 译者:前端小智 来源:ishadeed 原文:https://ishadeed.com/article/learn-css-centering/

更多干货文章,可关注小智的公众号:大迁世界 (打开微信,搜索公众号),里面有很多类似的文章,有需要啥资料的也可以在评论区跟我说,我会尽量解答。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于Java文本框字体垂直居中,可以使用以下代码实现: ``` JTextField textField = new JTextField(); textField.setHorizontalAlignment(JTextField.CENTER); textField.setVerticalAlignment(JTextField.CENTER); ``` 这里使用了JTextField类的setHorizontalAlignment和setVerticalAlignment方法,分别用来设置文本框中的文本水平和垂直方向的对齐方式,将其设置为居中即可实现文本垂直居中。 另外,关于CSS文字垂直居中的8种方法,可以参考以下内容: 1. 使用line-height属性,将行高设置为与容器高度相同。 2. 使用display:table-cell属性,将文本容器的display属性设置为table-cell,然后使用vertical-align:middle属性将文字垂直居中。 3. 使用display:flex属性,将文本容器的display属性设置为flex,然后使用align-items:center属性将文字垂直居中。 4. 使用position:absolute属性,将文本容器的position属性设置为absolute,然后使用top:50%和transform:translateY(-50%)属性将文字垂直居中。 5. 使用display:inline-block和vertical-align:middle属性,将文本容器的display属性设置为inline-block,然后使用vertical-align:middle属性将文字垂直居中。 6. 使用padding和line-height属性,将文本容器的padding属性设置为相同的值,然后将line-height设置为与容器高度相同即可。 7. 使用CSS Grid布局,将文本容器的display属性设置为grid,然后使用align-items:center属性将文字垂直居中。 8. 使用CSS Grid布局,将文本容器的display属性设置为grid,然后使用place-items:center属性将文字水平和垂直居中。 希望这些内容能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值