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

如何让倾斜的Div适配容器?解决首尾Div无法填满容器问题

解决首尾倾斜Div无法填满容器的问题

问题原因

使用transform: skewX(-10deg)后,元素的视觉形状会倾斜,但元素的实际占位仍为原始矩形。首尾的SkillHolder倾斜后,左右边缘向内收缩,导致容器背景色从两侧露出,无法填满空间。

解决方案一:仅内部内容倾斜(推荐)

如果只需要图片/文字等内部内容有倾斜效果,外层容器保持矩形填满空间,可通过反向倾斜内部元素实现:

修改后的CSS

.SkillsContent {
    height: 100vh;
    top: 8vh;
    align-items: center;
    background-color: aquamarine;
    overflow: hidden;
    width: 100%;
    display: flex;
}

.SkillHolder {
    background-color: black;
    border-style: solid;
    border-color: white;
    color: white;
    height: 100%;
    width: 20%;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: .5s ease-in;
    /* 移除外层的skew,让容器保持矩形填满空间 */
}

.Expertise {
    transform: skewX(-10deg); /* 内部内容设置倾斜 */
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

这种方法不需要调整首尾元素,外层SkillHolder自然填满容器,同时内部内容保持倾斜效果,完全解决背景色露出的问题。

解决方案二:让整个SkillHolder(含边框)倾斜

如果需要整个SkillHolder(包括边框)都倾斜,可通过调整首尾元素的宽度和偏移,结合容器的overflow:hidden裁剪超出部分:

步骤1:给首尾元素添加专属类

修改HTML,给第一个和最后一个SkillHolder分别添加first和last类:

<div className='SkillsContent'>
    <div className='SkillHolder first'>
        <div className='Expertise P1_Content'>1</div>
    </div>
    <div className='SkillHolder'>
        <div className='Expertise P1_Content'>2</div>
    </div>
    <div className='SkillHolder'>
        <div className='Expertise P1_Content'>3</div>
    </div>
    <div className='SkillHolder'>
        <div className='Expertise P1_Content'>4</div>
    </div>
    <div className='SkillHolder last'>
        <div className='Expertise P1_Content'>5</div>
    </div>   
</div>

步骤2:添加CSS调整首尾元素

.SkillsContent {
    height: 100vh;
    top: 8vh;
    align-items: center;
    background-color: aquamarine;
    overflow: hidden;
    width: 100%;
    display: flex;
}

.SkillHolder {
    background-color: black;
    border-style: solid;
    border-color: white;
    color: white;
    height: 100%;
    width: 20%;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: skewX(-10deg);   
    transition: .5s ease-in;
}

/* 调整第一个元素,向左偏移并增加宽度,抵消倾斜后的左侧空隙 */
.SkillHolder.first {
    margin-left: calc(-100% * tan(10deg));
    width: calc(20% + 100% * tan(10deg));
    transform-origin: right center;
}

/* 调整最后一个元素,向右偏移并增加宽度,抵消倾斜后的右侧空隙 */
.SkillHolder.last {
    margin-right: calc(-100% * tan(10deg));
    width: calc(20% + 100% * tan(10deg));
    transform-origin: left center;
}

通过calc计算倾斜角度对应的宽度补偿,结合transform-origin确保倾斜中心正确,再利用容器的overflow:hidden裁剪超出部分,让首尾元素完全填满容器两侧。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:05:00