【发布时间】:2012-11-15 12:11:26
【问题描述】:
我正在尝试使用 CSS 创建一个仅在顶部倾斜并且不会倾斜其中的文本的 div。 我希望它是纯 CSS 的原因是因为它是一种响应式设计并且需要响应百分比,因为该 div 的其余部分会随着设备宽度的变化而弯曲。
我正在努力完成的照片在这里:
到目前为止,我所做的是创建一个倾斜的 div 并将其放置在另一个 div 中,然后使用负边距将其向上拉。我这样做有两个问题。第一个问题是,在最小的屏幕收缩(使您的浏览器宽度非常小)上,倾斜的 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 */
}
我尝试过在父级上使用倾斜,但这会倾斜其中的所有子元素。如果这是一个固定的布局,我会使用绝对定位来帮助我,但由于它是响应式和可弯曲的,我不知道该采取什么其他方法。
我也希望它出现在 CSS 中,因为我还有其他效果要添加到 div,例如使用 box-shadow 的外发光和背景渐变。
我也无法更改设计。
任何关于如何实现这一点的意见都会很棒!
【问题讨论】:
标签: html css responsive-design transform css-shapes