强大的CSS:实现平行四边形布局效果
如何实现下图所示的平行四边形布局效果?

一、skewX的局限
一提到平行四边形,条件反射般的就会想起CSS transform中的skew()/skewX()/skewY()方法,可以让元素斜切,从而实现平行四边形效果
HTML如下:
<div class="input-x"> <input class="input" placeholder="您的姓名"></div>CSS如下,形状的关键就是下面红色高亮的transform:skewX(-10deg):
.input-x { display: inline-block; position: relative; z-index: 0;}.input-x::before { content: ''; position: absolute; left: 0; top: 0; right: 0; bottom: 0; border: 2px solid #ddd; background-color: #fff; border-radius: 4px; transform: skewX(-10deg); z-index: -1; }.input { display: block; padding: 8px 10px; border: 0; background: none;}然而,一开始的布局不仅后面的白色背景形成平行四边形,整段文字内容也按照平行四边形的格式进行了排版,假如文字内容也应用skewX,所有文字内容就会体现为倾斜,如下所示:
我是一段文字内容,我应用了transform属性中的skewX,看看我现在的体现是怎么子的……
我们的预期应该是文字都是正立显示,而不是这样子的倾斜。我们可能第一反应是对里面的文字进行反向的skewX,但那需要对每一行文字单独解决,或者者对每一个字符单独进行解决,成本有些高,不太实际。
这就是skewX方法的局限,那有没有什么其余方法可以实现平行四边形的布局效果呢?有,可以借助CSS Shapes布局实现。
二、CSS Shapes布局与三角
然而你就算熟习了CSS Shapes布局的每一个CSS属性,这里的平行四边形布局效果你还不肯定会实现得出来,由于需要借助一点逆向思维。
CSS Shapes实现平行四边形布局的关键不在于平行四边形本身,而在于左上角和右下角的两个三角形。
HTML结构如下:
<!-- 左三角 --><div class="shape-left"></div><!-- 右三角 --><div class="shape-right"></div><content class="content"> ...内容...</content>我们查看下布局盒子,可见端倪:


.shape-left元素左浮动同时设置shape-outside为倒三角,.shape-right元素右浮动同时设置shape-outside为正三角,此时,<content>元素里面的文字内容就自动在剩余空间环绕排版,形成平行四边形布局效果。
相关CSS代码如下:
.shape-left { float: left; width: 200px; height: 500px; /* 倒三角 */ shape-outside: polygon(0 0, 100% 0, 0% 100%);}.shape-right { float: right; width: 200px; height: 500px; /* 正三角 */ shape-outside: polygon(100% 0, 100% 100%, 0 100%);}.content { display: block;}效果即达成。
实现代码很简单,关键是思路。
三、平行四边形布局与实战
不规则形状的广告更能引起客户的注意力,从而提高广告点击率。
于是对于平行四边形布局,左上角和右下角的三角空缺正好可以用来放两个三角形广告,既充分利用空间,又有高收益。
前台开发通常与公司的业务收入直接关联不大,但是这里却不一样,假如你实现的新颖的布局效果能够大幅提高公司的收入,证实了你在这一块的价值,相信对你的绩效会很不错,可以在项目中试一试。
然而实际开发的时候,展现的文字内容有多有少,走平行四边形并不合适,由于会导致三角很小,或者者右下角的三角位置无法确定的问题,因而,推荐实现的布局形状是下图这样子的。

四、结束语
以后遇到不规则形状布局,要有条件反射般的思维——CSS Shapes布局。
CSS Shapes布局兼容性已经相当不错了,手机端可以放心使用。为了避免污染极少部分老旧手机,我们可以这么解决:
@supports (shape-outside: none) { /* CSS Shapes相关代码写在这里 */}这样,老旧手机仍然是布局良好的传统块状布局,大多数手机可以享用新式布局带来的美味。
自己是一个五年的前台工程师,希望本文对你有帮助!
这里推荐一下我的前台学习交流扣qun:731771211 ,里面都是学习前台的,假如你想制作酷炫的网页,想学习编程。自己整理了一份2019最全面前台学习资料,从最基础的HTML+CSS+JS【炫酷特效,游戏,插件封装,设计模式】到手机端HTML5的项目实战的学习资料都有整理,送给每一位前台小伙伴,每天分享技术
点击:加入
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 强大的CSS:实现平行四边形布局效果