您的问题在于您设置font-size了<a>标签,这些标签都设置为display:block并容纳了您需要的其他元素。
em当您增加<a>元素中的字体大小时,会展开。由于您的箭头图像也嵌套在您的<a>元素中并且是绝对定位的,因此如果容器框改变大小,箭头的位置也会改变。无论您用于大小、边距、填充等的单位类型如何,都会发生这种情况。
尝试将文本包含在它自己的元素中。将你的 CSS 分成排版样式和定位样式,将每一行的文本包装在一个 span 元素中。
<li>
<a href="#" data-id="BMW">
<span>BMW</span>
<span></span>
</a>
</li>
然后将您的单独字体样式应用到此范围:
.ajaxdrilldown ul li a span:first-child {
display:inline-block; /* IE7 will need a hack for this */
position:relative;
left:0.3em;
font-size:1.4em;
...
}
这将允许文本在其自身元素的范围内自由扩展,而不会影响其他项目的布局。
您还需要在第 98 行更改此样式:
.ajaxdrilldown div ul li a span
沿着这些思路
.ajaxdrilldown div ul li a span:last-child
阻止跨度污染彼此不同的风格
附带说明一下,您不需要在 display:block; 元素上设置 width:100%。完全删除宽度声明,因为它是不必要的,并且可能会给其他样式的人带来麻烦。