是否可以仅使用CSS复制此图像?
我想将其应用于菜单,因此棕色背景出现在hover
实例上
我不知道该怎么做,我只有。
.menu li a:hover{
display:block;
background:#1a0000;
padding:6px 4px;
}
Answers:
skew
父元素(LI
)并反向倾斜为子元素
nav ul {
padding: 0;
display: flex;
list-style: none;
}
nav li {
transition: background 0.3s;
transform: skew(20deg); /* SKEW */
}
nav li a {
display: block; /* block or inline-block is needed */
text-decoration: none;
padding: 5px 10px;
font: 30px/1 sans-serif;
transform: skew(-20deg); /* UNSKEW */
color: inherit;
}
nav li.active,
nav li:hover {
background: #000;
color: #fff;
}
<nav>
<ul>
<li><a href="#">Home</a></li>
<li class="active"><a href="#">Products</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
display:inline-block;
不工作IE8或更少...所以我把一些*float:left;
黑客,以使IE上的“内联”。但是,当我将鼠标悬停在菜单上时(在IE8上),我无法设置一些正常的背景(没有偏斜)。有小费吗?
<span>
并执行相同操作。
:before
和:after
您可以使用该transform: skew(X, Y)
属性来实现此目的。创建一个倾斜的外部容器,然后在一个内部容器上倾斜相反的量,以使文本倾斜回直。例如看这个小提琴。
从您所说的来看,我相信这就是您想要的,否则请澄清该项目何时显示背景。
要获得IE支持,只需-ms-transform: skew(20deg, 0deg);
在所有其他transform: skew(20deg, 0deg);
s旁边添加。
skew
名字了.. :)