1. ホーム
  2. html

[解決済み] CSS3 トランスフォーム 片方だけ傾ける

2022-02-11 05:44:23

質問

CSS3 Transform Skew One Side"を作成することは可能でしょうか?

私は1つの解決策を見つけましたが、それは私には有用ではありません、私は(色ではなく)背景に画像を使用する必要があるからです。

#skewOneSide {
    border-bottom: 40px solid #FF0000;
    border-left: 50px solid rgba(0, 0, 0, 0);
    height: 0;
    line-height: 40px;
    width: 100px;
}

これでもか JsFiddle も使い物にならない(歪んだ部分は透明であるべき)。

解決するには?

これを試してみてください。

への アンクル の場合、画像のネストされたdivを使用し、それに反対の傾き値を与えます。つまり、親ディブが20度であれば、ネストされたディブ(画像)には-20度のスキュー値を与えることができます。

.container {
  overflow: hidden;
}

#parallelogram {
  width: 150px;
  height: 100px;
  margin: 0 0 0 -20px;
  -webkit-transform: skew(20deg);
  -moz-transform: skew(20deg);
  -o-transform: skew(20deg);
  background: red;
  overflow: hidden;
  position: relative;
}

.image {
  background: url(http://placekitten.com/301/301);
  position: absolute;
  top: -30px;
  left: -30px;
  right: -30px;
  bottom: -30px;
  -webkit-transform: skew(-20deg);
  -moz-transform: skew(-20deg);
  -o-transform: skew(-20deg);
}
<div class="container">
  <div id="parallelogram">
    <div class="image"></div>
  </div>
</div>

例のものです。

http://jsfiddle.net/diegoh/mXLgF/1154/