html - CSS 转换和伪类

标签 html css css-selectors pseudo-class

使用 :after,我尝试创建野兽派伪 3D 按钮。 但是 :after 显示在预期元素之上。

What I'm Trying to accomplish

What I'm getting

编辑:显然,这种转变正在阻碍,研究尚未得出原因或找到解决方法。

我错过了什么?或者有更好的办法吗?

nav li {
  position: relative;
  display:inline-block;
  transition: background 0.2s;
  transform: skewX(10deg);
}
nav li a {
  display:block;
  text-decoration:none;
  padding: 5px 10px;
  font: 30px/1 sans-serif;
  color: #0bf;
}
nav li.active,
nav li:hover{
  background:#000;
}

nav li.active:after {
  content: "";
  display: inline-block;
  top: 10px;
  left: 10px;
  width: 100%;
  height: 100%;
  background-color: red;
  
  position: absolute;
  z-index: -1;
}
<nav>
  <ul>
    
    <li class="active">
      <a href="#">Products</a>
    </li>
    
  </ul>
</nav>

最佳答案

您可以使用 box-shadow 来代替 :after

nav li {
  position: relative; z-index:0;
  display:inline-block;
  transition: background 0.2s;
  transform: skewX(10deg);
  box-shadow: 10px 10px 0 red;
}
nav li a {
  display:block;
  text-decoration:none;
  padding: 5px 10px;
  font: 30px/1 sans-serif;
  color: #0bf;
}
nav li.active,
nav li:hover{
  background:#000;
}
<nav>
  <ul>
    
    <li class="active">
      <a href="#">Products</a>
    </li>
    
  </ul>
</nav>

关于html - CSS 转换和伪类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47211683/

相关文章:

java - 在 thymeleaf 中执行迭代时添加序列号

html - 列表问题 - 内容垂直对齐但列表水平对齐?

javascript - 一定时间后重新加载特定的 div

css - Angular 7 - 如何根据窗口大小处理两个不同的导航栏?

html - 悬停图像时更改文本不透明度

CSS :after, 内容 : having two values?

css - 如何模糊 Div 边缘

javascript - PHP JavaScript - 单个 phpmyadmin 表中的多个复选框选择

html - 在 if ... else 语句的基础上添加额外的类

jquery - 使用 jQuery 选择最后 5 个元素