Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 是否可以通过网格模板列定义隐藏内容为空的列?_Css_Css Grid - Fatal编程技术网

Css 是否可以通过网格模板列定义隐藏内容为空的列?

Css 是否可以通过网格模板列定义隐藏内容为空的列?,css,css-grid,Css,Css Grid,我有一个带有两列的CSS网格。我可能会也可能不会在第一列中呈现内容。换句话说,div列总是存在的,只是有时候它可能没有内容。当第一列中没有内容时,我不希望该列占用空间,当有内容时,我希望它的最大宽度为100px。仅通过CSS网格定义就可以做到这一点吗 #容器{ 显示:网格; 网格模板列:最小最大值(自动,100px)自动; 网格间距:5px; 高度:200px; 宽度:100%; 背景色:#8cffa0; 填充:10px; } #容器>分区{ 背景色:#C0; } Lorem ipsum d

我有一个带有两列的CSS网格。我可能会也可能不会在第一列中呈现内容。换句话说,div列总是存在的,只是有时候它可能没有内容。当第一列中没有内容时,我不希望该列占用空间,当有内容时,我希望它的最大宽度为100px。仅通过CSS网格定义就可以做到这一点吗

#容器{
显示:网格;
网格模板列:最小最大值(自动,100px)自动;
网格间距:5px;
高度:200px;
宽度:100%;
背景色:#8cffa0;
填充:10px;
}
#容器>分区{
背景色:#C0;
}

Lorem ipsum dolor sit amet,奉献精英。
在这里,我要说的是,这是一个巨大的建筑设计师,必须要有足够的理由来防止腐败!尤斯托,普罗维登特。

使用
网格模板列:调整内容(100px)
(请参阅)使用绝对长度将列宽调整到其内容(无最小值)的最大宽度(在这种情况下为100px)

#容器{
显示:网格;
网格模板列:自动调整内容(100px);
网格间距:5px;
高度:200px;
宽度:100%;
背景色:#8cffa0;
填充:10px;
}
#容器>分区{
背景色:#C0;
}

洛勒姆
在这里,我要说的是,这是一个巨大的建筑设计师,必须要有足够的理由来防止腐败!尤斯托,普罗维登特。

您面临的问题不是
网格模板列
属性。简单地使用该属性,就可以折叠空列,这是有道理的

问题是您有一个最大宽度限制

根据此要求,
grid template columns
grid auto columns
无法单独完成此任务,因为在
minmax()
规则中,参数默认为
max

这意味着在布局中,定义如下:

  grid-template-columns: minmax(auto, 100px) auto
…空列的宽度始终为100px

如果没有最大宽度限制,可以使用隐式列(
网格自动列
)而不是显式列(
网格模板列
)隐藏空列

如果您可以在
grid-*-columns
properties的范围之外工作,这里有一个可能适合您的解决方案:

.container{
显示:网格;
网格模板列:自动1fr;
网格间距:5px;
高度:100px;
背景色:#8cffa0;
填充:10px;
}
.container>div:第一个子项:非(:空){
最大宽度:100px;
}
.container>div{
背景色:#C0;
}

Lorem ipsum dolor sit amet,奉献精英。
在这里,我要说的是,这是一个巨大的建筑设计师,必须要有足够的理由来防止腐败!尤斯托,普罗维登特。

在这里,我要说的是,这是一个巨大的建筑设计师,必须要有足够的理由来防止腐败!尤斯托,普罗维登特。