使用this技术的修改版本,我设法为我正在处理的网站制作倾斜的响应式div。我遇到的问题是,有3个倾斜的divs
在彼此的顶部,并且它们意味着在页面上创建一条对角线(所以每个倾斜的div需要与其周围的对齐)。对这些div使用百分比宽度目前还没有工作,但我不知道还有什么可以尝试的。响应对齐倾斜Divs
一个很好的解决方案是响应和[最好] css-only。
*{
margin: 0;
padding:0;
}
.hero{
width: 100%;
position: relative;
border: 1px solid black;
background-color: green;
}
.slanted{
position: relative;
background-color: purple;
width: 40%;
padding: 3em 0 3em 1em;
}
.slanted:after{
content: '';
background-color: purple;
position: absolute;
top: 0;
bottom: 0;
right: -6em;
width: 20em;
overflow: visible;
z-index: 1;
-webkit-transform: skewX(-13deg);
-moz-transform: skewX(-13deg);
-ms-transform: skewX(-13deg);
-o-transform: skewX(-13deg);
transform: skewX(-13deg);
}
.slanted h2{
position: relative;
z-index:3;
}
.hero1 .slanted{
width: 30%;
}
.hero2 .slanted{
width: 20%;
}
.hero3 .slanted{
width: 10%;
}
<div class="hero hero1">
<div class="slanted">
<h2>Some text</h2>
</div>
</div> \t
<div class="hero hero2">
<div class="slanted hero-text">
<h2>Some text</h2>
</div>
</div> \t
<div class="hero hero3">
<div class="slanted hero-text">
<h2>Some text</h2>
</div>
</div> \t
+1有趣的问题。恐怕你不得不在JS中使用一些数学来计算每个窗口大小的偏移量(当然,最初)。 – Shomz 2014-11-05 17:10:27
@Shomz我很害怕这会是答案:(看起来真的很遗憾必须为这么小的东西添加js! – Meg 2014-11-05 17:15:23
我完全同意,但可能会有一些hackish的CSS解决方案(使用[calc](https:/ /developer.mozilla.org/en-US/docs/Web/CSS/calc)也许?),这就是为什么我把它写成评论而不是答案。有人可能会提出一些巧妙的建议。 – Shomz 2014-11-05 17:20:18