【问题标题】:Underline extends beyond end of word with letter-spacing [closed]下划线以字母间距超出单词结尾[关闭]
【发布时间】:2013-12-19 19:46:04
【问题描述】:

我正在开发一个 WordPress 站点,并通过将 letter-spacing: 4px; 添加到位于主题 style.css 文件中的站点 #mainNav ID 来增加站点导航栏上的字母间距。我还在以下类下的同一个 style.css 文件中添加了text-decoration: underline;,以便当前查看的页面将在导航栏中加下划线:

#mainNav ul li.current a,
#mainNav ul li.current-cat a,
#mainNav ul li.current_page_item a,
#mainNav ul li.current-menu-item a,
#mainNav ul li.current-post-ancestor a,
.single-post #mainNav ul li.current_page_parent a,
#mainNav ul li.current-category-parent a,
#mainNav ul li.current-category-ancestor a,
#mainNav ul li.current-portfolio-ancestor a,
#mainNav ul li.current-projects-ancestor a {
    color: #2e2e2e;
    text-decoration: underline;
}

问题在于,由于增加了字母间距,下划线超出了词尾。

我已经看到了CSS Text underlining too long when letter-spacing applied 的答案,但是因为导航栏是由 PHP 拉到一起的,所以不像在答案中建议的那样修改静态页面的 html 那么容易。

WordPress 中的导航栏是通过 wp-includes 文件夹中的文件 nav-menu-template.php 和 nav-menu.php 构建的。有人可以帮助我如何在导航栏 PHP 中实现一些 PHP,以便它会自动将字母间距应用于所有字母减去最后一个?

【问题讨论】:

标签: php html css wordpress


【解决方案1】:

问题在于字母间距会在每个字母的末尾添加空格,包括最后一个。您可以做的一件事是使用 letter-spacing 属性创建一个 span 类,然后将每个菜单项包装在 span 中,最后一个字母除外。

<span class="spacing">Home</span>
<span class="spacing">Links</span>

【讨论】:

  • 感谢您的建议,但这并不能完全解决我的问题。我已更新问题以提供更多信息。
  • 最简单的方法是将您的菜单设为静态而不是动态,然后使用此解决方案。除非您打算大量更改菜单项,否则这没什么大不了的。
  • 这是个好主意,但是我想让网站启动并运行并看起来清晰,然后移交给我的客户,以便他们在需要时负责更新和修改内容。
【解决方案2】:

重复问题:CSS Text underlining too long when letter-spacing is applied?

这是letter-spacing 的正常行为,要完成您需要从最后一个字符中删除letter-spacing 的操作,请查看上述问题的正确解决方案以了解更多详细信息。

【讨论】:

  • 谢谢。是的,我已经看到了这个问题和回复,但我的问题略有不同。我已更新问题以提供更多信息。
【解决方案3】:
a {
  display: inline-block;
  width: 70px /*your a's original width is 72px*/;
  overflow: hidden;
} 

【讨论】:

    猜你喜欢
    • 2014-01-01
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    相关资源
    最近更新 更多