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

CSS实现正方形旋转但内部数字不旋转的问题求助

解决CSS旋转菱形后内部数字保持不旋转的问题

要实现正方形旋转成菱形后内部数字不旋转,核心思路是父容器旋转,内部数字元素反向旋转,抵消父容器的旋转效果。下面提供两种适配你需求的方案:

方案一:用正方形旋转实现菱形(更直观易维护)

调整HTML结构,将数字放在独立子元素中,通过父元素旋转形成菱形,子元素反向旋转保持数字正向:

<div class="diamond">
  <span class="number">1</span>
</div>
.diamond {
  width: 100px;
  height: 100px;
  background-color: #EB008B;
  transform: rotate(45deg);
  position: relative;
  margin: 50px; /* 调整margin避免容器溢出页面 */
}

.number {
  position: absolute;
  top: 50%;
  left: 50%;
  /* 先居中再反向旋转,抵消父元素的45度旋转 */
  transform: translate(-50%, -50%) rotate(-45deg);
  font: 40pt Arial, sans-serif;
  color: white;
}

方案二:沿用你原有的border拼接菱形方式

保留你原有的border拼接逻辑,给菱形容器添加旋转,同时给数字子元素反向旋转并调整位置:

<div class="diamond">
  <span class="number">1</span>
</div>
.diamond {
  width: 0;
  height: 0;
  border: 50px solid transparent;
  border-bottom-color: #EB008B;
  position: relative;
  top: -50px;
  transform: rotate(45deg); /* 旋转菱形 */
}

.diamond:after {
  content: '';
  position: absolute;
  left: -50px;
  top: 50px;
  width: 0;
  height: 0;
  border: 50px solid transparent;
  border-top-color: #EB008B;
}

.number {
  position: absolute;
  top: 25px;
  left: -25px;
  transform: rotate(-45deg); /* 反向旋转数字,恢复正向 */
  font: 40pt Arial, sans-serif;
  color: white;
}

两种方案都能实现“菱形旋转、数字保持正向”的效果,方案一的结构更简洁,后续调整尺寸或样式更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:51:02