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

如何用CSS实现HTML中Image和Div单侧倾斜?三列布局适配

单侧/双侧倾斜布局的实现方案

针对你需要的仅单侧倾斜需求,skew属性会同时倾斜元素的左右两侧,无法直接实现,这里提供两种可靠的解决方法:

方法一:使用clip-path(推荐)

clip-path可以直接定义元素的可见区域为多边形,精准实现单侧或双侧倾斜效果,无需处理内部内容的反向变形:

核心CSS规则

/* 仅右侧倾斜:调整95%数值可控制倾斜角度,数值越小倾斜越明显 */
.skew-right {
  clip-path: polygon(0 0, 95% 0, 100% 100%, 0 100%);
  overflow: hidden;
}
/* 左右双侧倾斜 */
.skew-both {
  clip-path: polygon(5% 0, 95% 0, 100% 100%, 0 100%);
  overflow: hidden;
}
/* 仅左侧倾斜 */
.skew-left {
  clip-path: polygon(0 0, 100% 0, 95% 100%, 0 100%);
  overflow: hidden;
}
/* 内部内容/图片加宽,避免裁剪后出现空白 */
.skew-right .inner-content,
.skew-both img,
.skew-left img {
  width: 110%;
  height: 100%;
  object-fit: cover;
}

修改后的完整代码

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<style>
  .skew-right {
    clip-path: polygon(0 0, 95% 0, 100% 100%, 0 100%);
    overflow: hidden;
  }
  .skew-both {
    clip-path: polygon(5% 0, 95% 0, 100% 100%, 0 100%);
    overflow: hidden;
  }
  .skew-left {
    clip-path: polygon(0 0, 100% 0, 95% 100%, 0 100%);
    overflow: hidden;
  }
  .skew-right .inner-content,
  .skew-both img,
  .skew-left img {
    width: 110%;
    height: 100%;
    object-fit: cover;
  }
</style>
<section>
  <div class="customer-logos1 slider" style="color:#333;font-weight:400">
    <div class="slide">
      <div class="row" style="margin:0;">
        <!-- 第一列:仅右侧倾斜 -->
        <div class="col-lg-4 col-4" style="padding:0;">
          <div class="skew-right" style="background:#f7f7f7;height:100%">
            <div class="inner-content tm-offer-content" style="text-align:center;padding-top:25%">
              <h4>Brand ear ring starting from</h4>
              <h6>Our popular products are so beautiful to see that the shoppers are easily attracted to them.</h6>
              <span class="badge badge-warning" style="background:#A07F3D;color:white;font-size: inherit;
                padding: 0.55em 0.8em;"> Starting From 500</span>
            </div>
          </div>
        </div>
        <!-- 第二列:左右两侧都倾斜 -->
        <div class="col-lg-4 col-4" style="padding:0;">
          <div class="skew-both" style="height:100%">
            <img src="https://jewelit.in/admin/uploads/about/about-image.jpg" alt="Jewelry">
          </div>
        </div>
        <!-- 第三列:仅左侧倾斜 -->
        <div class="col-lg-4 col-4" style="padding:0;">
          <div class="skew-left" style="height:100%">
            <img src="https://jewelit.in/admin/uploads/about/about-image.jpg" alt="Jewelry">
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

方法二:伪元素+skew(兼容旧浏览器)

如果需要兼容不支持clip-path的旧浏览器,可以用伪元素模拟单侧倾斜:

示例(第一列右侧倾斜)

.skew-right {
  position: relative;
  overflow: hidden;
  background: #f7f7f7;
}
.skew-right::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 15%;
  height: 100%;
  background: #f7f7f7;
  transform: skewX(-6deg);
  transform-origin: top right;
}

这种方法需要为不同倾斜方向单独调整伪元素的位置和变形原点,但兼容性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:07:04