HTML/CSS:Webkit 浏览器截断了斜体链接

Posted

技术标签:

【中文标题】HTML/CSS:Webkit 浏览器截断了斜体链接【英文标题】:HTML/CSS: Webkit browsers cut up italic link 【发布时间】:2013-01-02 03:01:06 【问题描述】:

我有什么 我有一个普通的 html 链接,例如 <a href="#">Link</a>。在我的样式表中,我将该链接设置为 display: inline-block;,因为我必须稍微推动它以匹配布局。font-style 设置为 italic

问题 这会导致以下问题:由于文本设置为斜体,链接单词的最后一个字母超出了链接周围的框。正因为如此,Safari 和 Chrome 在悬停时“切割”了颜色变化。请参阅我为链接分配背景颜色以使其更清晰的屏幕截图。 正常链接颜色是浅色,蓝色是悬停颜色。

Firefox 可以正确管理这一点,而无需删除任何内容。

为链接设置填充可能是最简单的解决方案,但我觉得对我来说是一种解决方法。有没有其他解决办法?

小提琴: http://jsfiddle.net/qD78e/

【问题讨论】:

你能用这个例子创建一个jsfiddle,以便我们可以看到它的实际效果吗? @Rune 已添加,请参阅我帖子中的编辑。 我现在明白你的意思了,但是除了填充之外我找不到任何方法来解决这个问题。 可以向WebKit Bug Tracker 或Chromium Bug Tracker 提交错误或提供现有错误的链接吗? 【参考方案1】:

您总是可以在斜体类中添加填充,例如:

a
    display: inline-block;
    font-style: italic;
    font-size: 100pt;
    background-color: red;
    color: white;
    padding: 0 10px;

会给你这个:http://jsfiddle.net/8ZAUf/ - 这似乎在我测试的所有浏览器(opera、safari、chrome、firefox)中都显示相同。

你也可以采纳 Kamo 的建议,不过我会稍微修改一下并这样做:

#prob:after
  content: '\00a0';
  font-size: 18pt;

给你:http://jsfiddle.net/AZS6S/,然后你可以重新使用它(显然是通过使用一个类,而不是一个 id)。

【讨论】:

【参考方案2】:

您可以将  添加到您的链接中:<a href="#" id="prob">Link </a>,但这是常见的错误和令人沮丧的错误。

【讨论】:

【参考方案3】:

您可以使用 javascript 强制重绘。它看起来仍然不完全正确,因为文本仍然大于边界框,您可以在背景中看到边界框,但如果这不是问题,您可以使用此解决方案。

见:

http://jsfiddle.net/qD78e/15/

主要内容:

var prob = document.getElementById('prob');
prob.addEventListener('mouseover', function() 
  // force a repaint of the parentNode:
  prob.parentNode.style.color = 'blue';
, false);
prob.addEventListener('mouseout', function() 
  // force a repaint of the parentNode:
  prob.parentNode.style.color = 'pink';
, false);

可能有更好的方法来强制重绘。

【讨论】:

【参考方案4】:
<style>
.link
    background:#999;
    display:inline-block;

.link a
    font-style:italic;
    color:#000;


.link a:hover
    color:#00F;

</style>

<div class="link">
    <a href="#">Link</a>
</div>

我已经创建了上面的代码。请尝试一下。

【讨论】:

以上是关于HTML/CSS:Webkit 浏览器截断了斜体链接的主要内容,如果未能解决你的问题,请参考以下文章

多行截断

UITextField 中的第一个字母被斜体字体截断

Webkit lastline截断

html ; css ; javascript ; json ;

CSS Webkit最后一行截断

确定 Eclipse 是不是显示使用 -webkit-line-clamp 截断的文本