我正在尝试在网格上定位伪元素,根据规范应该是可能的。对于我设置在
如何将标题
我感激任何帮助!以下是代码:
谢谢!
<body>
上的外部布局来说,这非常有效,但对于<header>
本身作为网格时则不起作用。如何将标题
nav:after
元素定位在网格的右侧列?为什么在我的示例中无法正常工作?我感激任何帮助!以下是代码:
body {
display: grid;
grid-template-columns: 1fr 800px 1fr;
}
header {
grid-column: 1 / 4;
grid-row: 1;
display: grid;
grid-template-columns: 1fr 800px 1fr;
}
/* Works great */
header:before {
content: 'Left';
grid-column: 1 / 2;
}
/* Doesn't work, treated as a child element */
header nav:after {
content: 'Right';
grid-column: 3 / 4;
}
header nav {
grid-column: 2 / 3;
}
<body>
<header>
<nav>
<ul>
<li><a href='#'>Link</a></li>
<li><a href='#'>Link</a></li>
<li><a href='#'>Link</a></li>
</ul>
</nav>
</header>
</body>
body { display: grid; grid-template-columns: 1fr 800px 1fr; } header { grid-column: 1 / 4; grid-row: 1; } header:before { content: 'Left'; grid-column: 1 / 2; }
header
和header:before
放置在body
的网格的不同行中,就可以证明这一点。你的示例“看起来像”header
和header:before
共享相同的body
网格区域,因为header:before
是header
的“内容”的一部分。你可以使用Firefox Devtools中的Grid Inspector工具查看它。你提供的文档不是规范,而是旧版Firefox的发布说明,与网格无关。事实上,:before
是元素的子元素。 - Ilya Streltsyn