div 包含单行文本作为 li 元素 div 宽度由最宽的项目宽度决定。如果鼠标悬停在某个项目上,其字体样式将变为粗体。
如果将鼠标悬停在宽项目上,粗体字体会导致宽度增加,这会导致 div 宽度也增加。如果鼠标在列表中移动,这看起来很丑陋。如何在不使用硬编码宽度的情况下禁用这种增加?
我尝试了溢出:隐藏样式,如下面的代码所示,但 div 宽度仍然增加。
html:
<div id="LeftPane" class="site-leftpane">
<ul class="tree">
<li><a href="/details?product=1">Product1</a></li>
<li><a href="/details?product=2">Product2</a></li>
...
CSS:
.site-leftpane {
background-color: #FBFBFB;
clear: left;
color: Black;
float: left;
margin: 0;
overflow: hidden;
padding-top: 1em;
}
.tree {
line-height: 1.6em;
list-style: none outside none;
margin: 0;
padding: 0;
}
.tree li a {
color: #333333;
cursor: default;
display: block;
font-family: "arial","sans-serif";
margin: 0;
}
.tree li:first-child {
font-weight: bold;
}
.tree li a:hover {
color: #E47911 !important;
font-weight: bold;
}
更新
我根据建议的答案改变了风格
.tree li a {
color: #333333;
cursor: default;
display: block;
font-family: "arial","sans-serif";
margin: 0;
}
但问题依然存在。网页可以在不同的屏幕分辨率下使用。文本由客户在运行时创建。右侧包含自动使用剩余空间的其他 div。在这种情况下,我不知道如何使用硬编码的最大宽度。max-width 指定允许的最大 div 宽度。通常在这种情况下 div 宽度较小,悬停会导致其增加,因此 max-width 不能解决问题。