css - :firstclass rule used in tutorial, 并需要澄清原因

标签 css flexbox

我正在浏览一些关于树屋的教程 - 这个教程位于 flexbox navigation

我偶然发现了一些我无法确定需要的代码。该指南使用此规则来调整 Flexbox 导航中 Logo 的大小(两者嵌套在教程中):

.main-logo:first-child{
    margin-right: 50px;
    flex-grow: 1.5;
}

由于 Logo 的第一个子项将是 .main-nav 列表项,因此从技术上讲,他将瞄准导航栏中列表中的第一个列表项,对吗?但出于某种原因,这些值和属性确实会影响 Logo 本身,而不是看似规则所针对的列表项。我忽略了什么才​​导致这种情况?谢谢!

这是示例元素的 fiddle :http://jsfiddle.net/u7rb0gzd/

该规则位于 CSS 第 97 行。该元素运行良好,我只是无法弄清楚为什么这个特定规则有效。

谢谢!

最佳答案

:first-child 规则选择器的目标元素是其父元素的第一个子元素。因此,当您使用 .main-logo:first-child 时,您将选择具有 .main-logo 类的任何元素,这些元素是其父元素的第一个子元素。

假设您有以下 HTML:

<ul class="main-nav">
  <li>Item 1</li>
  <li>Item 1</li>
  <li>Item 1</li>
</ul>

您可以使用以下 CSS 将第一个列表项设置为红色:

.main-nav li:first-child {
  color: red;
}

关于css - :firstclass rule used in tutorial, 并需要澄清原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32360351/

相关文章:

html - 输入类型 ="file"的样式。如何显示文件路径?

css - Flexbox 元素不会到达容器的底部?

html - 列表样式随着内联 block 消失了——但我希望我的列表装饰器保留下来

javascript - 均匀分布箱子,但每个箱子之间留有余量

css - 如何使 Flexbox 元素大小相同

css - 如何重新排列列网格?

html - 设置 flex 元素间距

html - 垂直对齐文本,包括 href 和/或字体很棒的图标

html - H3 不显示内联 CSS,而是显示外部 CSS 文件

html - Jquery Mobile ListView 选定项 CSS 颜色