当前位置: 首页 > 知识库问答 >
问题:

CSS网格中的定心

上官锦
2023-03-14

我试图创建一个简单的页面与CSS网格。

我没有做到的是将超文本标记语言的文本集中到相应的网格单元格。

我尝试过将内容放在单独的divs内部和外部的left_bgright_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>

共有3个答案

宋晋
2023-03-14

甚至不要尝试使用flex和css网格。只需在content元素上添加以下内容:

place-self: center;

它将在这里做定心工作。

如果要将网格单元内的div中的某些内容居中,则需要定义嵌套网格以使其工作。演示中显示了这两个示例。

https://css-tricks.com/snippets/css/complete-guide-grid/

吴升
2023-03-14

CSS“放置项目速记”属性分别设置“对齐项目”和“对齐项目”属性。如果未设置第二个值,则第一个值也将用于该值。

.parent {
  display: grid;
  place-items: center;
}
钮善
2023-03-14

这个答案有两个主要部分:

  1. 了解CSS网格中对齐的工作原理。
  2. CSS网格中居中的六种方法。

如果您只对解决方案感兴趣,请跳过第一部分。

要完全了解网格容器中的居中工作原理,首先了解网格布局的结构和范围很重要。

网格容器的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来实现吗? 明确地说,我希望网格中所有行的所有元素的高度相等,而不仅仅是每行。基本上,最高的“单元格”应规定所有单元格的高度,而不仅仅是其行中的单元格。 问题答案: 简短答案 如果目标是创建具有相等高度的行的网格,而网格中最高的单元格将设置所有行的高度,那么这是一种快速简单的