私はフィドルを作りました:
歪んだdivを維持しようとしていますが、pテキストをまっすぐに保ちます。
これは可能ですか?
ありがとう
20deg
DIV 変換を補正するには、 on Pの代わりに使用する必要があります0deg
(結果は変換の構成であるため)。
スキューの影響をキャンセルするには、変換に正の値を指定する必要があります。
p {
-webkit-transform: skew(20deg) !important;
-moz-transform: skew(20deg) !important;
-o-transform: skew(20deg) !important;
transform: skew(20deg) !important;
}
div {
width: 200px;
height:50px;
background: red;
-webkit-transform: skew(-20deg);
-moz-transform: skew(-20deg);
-o-transform: skew(-20deg);
transform: skew(-20deg);
margin: 20px;
padding:0 25px;
}
p {
-webkit-transform: skew(20deg) !important;
-moz-transform: skew(20deg) !important;
-o-transform: skew(20deg) !important;
transform: skew(20deg) !important;
}
<div>
<p>hey i'm straight, ok?</p>
</div>
ねえ、私はまっすぐです、いいですか?
他の人が指摘したように、の逆は、skew
いくつ<p>
かの望ましくない結果につながる可能性があります。
また、新しいskew
角度ごとに、内部コンテンツを逆にするために対応する CSS セレクター/宣言が必要になるという点で、再利用性が高くありません。
別の方法として、セレクターを使用し:before
て、テキストの後ろに歪んだ要素を追加します。
HTML
<div>
<p>hey i'm straight, ok?</p>
</div>
CSS
div {
width: 200px;
height:50px;
margin: 20px;
position:relative;
}
div:before {
content: "";
display:block;
background: red;
position:absolute;
width:100%;
height:100%;
z-index:-1;
-webkit-transform: skew(-20deg);
-moz-transform: skew(-20deg);
-o-transform: skew(-20deg);
transform: skew(-20deg);
}
そしてデモ。
斜めに戻すことができるかどうかはわかりませんが、フォントが大きく歪んでいるようです。
skew(20) は私が得ることができる最も近いものですが、代わりに 2 つの div を設定できます。1 つは傾斜ボックス用で、もう 1 つはその上を移動します。
あなたが見るためにそこにフィドルをセットアップします
マーティン
編集:実際には違いはありません:piフォントが赤地に黒だけで、私の画面が好きではないと思います:p
いつも考え過ぎ!