html - CSS 在 CSS 和 HTML 中创建下拉列表时试图理解替代语法

标签 html css syntax cascadingdropdown

我看到两种引用无序列表 (<ul>)、列表项 (<li>) 和 anchor (<a>) 的不同方式。

我想在下拉列表中设置这些元素的属性,至少嵌套两层 <ul> .

我的问题具体是关于引用不同级别的方式 <ul> , <li><a>里面有。

我把导航栏命名为id="navBar" .

我在 youtube 上看到:Building a drop down navigation bar

使用的语法是:

ul#navBar .sub1 li
ul#navBar .sub1 li a

定义类“.sub1”的位置,是嵌套的第一层<ul> , ".sub2"是嵌套的第二层 <ul> .

引用这些级别,使用的代码是。

ul#navBar .sub2 a {
                  background-color: blue;}

ul#navBar li:hover > a {
            background-color: #CFC;
            }

在我看来,定义 .sub1.sub2 是多余的,我一直在使用以下格式:

#navBar ul li{ background-color: blue;}

#navBar ul li:hover ul{ background-color: red;}

真正的问题:

什么是正确的语法,使用我的(上面的代码)格式化风格。引用第二层嵌套 <ul>并影响 <li><a>在那里?

我假设它是沿着这条线的:

 #navBar ul li ul li: hover ul{ background-color: red;}

但我错了:(

最佳答案

首先请注意,:hover 之前不应该有空格。

所以您概述的基本 HTML 结构是:

<ul id="navbar">
    <li>
        <ul class="sub1">
            <li>
                <ul class="sub2">
                    <li><a>Text</a><li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

要引用 .sub2 中的 lia,您可以这样写:

#navbar ul ul li { style to apply to li }
#navbar ul ul li a { style to apply to a }
#navbar ul ul li:hover { style to apply to li on hover }
#navbar ul ul li:hover a { style to apply to a on li hover }

教程分配类的原因是因为使用通用嵌套元素是使用 CSS 选择器的一种非常低效的方式;使用类更快。有关详细信息,请参阅 this article from CSS-Tricks .

关于html - CSS 在 CSS 和 HTML 中创建下拉列表时试图理解替代语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15640612/

相关文章:

html - 网格布局无法对齐

JavaScript 省略号 (...) 和冒号 (:)

sql - WHERE x IN (5) 与 WHERE x = 5 ... 为什么使用 IN?

recursion - VB6 函数中的递归和返回变量

html - 将 &lt;style&gt; CSS 脚本制作成 Greasemonkey 脚本

javascript - 有一个动态宽度的 div 始终在另一个 div 中居中

html - 使 flex child 等于网格列内父级的高度

html - 向矩形 div 添加形状

html - 为页面的主容器提供最大宽度

php - 无法在 HTML5 中获取 DateTimepicker