Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何使用CSS选择所有具有UL子元素的LI元素并设置其样式?_Html_Css - Fatal编程技术网

Html 如何使用CSS选择所有具有UL子元素的LI元素并设置其样式?

Html 如何使用CSS选择所有具有UL子元素的LI元素并设置其样式?,html,css,Html,Css,可能重复: 我正在制作一个CSS上下文菜单,我希望所有具有子菜单的列表项都采用不同的样式,以便在视觉上向用户表示它们具有子菜单 上下文菜单是UL元素,其列表项是LIs,子菜单是ULs我已经关闭了功能,我只需要能够以不同的方式设置子菜单项的样式,使它们明显不同 代码和伪代码: 我拥有的(工作CSS): 我还想要什么(伪代码): 除非您只是(而不是…),否则无法根据元素的内容选择元素 你能做的就是 更改标记以为包含子菜单的菜单项添加类,并设置其样式 在“不可见/折叠”模式下更改子菜单的样式,使其

可能重复:

我正在制作一个CSS上下文菜单,我希望所有具有子菜单的列表项都采用不同的样式,以便在视觉上向用户表示它们具有子菜单

上下文菜单是UL元素,其列表项是LIs,子菜单是ULs我已经关闭了功能,我只需要能够以不同的方式设置子菜单项的样式,使它们明显不同

代码和伪代码:
我拥有的(工作CSS):

我还想要什么(伪代码):

除非您只是(而不是…),否则无法根据元素的内容选择元素

你能做的就是

  • 更改标记以为包含子菜单的菜单项添加类,并设置其样式

  • 在“不可见/折叠”模式下更改子菜单的样式,使其实际可见,但仅作为小箭头或其他任何您希望用于指示存在子菜单的方式。此处演示:


  • 如前所述,CSS选择器无法解决您的请求(请参阅)

    当然,您可以将类添加到列表项中,但解决所需问题的最简单方法是一行jQuery脚本:

    $('li').has('ul').addClass('has-ul');​
    

    在纯CSS中不可能。在某个时候,有人谈论过如何实施这一点,但不这样做的原因是因为这样做会非常缓慢。完成类似任务的最简单方法是向包含
    ul
    的元素添加一个类。您是否使用任何后端代码来呈现此HTML?HTML非常简单(这就是我想要的;一个人可以轻松地用最少的麻烦/知识创建自己的上下文菜单)。这是一个带有子菜单的基本菜单:
    • 菜单项
    • 子菜单
      • 子菜单项
    +1-这就是我要做的,jQuery对于标准CSS难以完成的情况非常有用。特别是如果你正在寻找与旧版本IE的向后兼容性,那么情况也是如此。
    .bhContextMenu LI contining UL{
    font-weight:bold;/* or something */
    }
    
    $('li').has('ul').addClass('has-ul');​