html - 我如何使用 CSS 来选择和设置所有具有 UL 子元素的 LI 元素的样式?

标签 html css

<分区>

Possible Duplicate:
Complex CSS selector for parent of active child

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

上下文菜单是一个 UL 元素,它的列表项是 LI,子菜单是 UL。 我已经有了功能,我只需要能够以不同的方式设置子菜单项的样式,使它们明显不同。

代码和伪代码:


我有什么(工作 CSS):

.bhContextMenu,
.bhContextMenu LI UL{
background:white;
background:rgba(255,255,255,0.95);
border:0.5mm solid lightgray;
border-color:rgba(0,0,0,0.25);
border-radius:1mm;
box-shadow:0 1mm 2mm lightgray;
box-shadow:0 1mm 2mm rgba(0,0,0,0.25);
cursor:default;
display:none;
list-style:none;
margin:0;
padding:0;
position:absolute;
width:1.5in;
}
.bhContextMenu LI{
padding:1mm 4mm;
}
.bhContextMenu LI:hover{
 background: lightgray;
 background: rgba(0,0,0,0.1);
}
.bhContextMenu LI UL{
display:none;
list-style:none;
position:absolute;
left:1.5in;
margin-top:-1.5em;
}
.bhContextMenu LI:hover UL,
.bhContextMenu LI UL:hover{
display:block;
}
.bhContextMenu HR{
border: none;
border-bottom: 0.5mm solid lightgray;
}

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

.bhContextMenu LI contining UL{
font-weight:bold;/* or something */
}

最佳答案

除非你只是distinguishing between empty and non-empty elements (你不是......),你不能根据它们的内容选择元素。

你可以做的是

  1. 更改您的标记,为包含子菜单的菜单项添加一个类,并为其设置样式。

  2. 在“不可见/折叠”模式下更改子菜单的样式,以便它们实际上是可见的,但只是作为一个小箭头或您想要使用的任何其他内容来指示那里有一个子菜单。此处演示:http://jsbin.com/ojociq/1/edit

关于html - 我如何使用 CSS 来选择和设置所有具有 UL 子元素的 LI 元素的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12752518/

相关文章:

html - Twitter Bootstrap2 三段行,其中第二个跨越剩余高度

Javascript:单击使用 window.getSelection()?

html - 如何使用 Pandoc 将带有数字的 DOCX 文件转换为使用 base64 的独立 HTML 文件?

javascript - 获取(可能未应用的)CSS 属性的值

css - 在 div 中居中 img,垂直对齐 : middle

javascript - 该网站如何禁用内容选择?

php - 使用php从html表单多次插入Mysql

html - 如何去除图片的边框?

css - 破解 IE 背景大小问题的最佳方法

javascript - 建立固定的粘性侧边栏的问题