【问题标题】:Text underline with a short slant line at the end using CSS使用CSS在末尾带有短斜线的文本下划线
【发布时间】:2017-05-06 17:24:44
【问题描述】:

当您将鼠标悬停在菜单项上时,我想给它们一个很好看的下划线效果。应该有一条与下划线文本宽度相同的标准实线,但在该直线的末端应该有一条短的倾斜结束线平滑地连接到前面的直线部分。

想要的效果应该是这样的:

我该怎么做?

HTML:

<ul class="my-menu">
<li class="my-menu-items">Home</li>
<li class="my-menu-items">About us</li>
<li class="my-menu-items">Contact</li>
</ul>

【问题讨论】:

  • 很简单..你试过了吗?
  • CSS 的某些部分对我来说还没有发现,如果你不知道它是如何调用的,就无法搜索。

标签: html css


【解决方案1】:

您可以使用transform: rotate() 来使用绝对定位的伪元素

a {
  text-decoration: none;
  border-bottom: 1px solid black;
  position: relative;
  display: inline-block;
}
a:after {
  content: '';
  position: absolute;
  right: 0; bottom: -1px;
  border-bottom: 1px solid black;
  width: 25%;
  transform: translateX(100%) rotate(45deg);
  transform-origin: 0 50%;
}
&lt;a href="#"&gt;Home&lt;/a&gt;

【讨论】:

  • 不错。我会选择 45 度。
【解决方案2】:

您可以使用:before:after 伪元素。

li {
  display: inline-block;
  position: relative;
  margin: 10px;
  padding-bottom: 5px;
  cursor: pointer;
}
li:after, li:before {
  content: '';
  height: 3px;
  width: 100%;
  background: none;
  position: absolute;
  transition: all 0.3s ease-in;
  bottom: 0;
  left: 0;
}
li:after {
  left: calc(100% - 3px);
  transform: rotate(45deg);
  width: 15px;
  bottom: -5px;
}
li:hover:after,
li:hover:before {
  background: black;
}
<ul class="my-menu">
  <li class="my-menu-items">Home</li>
  <li class="my-menu-items">About us</li>
  <li class="my-menu-items">Contact</li>
</ul>

对两条线使用伪元素可以创建动画改变宽度。

li {
  display: inline-block;
  position: relative;
  margin: 10px;
  padding-bottom: 5px;
}
li:after, li:before {
  content: '';
  height: 3px;
  width: 0px;
  background: black;
  position: absolute;
  transition: width 0.3s ease-in;
  bottom: 0;
  left: 0;
}
li:after {
  left: 100%;
  transform: rotate(45deg);
  transform-origin: top left;
}
li:hover:before {
  width: 100%;
}
li:hover:after {
  width: 15px;
  transition-delay: 0.3s;
}
<ul class="my-menu">
  <li class="my-menu-items">Home</li>
  <li class="my-menu-items">About us</li>
  <li class="my-menu-items">Contact</li>
</ul>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2014-06-11
    • 2017-04-13
    • 1970-01-01
    • 2016-03-27
    • 2018-01-17
    相关资源
    最近更新 更多