在HTML中居中一个flexbox元素并左/右对齐其他flexbox元素


假设我们有P、Q、R、S、T在网页中央对齐 -

                                P Q R S T 

我们希望保持上述状态不变,只是最右边的T移到右边,像这样 -

                                 P Q R S                                 T 

现在让我们看一些例子来实现上面看到的。

使用自动边距居中一个flexbox元素并左/右对齐其他flexbox元素

示例

通过结合自动边距和一个新的不可见的flex项目,可以在网页上实现上述布局 -

<html> <title>Example</title> <head> <style> li:first-child { margin-right: auto; visibility: hidden; } li:last-child { margin-left: auto; background: orange; } ul { padding: 0; margin: 0; display: flex; flex-direction: row; justify-content: center; align-items: center; } li { display: flex; margin: 3px; padding: 10px; background: red; } p { text-align: center; margin-top: 0; } </style> <head> <body> <ul> <li>T</li> <li>P</li> <li>Q</li> <li>R</li> <li>S</li> <li>T</li> </ul> </body> <html>

使用伪元素居中一个flexbox元素并左/右对齐其他flexbox元素

在这个例子中,我们将创建一个与T宽度相同的伪元素。使用::before将其放置在容器的开头。

示例

现在让我们看一个例子 -

<html> <title>Example</title> <head> <style> ul::before { content: "T"; margin: 1px auto 1px 1px; visibility: hidden; padding: 5px; background: orange; } li:last-child { margin-left: auto; background: orange; } ul { padding: 0; margin: 0; display: flex; flex-direction: row; justify-content: center; align-items: center; } li { display: flex; margin: 3px; padding: 10px; background: red; } </style> <head> <body> <ul> <li>P</li> <li>Q</li> <li>R</li> <li>S</li> <li>T</li> </ul> </body> <html>

使用网格布局居中一个flexbox元素并左/右对齐其他flexbox元素

在这个例子中,创建一个包含多个列的网格。然后将你的项目放置在中间和末尾的列中。

示例

现在让我们看一个例子 -

<html> <title>Example</title> <head> <style> ul { display: grid; grid-template-columns: 1fr repeat(4, auto) 1fr; grid-column-gap: 5px; justify-items: center; } li:nth-child(1) { grid-column-start: 2; } li:nth-child(5) { margin-left: auto; } ul { padding: 0; margin: 0; list-style: none; } li { padding: 10px; background: red; } p { text-align: center; } </style> <head> <body> <ul> <li>P</li> <li>Q</li> <li>R</li> <li>S</li> <li>T</li> </ul> </body> <html>

更新于:2022年10月18日

7K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告