Подтвердить что ты не робот

Как перекосить элемент, но сохранить текст нормальным (не подверженным курку)

Можно ли воспроизвести это изображение, используя только CSS?

enter image description here

Я хочу применить это к своему меню, поэтому коричневый фон появляется на hover экземпляре

Я не знаю, как это сделать, у меня есть только:

.menu li a:hover{
     display:block;
     background:#1a0000;
     padding:6px 4px;
}
4b9b3361

Ответ 1

skew родительский элемент (LI) и обратный косой элемент children

CSS Menu skewed buttons diagonal borders

nav li {
  display:inline-block;
  transition: background 0.2s;
  transform: skew(20deg);  /* SKEW */
}
nav li a {
  display:block;
  text-decoration:none;
  padding: 5px 10px;
  font: 30px/1 sans-serif;
  transform: skew(-20deg); /* INVERSE SKEW */
  color: #0bf;
}
nav li.active,
nav li:hover{
  background:#000;
}
<nav>
  <ul>
    <li><a href="#">Home</a></li>
    <li class="active"><a href="#">Products</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>

Ответ 2

Вот скрипка для использования в разных браузерах - я создал через пару минут.

Попробуйте сыграть с аргументами, для этого я использовал :before и :after.

https://jsfiddle.net/DTBAE/

Ответ 3

Вы можете использовать свойство transform: skew(X, Y) для достижения этого. Создавая перекошенный внешний контейнер, затем перекосите противоположную величину на внутреннем контейнере, чтобы перекосить текст назад, чтобы быть прямым. См. Эту скрипту, например:

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

Из того, что вы сказали, я считаю, что это то, что вы хотите, если не проясните, когда элемент должен отображать фон.

Ответ 4

Для поддержки IE просто добавьте -ms-transform: skew(20deg, 0deg); рядом со всеми другими transform: skew(20deg, 0deg); s.

Ответ 5

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

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

Ответ 6

[используя Компас и Сасс] Этот небольшой микс может быть полезен:

=add_skew($skew_deg_x, $skew_deg_y)
  +skew($skew_deg_x, $skew_deg_y)
  .content_wrapper
    +skew(-$skew_deg_x, -$skew_deg_y)

Haml/html выглядит примерно так:

// haml / html

.skew
  .content_wrapper
    // your content

Затем просто добавьте его с необходимыми значениями:

// sass

.skew
  // other .skew styles
  +add_skew(-10deg, 0deg)