web-dev-qa-db-ja.com

要素を傾けるが、テキストを通常の状態に保つ方法(スキューなし)

CSSのみを使用してこの画像を再現することは可能ですか?

enter image description here

これをメニューに適用したいので、茶色の背景がhoverインスタンスに表示されます

これを行う方法がわかりません。

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

skew親要素(LI)および逆スキュー子要素

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>
115
Roko C. Buljan

さまざまなブラウザーで使用するためのフィドルです-数分で作成しました。

引数で遊んでみて、:before:afterを使用してこれを行いました。

https://jsfiddle.net/DTBAE/

10
udidu

transform: skew(X, Y)プロパティを使用してこれを実現できます。斜めの外側のコンテナを作成し、内側のコンテナで反対の量を斜めにして、テキストを斜めに戻します。たとえば、このフィドルを参照してください。

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

あなたが言ったことから、Ibelieveこれはあなたが望むものです。

5
Don
.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>

1
lurk

IEをサポートするには、他のすべての-ms-transform: skew(20deg, 0deg); sの横にtransform: skew(20deg, 0deg);を追加するだけです。

1
Thabet Jmal