gpt4 book ai didi

html - 力求垂直对齐元素框的边框?

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:07 25 4
gpt4 key购买 nike

是否可以让 flex children 垂直对齐?

示例

在这种情况下,左侧的“softwaredevelopment”框应该增加一点,以便上面的“react”与下面的“react”对齐。 “网络”、“软件”等也是如此……?显然,下图中方框的轻微错位有点烦人...... enter image description here

是否存在可以实现我所描述的功能的 flexbox 属性?

解决方案应该是动态的

最佳答案

Flexbox 非常适合水平布局控制,但不是为处理垂直布局而设计的。考虑使用 CSS GridJavaScript 来实现这样的布局。一旦我们决定了列数(在本例中为 7),我们就可以添加一些 JavaScript,根据文本长度决定列的 span。这是一个简单的原型(prototype),但可以进一步开发以处理边缘情况规则。

let listItems = document.querySelectorAll(".grid li");

listItems.forEach(item => {
const len = item.innerText.length;
if (len > 15 && len < 20) {
item.classList.add('span-2');
} else if (len >= 20) {
item.classList.add('span-3');
} // etc.
});
.grid {
display: grid;
grid-template-columns: repeat(7, 1fr);
grid-auto-rows: 1fr;
margin: 0;
padding: 0;
list-style: none;
}

.grid li {
text-align: center;
border: .5px solid;
display: flex;
align-items: center;
justify-content: center;
font-size: 100%;
padding: .35em;
}

.span-2 {
grid-column: span 2;
}

.full-width {
grid-column: 1 / -1;
}
<ul class="grid">
<li class="full-width">Show all</li>
<li>Python</li>
<li>NodeJS</li>
<li>React</li>
<li>Web</li>
<li>Software</li>
<li>React</li>
<li>Webdev</li>
<li>Sofware Development</li>
<li>React</li>
<li>Crazy Developers</li>
<li>Web</li>
<li>React</li>
<li class="full-width">Sofware Development</li>
</ul>

jsFiddle

关于html - 力求垂直对齐元素框的边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55230399/

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