写一个<ul>在<li>里的<a>里面,为<a>子元素,调试却显示<ul>在<a>的下面,成了<a>的兄弟元素是为什么?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Microsoft-官方网站</title>
    <link rel="stylesheet" type="text/css" href="font-awesome-4.6.3/font-awesome-4.6.3/css/font-awesome.css">
    <!-- <link rel="stylesheet" type="text/css" href="style.css"> -->
    <style>
        *{
            padding: 0;
            margin: 0;
            text-decoration: none;
            list-style: none;
        }
        body{
            font-size: 15px;
            font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
            min-width: 320px;
            color: #000;
            background-color: #fff;
        }
        a{
            display: block;
            color: #000;
        }

        /*header*/
        header{
            width: 100%;
            border-bottom: 1px solid #e6e6e6;
        }
        header .container{
            width: 90%;
            height: 48px;
            margin: 0 auto;
            display: flex;
            flex-direction: row;
            justify-content: space-between;
            align-items: center;
        }
        /*header左边导航nav部分*/
        header .nav{
            display: flex;
            flex-direction: row;
            align-items: center;
        }
        /*导航Logo大小*/
        header .logo img{
            max-height: 23px;
        }
        /*导航列表部分*/
        header .nav>ul{
            margin-left: 18px;
            display: flex;
            flex-direction: row;
            align-items: center;
        }
        header .nav-content{
            padding: 0 1.5em;
            line-height: 48px;
            position: relative;
        }
        header .nav-content:hover{
            background-color: #f2f2f2;
        }
        /*二级导航*/
        header .nav2{
            position: absolute;
            top: 0;
            left: 0;
        }
    </style>
</head>
<body>
    <header>
        <div class="container">
            <nav class="nav">
                <a class="logo" href="#">
                    <img src="imgs/microsoft.png">
                </a>
                <ul>
                    <li>
                        <a class="nav-content" href="#">
                            商店
                            <i class="fa fa-angle-down"></i>
                            <ul class="nav2">
                                <li>
                                    <a href="#">微软官方商城</a>
                                </li>
                                <li>
                                    <a href="#">寻找店铺</a>
                                </li>
                            </ul>
                        </a>
                    </li>
                    <li>
                        <a class="nav-content" href="#">
                            产品
                            <i class="fa fa-angle-down"></i>
                        </a>
                    </li>
                    <li>
                        <a class="nav-content" href="#">
                            支持
                        </a>
                    </li>
                </ul>
            </nav>
            <!-- <div class="header-right">
                <div class="search">
                    <input type="input" name="search" placeholder="在Microsoft.com中搜索">
                    <button class="fa fa-search" type="button"></button>    
                </div>
                <a href="#"><i class="fa fa-shopping-cart"></i></a>
                <a href="#">登录</a>
            </div> -->
        </div>
    </header>
</body>
</html>
阅读 3.7k
3 个回答

logo的a标签和下面的ul是兄弟节点。你选择器应该用class或者id标识,而不是选择所有的a。

因为在 a 中嵌套的 ul 下面还嵌套了 a,因此会造成点击的href冲突,浏览器认为这是不符合HTML语义的,将之当成错误的标签而进行了自动更正。
ul 下面的 li 中的 a 去掉就可以了。

a里面嵌套一个a,你想下点击的时候应该跳哪去?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题