gpt4 book ai didi

css - 围绕单个元素居中多个元素

转载 作者:行者123 更新时间:2023-11-28 14:57:29 25 4
gpt4 key购买 nike

我正在尝试使多个元素在垂直和水平方向上围绕单个元素居中。

在蓝色元素在前的情况下,它需要位于页面的绝对中间,所有绿色元素都需要在它之后对齐。

如果第二个元素是蓝色,它需要在页面的绝对中间,并且需要在它上面有一个元素,在它下面有一个元素。

如果第三个元素是蓝色,它需要在页面的绝对中间,并且需要在它上面有两个元素,在它下面有一个元素。

我也想对列做同样的事情。

HTML:

 <!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="./index.css"/>
</head>

<body>
<div class='row'>
<div class='column'>
<div class='box blue'></div>
<div class='box'></div>
<div class='box'></div>
</div>
</div>
</body>
</html>

CSS:

html, body {
height: 100%;
margin: 0;
padding: 0;
}

.row {
height: 100%;
display: flex;
flex-direction: row;
justify-content: center;

}

.column {
flex-direction: column;
display: flex;
justify-content: center;

}

.box {
height: 50px;
width: 50px;
margin: 5px;
background-color: #2ecc71;
}

.blue {
background-color: #3498db;
}

JSFiddle:https://jsfiddle.net/gessha/x18nfaeo/

最佳答案

我认为您无法使用仅使用 CSS 的通用解决方案来做到这一点。我的意思是,如果您有不确定数量的子元素。使用 javascript,您可以计算位置并翻译元素以获得所需的结果。在三个元素的情况下,我已经修改了你的 fiddle 并使用伪选择器 (nth-child) 更改了 flex 元素的顺序,以允许将蓝色元素定位在中心,但是非常多为您的测试用例量身定制的解决方案。

https://jsfiddle.net/t38gorzx/

html,
body {
height: 100%;
margin: 0;
padding: 0;
}

.row {
height: 100%;
display: flex;
flex-direction: row;
justify-content: center;
}

.column {
flex-direction: column;
display: flex;
justify-content: center;
}

.box {
height: 50px;
width: 50px;
margin: 5px;
background-color: #2ecc71;
}

.box:nth-child(1):not(.blue) {
order: 1;
}

.box:nth-child(2):not(.blue) {
order: 2;
}

.box:nth-child(3):not(.blue) {
order: 3;
}

.box.blue:nth-child(1) {
order: 3;
}

.box.blue:nth-child(2) {
order: 2;
}

.box.blue:nth-child(3) {
order: 1;
}

.blue {
background-color: #3498db;
}
<div class='row'>
<div class='column'>
<div class='box blue'>1</div>
<div class='box'>2</div>
<div class='box'>3</div>
</div>
</div>

关于css - 围绕单个元素居中多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50731556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com