CSSを使用して、上部のみを傾斜させ、その中のテキストを歪めないdivを作成しようとしています。CSSのみにしたい理由は、レスポンシブデザインであり、デバイスの幅が変化するとこのdivの残りの部分が変化するため、パーセンテージに応答する必要があるためです。
私が達成しようとしていることの写真はここにあります:
私がこれまでに得たのは、傾斜したdivを作成し、それを他のdiv内に配置してから、負のマージンを使用して上に引き上げることです。私がこれを行ったこの方法には2つの問題があります。最初の問題は、最小の画面縮小(ブラウザの幅を非常に小さくする)では、傾斜したdivが含まれているdivよりも小さくなり、奇妙に見えることです。また、このdivは、その後に追加するテキストを隠蔽しています。
マークアップ:
<aside>
<div id="skew"></div><!-- #skew -->
<h3 id="refer">Refer Your Friends</h3>
</aside>
CSS:
#skew {
background:#00328b;
width:103%;
height:66px;
border-radius:8px;
margin-top:-47px;
margin-left:-1.2%;
-webkit-transform: skewY(-5.5deg);
-moz-transform: skewY(-5.5deg);
-ms-transform: skewY(-5.5deg);
-o-transform: skewY(-5.5deg);
transform: skewY(-5.5deg);
}
.main aside {
color: white;
padding: 20px 10px;
margin-top:120px;
border-radius:8px;
background: rgb(0,51,141); /* Old browsers */
}
親のスキューを脇に使用してみましたが、これにより、その中のすべての子要素がスキューされます。これが固定レイアウトの場合は、絶対ポジショニングを使用して支援しますが、応答性と柔軟性があるため、他にどのようなアプローチを取るべきかわかりません。
また、ボックスシャドウを使用した外側の輝きや背景のグラデーションなど、divに追加する他の効果があるため、CSSで使用したいと思います。
デザインも変更できません。
これを達成する方法についての入力は素晴らしいでしょう!