CSS揭秘:10.平行四边形

前置知识:基本的css变形

一、平行四边形

要实现一个平行四边形,可以使用CSS的skew变形属性来倾斜元素。

css 复制代码
transform: skewX(-45deg);

图-1显示容器和内容都出现了倾斜,该如何解决这个问题?

二、嵌套方案

我们通过将内容嵌套 div 并使用 反向skew变形,抵消容器的影响。

css 复制代码
.box {
    transform: skewX(-45deg);
    
    .content {
        transform: skewX(45deg);
    }
}

虽然我们实现了目标效果,但如此一来,原本仅需单一元素即可表达的内容,现在却需要额外增加一个元素。

三、伪元素方案

还有一种办法是创建一个伪元素,将变形的样式都转移至伪元素上,这样就不会影响原来的内容了。

为了让伪元素的大小和主元素一致,我们可以这样实现:

  • 设置主元素 position: relative;
  • 同时将伪元素的各方向偏移量设置为 0 以达到贴合主元素。
css 复制代码
.button {  
    position: relative;    
    /* 其他的文字颜色、内边距等样式...... */  
}  
.button::before {   
    content: '';    
    position: absolute;  
    top: 0; right: 0; bottom: 0; left: 0;  
}

为了确保伪元素位于主元素下方而不产生遮挡,需要将伪元素的 z-index 设为 -1。

css 复制代码
.button {  
    position: relative;    
    /* 其他的文字颜色、内边距等样式...... */  
}  
.button::before {   
    content: '';    
    position: absolute;  
    top: 0; right: 0; bottom: 0; left: 0;  
    z-index: -1;
    transform: skewX(-45deg);
    background-color: xxx;
}

我们最终实现的视觉效果与嵌套元素完全相同。此外,这种伪元素方案还可用于其他图形效果,例如配合旋转属性实现菱形容器。

要点回顾

  • skew变形 :通过skew()实现元素倾斜,接收两个参数分别控制x轴和y轴偏移量。若仅指定一个参数,则默认应用于水平方向
  • 内容保护:可采用嵌套反向倾斜或伪元素技术,确保内容不受容器变形影响
相关推荐
掘了1 天前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅1 天前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅1 天前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅1 天前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment1 天前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅1 天前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊1 天前
jwt介绍
前端
爱敲代码的小鱼1 天前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax
Cobyte1 天前
AI全栈实战:使用 Python+LangChain+Vue3 构建一个 LLM 聊天应用
前端·后端·aigc
NEXT061 天前
前端算法:从 O(n²) 到 O(n),列表转树的极致优化
前端·数据结构·算法