我遇到了一个问题:我需要为元素左侧的邻居放置一个样式。就我而言,我希望ul元素将元素着色为a红色。
这是我的 html 代码:
<ul>
<li><a href="javascript://">Пункт 1</a></li>
<li><a href="javascript://">Пункт 2</a></li>
<li><a href="javascript://">Пункт 3</a></li>
<li><a href="javascript://">Пункт 4</a>
<ul>
<li><a href="javascript://">Пункт 1</a></li>
<li><a href="javascript://">Пункт 2</a></li>
<li><a href="javascript://">Пункт 3</a></li>
<li><a href="javascript://">Пункт 4</a></li>
</ul>
</li>
</ul>
当然,我有第二个菜单的样式,position:absolute你可以这样做:
ul > li > ul {position:absolute}
ul > li > ul ~ a {color: red}
<ul>
<li><a href="javascript://">Пункт 1</a></li>
<li><a href="javascript://">Пункт 2</a></li>
<li><a href="javascript://">Пункт 3</a></li>
<li><ul>
<li><a href="javascript://">Пункт 1</a></li>
<li><a href="javascript://">Пункт 2</a></li>
<li><a href="javascript://">Пункт 3</a></li>
<li><a href="javascript://">Пункт 4</a></li>
</ul>
<a href="javascript://">Пункт 4</a>
</li>
</ul>
但在 html 中它看起来很奇怪。
很抱歉提出这样一个愚蠢的问题,当然,您可以为具有第二个菜单的项目添加一些类,但我想没有它
使用 CSS 不可能使用选择器选择前一个邻居。甚至在撰写本文时的CSS4 草案也没有此功能。
所以是的,只是
nth-child类等,如果合适的话。反转标记(在标记中以相反的顺序排列元素)并应用 flexbox。
我们可以通过
row-reverse/column-reverse或通过属性反转元素order。假设有元素
first和second。并且需要在firstbefore时添加选择器second。为此,您需要交换它们,然后应用选择器second + first。第一种方式(首选):然后分配给容器
flex-direction: row-reverse;或flex-direction: column-reverse;取决于标记:第二种方式:然后
ordersecond少做first:通过 JavaScript。通过 JavaScript 添加类或 CSS 属性。
由于这个问题没有说明交互性,我假设您只需要为隐藏嵌套菜单的所有链接着色。使用当前标记,这很容易做到,因为链接要么在最后,要么后面有一个 ul。
左边有这样一个选择元素的机会:
最重要的是,使用容器的
display: flex;和 属性flex-direction: row-reverse;,您可以反转元素的顺序,然后右侧元素的所有 css 高亮将突出显示左侧元素。少/萨斯:
CSS: