我试图把两个或两个以上的按钮在一列中,我尝试了内联,内联块,块,但没有工作。我需要一个按钮在顶部和下面的其他人,而不是在一行,而不是在第一行。
<!DOCTYPE html>
<html>
<head>
<style>
.item1 {
grid-area: header;
}
.item2 {
grid-area: menu;
}
.item3 {
grid-area: main;
}
.item4 {
grid-area: right;
}
.item5 {
grid-area: footer;
}
.grid-container {
display: grid;
grid-template-areas: 'header header header header header header' 'menu main main main right right' 'menu footer footer footer footer footer';
gap: 10px;
background-color: #2196F3;
padding: 10px;
}
.grid-container>div {
background-color: rgba(255, 255, 255, 0.8);
text-align: center;
padding: 20px 0;
font-size: 30px;
}
.item2 {
display: block;
}
</style>
</head>
<body>
<h1>Grid Layout</h1>
<div class="grid-container">
<div class="item1">Title</div>
<div class="item2">
<button>Hello</button>
<button>Bye-Bye</button>
</div>
<div class="item3">Main</div>
<div class="item4">Right</div>
<div class="item5">Footer</div>
</div>
</body>
</html>
字符串
我尝试如何做到这一点,我失败了。也许你可以帮助我这一点。Stackexchange告诉我,我的大部分问题是代码,我不知道如何修复它。
2条答案
按热度按时间sbtkgmzw1#
根据上面提供的代码,要获得垂直放置按钮所需的结果,CSS规则“display:block”应该应用于它们,如下所示:
字符串
9nvpjoqh2#
您可以使用CSS将两个或多个按钮放在一列中以使用flex属性。flex属性是
flex-grow
、flex-shrink
和flex-basis
的简写,它们控制项目如何在flex容器中增长、收缩和占用空间。通过将flex属性设置为1
0
auto
,您可以让按钮占用列中的可用空间,并在需要时换行到下一行。要使用flex属性,您需要通过将父元素的display属性设置为flex来使其成为flex容器。您还需要将其
flex-direction
属性设置为column
以使项目垂直堆叠。您还可以使用align-items
属性来水平center
项目。字符串
PS::
flex: 5 5 auto
属性表示:flex-grow
的值是5
,这意味着当flex容器中有额外的空间时,flex项的增长速度将比其他具有较低flex-grow
值的flex项快五倍。flex-shrink
值为5,这意味着当flex容器中没有足够的空间时,flex项的收缩速度将比其他flex-shrink
值较低的flex项快五倍。flex-basis
的值为auto,这意味着Flex项将使用其宽度(在水平书写模式下)或高度(在垂直书写模式下)作为首选大小,除非它具有内容值。下面是一个示例代码片段,说明了
flex: 5 5 auto
的效果:型
正如你所看到的,第一个flex项比第二个flex项占用更多的空间,因为它有一个更高的flex-grow值。如果你调整浏览器窗口的大小,你也会注意到第一个flex项比第二个flex项收缩得更多,因为它有一个更高的flex-shrink值。