【发布时间】:2017-12-19 06:17:18
【问题描述】:
总的来说,我是 CSS 新手,正在尝试简单的网格布局。这就是我所拥有的。
CSS
.layoutGrid {
display: grid;
grid-gap: 10px;
grid-auto-rows: minMax(100px, auto);
}
.articleCard {
display: grid;
grid-template-rows: 100px 300px 100px;
grid-template-areas: "article-title"
"article-body"
"article-footer";
grid-auto-flow: row dense;
}
.articleHeader {
grid-area: article-title;
}
.articleBody {
grid-area: article-body;
}
.articleFooter {
display: grid;
grid-template-columns: 0.5fr 0.5fr;
grid-template-areas: "articleDomain articleKeypoints";
grid-area: article-footer;
grid-auto-flow: row dense;
}
.articleKeypoints {
grid-area: article-keypoints;
}
.articleDomain {
grid-area: article-domain;
}
@media only screen and (min-width: 600px) {
.layoutGrid {
grid-template-columns: repeat(3, 1fr);
}
}
@media only screen and (max-width: 600px) {
.layoutGrid {
grid-template-columns: repeat(1, 1fr);
}
}
HTML
<div id="mainContent" className="container layoutGrid">
<Card className={"articleCard"} style={{height:"500px", flex: "1 1 auto", padding: "1.25rem", boxSizing: "border-box"}}>
<CardHeader className="articleHeader">
<CardTitle>{props.articleDetails.Title}</CardTitle>
</CardHeader>
<CardBody className="articleBody">
<CardText>{props.articleDetails.Summary}</CardText>
</CardBody>
<div className="row articleFooter">
<div className="col-auto mr-auto">
<Button outline color="info">Read Keypoints</Button>
</div>
<div className="col-auto">
<CardSubtitle style={{verticalAlign: 'text-bottom'}}>
<small>{props.articleDetails.Domain}</small>
</CardSubtitle>
</div>
</div>
</Card>
</div>
这里没有添加 ::before 元素,但结果网格的第一个元素始终是 ::before 元素。即使是显示“读取关键点”的内部网格也有同样的问题。外部布局处于循环中,但我认为这不会影响任何事情。
谁能告诉我如何解决这个问题,以及任何关于如何改进布局整体结构的指针都将非常感激!
【问题讨论】:
-
我认为这是浏览器的默认行为,因为一切都应该有它之前的东西!
-
@SaidbakR 我明白了,我该如何解决?
-
这不是浏览器的默认行为。如果有的话,那就是 React 正在做的事情,但我也对此表示怀疑。如果您在检查元素中将屏幕截图稍微靠右一点,我们可能会看到导致选择器的原因。如果您无法绕过它,只需使用您自己的 css 将其设置为
display:none。 -
那是 bootstrap.css 它的 .container 选择器,它添加了之前和之后。如果您使用网格,则不应在此处使用
container类(其他名称)或不使用引导程序。 -
从我在这里看到的情况来看,您使用了不错的缩进,并且对于您所写的内容几乎坚持相同的命名约定(camelCase)。如果你问我,这是一个非常好的开始,剩下的只是大量的实践、学习和经验。