1. ホーム
  2. css

要素を傾けるが、テキストは通常のまま(傾きなし)にする方法

2023-09-06 22:24:02

質問

この画像をCSSだけで再現することは可能でしょうか?

これをメニューに適用して、茶色の背景が表示されるようにしたい。 hover のインスタンスに表示されるようにしたい。

しかないのですが、どうしたらいいのでしょうか?

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

どのように解決するのですか?

skew 親要素( LI ) と 逆スキュー はその子要素である

nav ul {
  padding: 0;
  display: flex;
  list-style: none;
}
nav li {
  transition: background 0.3s, color 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>