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

如何将设置了transform:skew的container容器顶部的标题居中显示

问题根因
  • 你的.container设置了display: flex,默认主轴为水平方向,<h2>标题会和后续的.card元素在同一行并排显示,无法单独放在容器顶部
  • .container设置了transform: skew(5deg)倾斜变换,标题如果直接放在容器内会跟着倾斜,显示不符合预期
解决步骤

HTML修改

把所有.card元素用一个新的<div class="card-list">包裹,结构如下:

<div class="container">
  <h2>PROCHAINEMENT</h2>
  <div class="card-list">
    <div class="card">
      <img src="https://upload.wikimedia.org/wikipedia/commons/d/d6/Cat_plotting_something_evil%21.jpg">
      <div class="card__head">Plotting Cat</div>
    </div>
    <div class="card">
      <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/False_alarm_-a.jpg/1280px-False_alarm_-a.jpg">
      <div class="card__head">Angry Cat</div>
    </div>
    <div class="card">
      <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Neugierige-Katze.JPG/1280px-Neugierige-Katze.JPG">
      <div class="card__head">Curious Cat</div>
    </div>
    <div class="card">
      <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/75/Al_acecho_%289272124788%29.jpg/1280px-Al_acecho_%289272124788%29.jpg">
      <div class="card__head">Prowling Cat</div>
    </div>
    <div class="card">
      <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Mimi%26Tigsi.jpg/1280px-Mimi%26Tigsi.jpg">
      <div class="card__head">Sleepy Cat</div>
    </div>
  </div>
</div>

CSS修改

调整原有样式,新增对应规则:

/* 调整原有.container样式 */
.container {
    background: transparent;
    font-family: sans-serif;
    display: flex;
    /* 主轴改为垂直方向,让标题在上,卡片列表在下 */
    flex-direction: column;
    align-items: center;
    margin: 30vmin;
    overflow: hidden;
    transform: skew(5deg);
}

/* 新增标题样式 */
.container h2 {
    text-align: center;
    /* 抵消容器的倾斜,让文字显示正常 */
    transform: skew(-5deg);
    margin: 0 0 1em 0;
}

/* 新增卡片列表样式 */
.card-list {
    display: flex;
    width: 100%;
    justify-content: center;
    align-items: center;
}

/* 原有.card相关样式保持不变即可 */
.container .card {
    border: none;
    background: transparent;
    flex: 1;
    transition: all 1s ease-in-out;
    height: 60vmin;
    position: relative;
}

.container .card .card__head {
    border-radius: 15px;
    color: black;
    background: rgba(255, 30, 173, 0.75);
    padding: 0.5em;
    transform: rotate(-90deg);
    transform-origin: 0% 0%;
    transition: all 0.5s ease-in-out;
    min-width: 100%;
    text-align: center;
    position: absolute;
    bottom: 0;
    left: 0;
    font-size: 1em;
    white-space: nowrap;
}

.container .card:hover {
    flex-grow: 10;
}

.container .card:hover img {
    filter: grayscale(0);
}

.container .card:hover .card__head {
    text-align: center;
    top: calc(100% - 2em);
    color: white;
    background: rgba(0, 0, 0, 0.5);
    font-size: 2em;
    transform: rotate(0deg) skew(-5deg);
}

.container .card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all 1s ease-in-out;
    filter: grayscale(100%);
}

.container .card:not(:nth-child(5)) {
    background: transparent;
    margin-right: 1em;
}

修改后标题会居中显示在卡片列表顶部,原有卡片悬停交互效果完全保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:27:01