You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何制作斜向div?求助实现包含黑白两个子div的div布局

嘿,我来帮你搞定这两个布局问题!下面分两部分给你详细的实现方案:

一、制作斜向Div的几种常用方法

斜向Div的实现主要靠CSS的变形或裁剪属性,我平时做项目常用这几种实用方案:

1. 使用 transform: skew() 实现斜切效果

这是最常用的方法,通过skew属性让元素倾斜。如果不想让内部内容跟着倾斜,可以给内容套一层容器再反向skew回来:

<div class="skewed-box">
  <div class="content">我是斜向Div里的内容</div>
</div>
.skewed-box {
  width: 300px;
  height: 200px;
  background: #f0f0f0;
  /* 水平方向倾斜15度,负数是反向倾斜 */
  transform: skewX(15deg);
  margin: 20px;
}

.content {
  /* 反向倾斜,让内容恢复正常排版 */
  transform: skewX(-15deg);
  padding: 20px;
}

2. 使用 clip-path 实现自定义斜切形状

如果需要更灵活的斜角(比如只切一个角),clip-path是更好的选择,它可以精确控制元素的可见区域:

<div class="clip-box">我是带斜角的Div</div>
.clip-box {
  width: 300px;
  height: 200px;
  background: #2c3e50;
  color: white;
  padding: 20px;
  /* 左上角到右下角斜切,数值可根据需求调整 */
  clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%);
}

3. 使用边框模拟斜向效果

适合做窄条类的斜向元素(比如分隔线、装饰条):

<div class="border-skew"></div>
.border-skew {
  width: 300px;
  height: 0;
  border-top: 30px solid #e74c3c;
  border-right: 20px solid transparent;
}
二、包含黑白两个子Div的布局方案

结合你之前问的斜向Div需求,我猜你可能需要斜向分割的父容器,内部两个子div分别占黑白区域?这里给你两种常见的布局方案:

方案1:斜向分割的黑白布局(用transform + overflow)

父容器设置overflow:hidden,两个子div分别倾斜并定位,实现自然的斜分效果:

<div class="parent-box">
  <div class="white-child"></div>
  <div class="black-child"></div>
</div>
.parent-box {
  width: 400px;
  height: 300px;
  position: relative;
  overflow: hidden;
}

.white-child {
  position: absolute;
  top: 0;
  left: 0;
  width: 120%;
  height: 100%;
  background: white;
  transform: skewX(-15deg);
  transform-origin: top left;
}

.black-child {
  position: absolute;
  top: 0;
  right: 0;
  width: 120%;
  height: 100%;
  background: black;
  transform: skewX(-15deg);
  transform-origin: top right;
}

方案2:普通并排的黑白子Div(如果不需要斜向)

如果只是需要父容器内两个子div一黑一白并排,用flex布局最简单:

<div class="flex-parent">
  <div class="white-child">白色区域</div>
  <div class="black-child">黑色区域</div>
</div>
.flex-parent {
  display: flex;
  width: 400px;
  height: 300px;
}

.white-child {
  flex: 1;
  background: white;
  border: 1px solid #eee;
  display: flex;
  align-items: center;
  justify-content: center;
}

.black-child {
  flex: 1;
  background: black;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
}

如果你的需求是其他样式(比如其中一个子div单独是斜向的),可以补充细节,我再调整方案!

内容的提问来源于stack exchange,提问作者user8963833

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:38:00