我试图创建一个简单的页面与CSS网格。
我没有做到的是将超文本标记语言的文本集中到相应的网格单元格。
我尝试过将内容放在单独的div
s内部和外部的left_bg
和right_bg
选择器中,并使用一些CSS属性,但没有效果。
我该怎么做?
html,
body {
margin: 0;
padding: 0;
}
.container {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 100vh;
grid-gap: 0px 0px;
}
.left_bg {
display: subgrid;
background-color: #3498db;
grid-column: 1 / 1;
grid-row: 1 / 1;
z-index: 0;
}
.right_bg {
display: subgrid;
background-color: #ecf0f1;
grid-column: 2 / 2;
grid_row: 1 / 1;
z-index: 0;
}
.left_text {
grid-column: 1 / 1;
grid-row: 1 / 1;
position: relative;
z-index: 1;
justify-self: center;
font-family: Raleway;
font-size: large;
}
.right_text {
grid-column: 2 / 2;
grid_row: 1 / 1;
position: relative;
z-index: 1;
justify-self: center;
font-family: Raleway;
font-size: large;
}
<div class="container">
<!--everything on the page-->
<div class="left_bg">
<!--left background color of the page-->
</div>
</div>
<div class="right_bg">
<!--right background color of the page-->
</div>
<div class="left_text">
<!--left side text content-->
<p>Review my stuff</p>
<div class="right_text">
<!--right side text content-->
<p>Hire me!</p>
</div>
</div>
甚至不要尝试使用flex和css网格。只需在content元素上添加以下内容:
place-self: center;
它将在这里做定心工作。
如果要将网格单元内的div
中的某些内容居中,则需要定义嵌套网格以使其工作。演示中显示了这两个示例。
https://css-tricks.com/snippets/css/complete-guide-grid/
CSS“放置项目速记”属性分别设置“对齐项目”和“对齐项目”属性。如果未设置第二个值,则第一个值也将用于该值。
.parent {
display: grid;
place-items: center;
}
这个答案有两个主要部分:
如果您只对解决方案感兴趣,请跳过第一部分。
要完全了解网格容器中的居中工作原理,首先了解网格布局的结构和范围很重要。
网格容器的HTML结构有三个级别:
就应用栅格特性而言,这些级别中的每一个都独立于其他级别。
网格容器的范围仅限于父子关系。
这意味着网格容器始终是父容器,网格项始终是子容器。网格属性仅在此关系中起作用。
子级之外的网格容器的子体不属于网格布局的一部分,并且不接受网格属性。(至少在实现子网格功能之前,这将允许网格项的后代尊重主容器的行。)
下面是上面描述的结构和范围概念的一个例子。
想象一下一个类似井字游戏的网格。
article {
display: inline-grid;
grid-template-rows: 100px 100px 100px;
grid-template-columns: 100px 100px 100px;
grid-gap: 3px;
}
您希望X和O在每个单元格中居中。
因此,在容器级别应用居中:
article {
display: inline-grid;
grid-template-rows: 100px 100px 100px;
grid-template-columns: 100px 100px 100px;
grid-gap: 3px;
justify-items: center;
}
但由于网格布局的结构和范围,容器上的“justify items
”以网格项目为中心,而不是以内容为中心(至少不是直接)。
article {
display: inline-grid;
grid-template-rows: 100px 100px 100px;
grid-template-columns: 100px 100px 100px;
grid-gap: 3px;
justify-items: center;
}
section {
border: 2px solid black;
font-size: 3em;
}
<article>
<section>X</section>
<section>O</section>
<section>X</section>
<section>O</section>
<section>X</section>
<section>O</section>
<section>X</section>
<section>O</section>
<section>X</section>
</article>
每一个网格项目都有一个矩形的网格区域,这个网格区域定义了该网格项的包含块,对齐属性(justify-self 和 align-self)确定其实际位置。 网格项占用的单元格也会影响网格的行和列的大小,参看网格尺寸(Grid Sizing)。 网格区域在网格内的位置通过1个网格位置和1个网格跨度属性来定义: grid position 表示网格项在网格中的位置。该属性可以是确定的(被显式定义)或自动
问题内容: 我正在尝试使用CSS Grid创建一个简单的页面。 我无法做的是将HTML文本集中到相应的网格单元格。 我尝试将内容放置在和选择器内部和外部的单独s中,并使用某些CSS属性无效。 我该怎么做呢? 问题答案: 这个答案有两个主要部分: 了解对齐方式在CSS Grid中的工作方式。 在CSS Grid中居中的六种方法。 如果您仅对解决方案感兴趣,请跳过第一部分。 网格布局的结构和范围 要完
问题内容: 我想使我的网站使用CSS网格系统,但似乎无法正常工作。这是我的代码: 问题答案: 使用该属性时,字符串值必须具有相同的列数。 您可以使用句点或句点的不间断行来表示一个空单元格(规范参考)。 从网格规范: [7.3。 命名区域:属性] 所有字符串的列数必须相同,否则声明无效。 如果命名的网格区域跨越多个网格单元,但是这些单元不形成单个填充矩形,则声明无效。 在此模块的将来版本中,可能会允
我正在使用顺风CSS,并试图建立一个网格,使某些单元格内容跨越多个单元格,而其他项目留在单个单元格。在下面的代码中,我试图展示我正在尝试完成的事情。我知道我的col-span-2班什么也没做,但我把它放在那里是为了表明我希望我能做什么。我想让所有的单元格都是相同的宽度(我只想让一些单元格内容跨越分隔线)。我需要某种覆盖逻辑吗? 感谢任何帮助。 谢谢!
问题内容: 是否可以使用CSS选择特定的网格列或行? 例如,假设我有一个3行2列的CSS网格布局:。如何从第二列中选择所有元素?例如:(仅是我的主意,无效的代码)。 我已经尝试过在元素上使用选择器,但是当网格布局引擎自动放置项目时,这不允许我指定行或列。 问题答案: CSS无法实现。 CSS针对HTML元素,属性和属性值。 网格列和行没有这些“挂钩”。 您必须直接定位网格项目。 你写了: 例如,假
问题内容: 我认为使用Flexbox无法实现这一点,因为每一行只能是适合其元素的最小高度,但是可以使用更新的CSS Grid来实现吗? 明确地说,我希望网格中所有行的所有元素的高度相等,而不仅仅是每行。基本上,最高的“单元格”应规定所有单元格的高度,而不仅仅是其行中的单元格。 问题答案: 简短答案 如果目标是创建具有相等高度的行的网格,而网格中最高的单元格将设置所有行的高度,那么这是一种快速简单的