css - 为什么将鼠标悬停在它上面时会增加高度元素联系人?

标签 css

为什么将鼠标悬停在 Contact 元素上会增加高度?怎么解决?

这是我的代码:

ul {
            padding: 0;
        }

        #nav ul {
            display: none;
        }
        #nav li:hover > ul {
            display: block;
        }
        
        #nav > li {
            float: left;
        }
        
        #nav li {
            list-style: none;
            width: 150px;
            position: relative;
            border: 1px solid red;
            box-sizing: border-box;
            
        }
        
       
        #nav a {
            display: block;
            background-color: #000;
            color: red;
            text-decoration: none;
            padding: 10px 20px;
            text-align: center;
            box-sizing: border-box;
            border: 2px solid transparent;

        }

        #nav ul ul {
            position: absolute;
            left: 150px;
            top: 0;
        }
        #nav li:hover > a {

            color: orange;
        }
        
        #nav li:hover > a:after {
            content:'\25B6';
            color: red;
            margin-left: 5px;
            padding: 0;
        }
        #nav > li:hover > a:after {
            content: '\25BE';
            color: red;
            margin-left: 5px;
            padding: 0;
        }
 <div id="wrapper">  
    <ul id="nav">
        <li><a href="#">Home</a></li>
        <li><a href="#">Products</a>
            <ul>
                <li><a href="#">Product 1</a></li>
                <li><a href="#">Product 2</a>
                    <ul>
                        <li><a href="#">Model 1</a></li>
                        <li><a href="#">Model 2</a></li>
                        <li><a href="#">Model 3</a></li>
                    </ul>
                </li>
                <li><a href="#">Product 3</a></li>
            </ul>
        </li>
        <li><a href="#">Services</a>
            <ul>
                <li><a href="#">Service 1</a></li>
                <li><a href="#">Service 2</a></li>
            </ul>
        </li>
        <li><a href="#">Contact</a></li>
    </ul>
</div>

查看此图片:Here

最佳答案

当您将鼠标悬停在列表项上时 - 您将通过生成的内容向 anchor 标记添加一个箭头。

这就是导致高度增加的原因。

要解决此问题 - 只需在生成的内容上设置 position:absolute

ul {
            padding: 0;
        }

        #nav ul {
            display: none;
        }
        #nav li:hover > ul {
            display: block;
        }
        
        #nav > li {
            float: left;
        }
        
        #nav li {
            list-style: none;
            width: 150px;
            position: relative;
            border: 1px solid red;
            box-sizing: border-box;
            
        }
        
       
        #nav a {
            display: block;
            background-color: #000;
            color: red;
            text-decoration: none;
            padding: 10px 20px;
            text-align: center;
            box-sizing: border-box;
            border: 2px solid transparent;

        }

        #nav ul ul {
            position: absolute;
            left: 150px;
            top: 0;
        }
        #nav li:hover > a {

            color: orange;
        }
        
        #nav li:hover > a:after {
            content:'\25B6';
            color: red;
            margin-left: 5px;
            padding: 0;
            position:absolute;
        }
        #nav > li:hover > a:after {
            content: '\25BE';
            color: red;
            margin-left: 5px;
            padding: 0;
        }
<div id="wrapper">  
    <ul id="nav">
        <li><a href="#">Home</a></li>
        <li><a href="#">Products</a>
            <ul>
                <li><a href="#">Product 1</a></li>
                <li><a href="#">Product 2</a>
                    <ul>
                        <li><a href="#">Model 1</a></li>
                        <li><a href="#">Model 2</a></li>
                        <li><a href="#">Model 3</a></li>
                    </ul>
                </li>
                <li><a href="#">Product 3</a></li>
            </ul>
        </li>
        <li><a href="#">Services</a>
            <ul>
                <li><a href="#">Service 1</a></li>
                <li><a href="#">Service 2</a></li>
            </ul>
        </li>
        <li><a href="#">Contact</a></li>
    </ul>
</div>

关于css - 为什么将鼠标悬停在它上面时会增加高度元素联系人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44155102/

相关文章:

javascript - 在 javascript 中创建元素时,CSS 转换规则固有地被覆盖?

html - Bootstrap 4 & 全长 hr 列

html - 这种页面布局的名称是什么

javascript - 如何在选择列表中显示扩展选项?

html - 如何使用 CSS 仅将 HTML 选项元素的首字母大写?

javascript - 移动设备上的堆栈布局不同

html - 如何使这些图标不出现在导航栏的顶部?

html - 如何将全浏览器 HTML5 视频背景与左上角对齐?

html - R Shiny Image没有填充/使用css在页面上拉伸(stretch)

php - Drupal:为我的表单创建一个特殊的模板文件会影响我的 css,它不会加载