繁体   English   中英

CSS3定位问题

[英]CSS3 targeting issue

这里的第一个问题,所以请对我轻松:)。

我两周前开始研究css3,现在我正尝试构建一个纯css3下拉菜单系统。 我有这样的菜单

<body> 
        <div id="column">
            <div id="header">
                <heading1>Header.</heading1>
            </div>

            <div id="menu">
                <a href="Home.html"><menu-element class="chosen"> Home page</menu-element></a>
                <a href="Project.html"><menu-element>Project</menu-element></a>
                <a href="Gallery.html">
                    <menu-element> Gallery
                        <ul>
                            <li>1</li>
                            <li>2</li>
                        </ul>
                    </menu-element>
                </a>

            </div>
....
</body>

我正在通过集成我在教程中学习过的CSS代码来在CSS结构上工作。 我遇到问题的步骤是第一步:不在鼠标悬停时隐藏子菜单项。

我尝试过

menu-element ul
{
    display: none;
}

仅隐藏嵌套在菜单元素中的 ul元素,但是它不起作用.. ul及其li子项仍然存在。 谁能告诉我我哪里错了来帮助我?

唯一的问题是您具有无效的html标记( <menu-element><heading1> )。

代替<menu-element>使用<nav> ,代替<heading1>使用<h1>

我认为您正在IE和某些旧的兼容模式下进行测试。

在Chrome,Firefox和IE 11中,您的代码有效

小提琴

代码片段让SO很高兴:

menu-element ul
{
    display: none;
}

Chrome开发人员工具

的确,您的元素不是有效的HTML类型,(当然,您应该使用有效的HTML类型!),但是与HTML5兼容的浏览器对此相当宽松。

创建导航菜单的最佳实践是对整个菜单使用无序列表。 这样,如果不加载样式(无论出于何种原因),则仍可以正确读取。 正如其他提到的那样,它们不是有效的标签。

我建议使用以下模型:

<nav>
    <ul>
        <li><a href="Home.html">Home</a></li>
        <li><a href="Project.html">Project</a></li>
        <li>
            <a href="Gallery.html">Gallery</a>
            <ul class="gallery">
                <li>1</li>
                <li>2</li>
            </ul>
        </li>
     </ul>
</nav>

对于CSS,您可以使用

ul.gallery{
    display: none;
}

要么

nav ul li ul{
    display: none;
}

在创建纯CSS下拉菜单时,我使用第二个选项,因为在创建更复杂的菜单时更容易遵循。 它还允许您隐藏所有子菜单,而不是仅隐藏具有画廊类的子菜单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM