2

我的链接设置在“font-weight 300”和“text-transform underline”中。我通过@import 使用谷歌字体“Roboto”。在 Chrome 和 Opera 中,下划线像 font-weight 400 一样粗。FF、Edge 和 IE 没有这个问题。

HTML:

<p><a href="index.html">Zurück</a></p>

SCSS:

@import url('https://fonts.googleapis.com/css?family=Roboto:300');

@mixin font-family-sans-serif(){  
  font-family: 'Roboto', sans-serif;
  font-weight: 300;
}

a, 
a:hover, 
a:link, 
a:visited, 
a:active, 
a:focus,
button{
  text-decoration: none;
  &:hover, &:focus{
    text-decoration: underline;
  }
}

悬停时FF中没有问题:

在此处输入图像描述

悬停时Chrome中的问题:

在此处输入图像描述

有人知道如何解决这个问题吗?

4

1 回答 1

2

我经常发现 Roboto 渲染下划线以接近文本。在大多数情况下我不喜欢它(主要是较小的字体大小)。

我通常使用边框或框阴影。您还可以考虑使用透明颜色或子像素(Chrome 在渲染子像素方面做得很好)厚度来调整外观。

但这取决于您所针对的浏览器支持。一些例子给你一个想法。

带有 box-shadow 的 SCSS 示例:

$link-color: #0e7aef;

a {
    padding-bottom: 1px; // Distance of 'line' from link text adjust accordingly
    font-family: 'Roboto', sans-serif;
    text-decoration: none;

    &:focus,
    &:hover {
        box-shadow: 0 1px 0 rgba($link-color, 0.8);
        // box-shadow: 0 0.75px 0 $link-color; // sub-pixel example
    }
}
于 2018-03-08T13:36:35.457 回答