如何扭曲元素但保持文本正常(未弯曲)

Pre*_*ton 63 css css3 css-shapes

是否可以仅使用CSS重现此图像?

在此输入图像描述

我想将它应用到我的菜单中,因此棕色背景出现在hover实例上

我不知道怎么做,我只有;

.menu li a:hover{
     display:block;
     background:#1a0000;
     padding:6px 4px;
}
Run Code Online (Sandbox Code Playgroud)

Rok*_*jan 117

skew父元素(LI)和反向倾斜它的子元素

CSS菜单倾斜按钮对角线边框

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;
}
Run Code Online (Sandbox Code Playgroud)
<nav>
  <ul>
    <li><a href="#">Home</a></li>
    <li class="active"><a href="#">Products</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>
Run Code Online (Sandbox Code Playgroud)


udi*_*idu 10

这是一个在不同浏览器中使用的小提琴 - 我在几分钟内创建.

尝试使用参数,我使用:before:after执行此操作.

https://jsfiddle.net/DTBAE/


Don*_*Don 5

您可以使用该transform: skew(X, Y)属性来实现此目的.创建一个倾斜的外部容器,然后在内部容器上倾斜相反的量,使文本倾斜回直线.看到这个小提琴,例如;

http://jsfiddle.net/UZ6HL/4/

从你所说的,我相信这是你想要的,如果不是,请说明项目何时应显示背景.


小智 5

.skew {
  background: green;
  color: #fff;
  padding: 50px;
  transform: skewX(-7deg);
  font-size: 20px;
  font-weight: 700;
}

.skew p {
  transform: skewX(7deg);
}
Run Code Online (Sandbox Code Playgroud)
<div class="skew">
  <p>This is caption</p>
</div>
Run Code Online (Sandbox Code Playgroud)

这是一个例子