【发布时间】:2012-10-11 07:07:24
【问题描述】:
我有一个带有链接列表的侧边栏,每个链接的右侧都有一个箭头图标(使用 :after 选择器在锚样式中设置)。在许多链接上,箭头正在下降到它自己的行。我想确保文本可以根据需要换行,但要防止箭头本身被孤立到一行上。
我以为我已经通过在 :after 伪元素上使用“white-space: nowrap”解决了这个问题,因为这在 Firefox 中有效。不幸的是,我发现它不适用于 IE8、Chrome 和 Safari。
在 Firefox、IE8、Chrome 和 Safari 中,有没有办法防止链接图标中断到自己的行,同时仍允许链接中的文本根据需要换行?
基本 HTML 结构:
<div id="sidebar">
<ul>
<li><a>Link 1</a></li>
<li><a>Link 12</a></li>
</ul>
</div>
样式规则(用sass编写):
div#sidebar
width: 170px
a:after
content: url('images/icon_double-arrow.png')
margin: 0 0 0 6px
white-space: nowrap
【问题讨论】:
-
Not seeing your problem,缺少什么?您能否(在您的 Web 开发人员工具中)看到各种对象的指标是什么?是否有定义的宽度(在生成的内容中,
a或li元素)强制换行? -
你能发一个fiddle模仿这种情况吗?
-
如果没有实际的图标图像,您可能无法看到问题,因为那是下降到它自己的行的内容。唯一定义的宽度在包含的 div 和 UL 上(设置为宽度:159px;)如果您在 IE8、Safari 或 Chrome 中加载它,您可以在此页面上看到一个示例:example in the right sidebar
-
我相信我解决了这个问题。我更改了样式,以便将箭头图像设置为锚背景,并使用填充将其定位在右侧,而不是将箭头图像设置为 :after 内容。适用于所有提到的浏览器:
a border: 0 background: url('images/icon_arrow.png') no-repeat right center padding-right: 15px -
那么您应该将其发布为答案,并(在几天内,当您能够)接受该答案作为您问题的解决方案。
标签: css internet-explorer-8 css-selectors whitespace nowrap