Html 2列CSS网格,直到某个宽度

Html 2列CSS网格,直到某个宽度,html,css,responsive-design,css-grid,Html,Css,Responsive Design,Css Grid,我正在尝试为CSS网格建模 我希望是2x2 xx yy ww zz 虽然屏幕的宽度至少为N,但我希望每个单元格占据50%的宽度,中间留有间隙 xxxx yyyy wwww zzzz 当屏幕达到某个最小宽度时,我希望网格堆叠 x y w z 如果我从这个网格开始 .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(50%, 1fr)); grid-column-gap: 32px; g

我正在尝试为CSS网格建模

我希望是2x2

xx yy
ww zz
虽然屏幕的宽度至少为N,但我希望每个单元格占据50%的宽度,中间留有间隙

xxxx yyyy
wwww zzzz
当屏幕达到某个最小宽度时,我希望网格堆叠

x 
y
w
z
如果我从这个网格开始

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(50%, 1fr));
  grid-column-gap: 32px;
  grid-row-gap: 32px;
}
.grid-item {
  width: 100%;
  height: 100%;
}


<div class="grid">
  <div class="grid-item"/>
  <div class="grid-item"/>
  <div class="grid-item"/>
  <div class="grid-item"/>
</div>
然后网格将为2x2,直到屏幕的最小宽度,在那里它们将垂直堆叠。这是我想要的行为,除了网格垂直堆叠似乎有点意外之外,因为它只发生在
网格列间隙
的情况下。实际上,我并没有为网格单元定义最小宽度,它只是指导致列间距占空间2%以上的任何宽度


如果我想明确定义网格折叠的像素限制,该怎么办?如果我希望这种行为没有列间距,该怎么办?

也许解决这个问题的好方法是使用CSS的媒体查询和百分比。您可以使用如下代码:

<!DOCTYPE html>
<html>
    <head>
        <title>Page Title</title>
        <style>
            .grid{
                width:100%;
            }
            @media only screen and (min-width: 600px) {
                .grid-item {
                    display:inline-block;
                    width:46%;
                    padding: 1%;
                }
            }

            @media only screen and (max-width: 599px) {
                .grid-item {
                    width:100%;
                    display:block;
                    padding: 32px;
                 }
            }
        </style>
 </head>
<body>

    <div class="grid">
        <div class="grid-item">one</div>

        <div class="grid-item">two</div>

        <div class="grid-item">three</div>

        <div class="grid-item">four</div>
    </div>

</body>

页面标题
.电网{
宽度:100%;
}
@仅介质屏幕和(最小宽度:600px){
.表格项目{
显示:内联块;
宽度:46%;
填充:1%;
}
}
@仅介质屏幕和(最大宽度:599px){
.表格项目{
宽度:100%;
显示:块;
填充:32px;
}
}
一
二
三
四

另一种更简单的方法是使用引导的网格,但由于你的问题没有引导标签,我没有提到它。

也许解决这个问题的好方法是使用CSS的媒体查询和百分比。您可以使用如下代码:

<!DOCTYPE html>
<html>
    <head>
        <title>Page Title</title>
        <style>
            .grid{
                width:100%;
            }
            @media only screen and (min-width: 600px) {
                .grid-item {
                    display:inline-block;
                    width:46%;
                    padding: 1%;
                }
            }

            @media only screen and (max-width: 599px) {
                .grid-item {
                    width:100%;
                    display:block;
                    padding: 32px;
                 }
            }
        </style>
 </head>
<body>

    <div class="grid">
        <div class="grid-item">one</div>

        <div class="grid-item">two</div>

        <div class="grid-item">three</div>

        <div class="grid-item">four</div>
    </div>

</body>

页面标题
.电网{
宽度:100%;
}
@仅介质屏幕和(最小宽度:600px){
.表格项目{
显示:内联块;
宽度:46%;
填充:1%;
}
}
@仅介质屏幕和(最大宽度:599px){
.表格项目{
宽度:100%;
显示:块;
填充:32px;
}
}
一
二
三
四

另一种更简单的方法是使用引导的网格,但由于你的问题没有引导标签,我没有提到。

只使用媒体查询只使用媒体查询