【问题标题】:Add css stylings to list item of only it has child将 css 样式添加到仅包含子项的列表项
【发布时间】:2015-12-25 06:35:04
【问题描述】:

我有一个如下列表

 <ul>
  <li>
  <a></a>
   <ul>
    <li>
    <a></a>
    </li>
   </ul>
  </li>
</ul>

只有当 li 内部有一个 ul 标记且仅使用 css 时,我才需要使用 :after 添加一个箭头。我已经应用了以下 css 样式,但问题没有解决。

ul li ul:parent:after {
   border: 5px solid transparent;
   border-left: 8px solid #522;
   width: 0;
   height: 0;
   content: "";
   display: inline-block;
   transform: rotate(90deg);
   margin-right: 5px;
}

有什么方法可以实现吗?感谢您的帮助!

【问题讨论】:

标签: css parent styling


【解决方案1】:

:parent 选择器在 CSS 中尚不存在。您可以使用 jQuery 中的 :has() 选择器执行您的要求。

但是,我认为 :after 选择器也不是您想要的,因为它不会出现在 li 文本之后,而是在整个元素之后,

<ul>
 <li>
  <a>Outer Item</a>
   <ul>
    <li>
     <a>Inner Item</a>
    </li>
   </ul>
 </li> <-- :after would place arrow here
</ul>

与此类似:

o Outer Item
    o Inner Item
<--

您可以使用 Javascript 或 jQuery 在初始文本后添加箭头,但我认为仅使用 CSS 无法做到这一点。

你可以用这个来接近,但是箭头出现在父项和子列表之间的一条线上:

li > a:first-child + ul:before {
   border: 5px solid transparent;
   border-left: 8px solid #522;
   width: 0;
   height: 0;
   content: "";
   display: inline-block;
   transform: rotate(90deg);
   margin-right: 5px;
}

http://jsfiddle.net/29kc1p1x/

【讨论】:

    猜你喜欢
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 2013-05-08
    • 2012-11-09
    • 1970-01-01
    • 2020-11-13
    相关资源
    最近更新 更多