Html 2列CSS网格,直到某个宽度
我正在尝试为CSS网格建模 我希望是2x2Html 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
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;
}
}
一
二
三
四
另一种更简单的方法是使用引导的网格,但由于你的问题没有引导标签,我没有提到。只使用媒体查询只使用媒体查询