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

请教如何用CSS实现页面元素两端的半半圆曲线效果

用基础CSS实现角落凹入半半圆曲线

你可以通过相对定位+伪元素+圆形背景的方式实现这个效果,完全不用SVG,只用你已经掌握的基础CSS属性:

实现步骤

  • 给黄色方块添加position: relative,让伪元素可以相对于它定位
  • 使用伪元素配合阴影生成与页面背景同色的圆形,放在方块的角落,盖住黄色区域形成凹入的半半圆曲线

修改后的完整代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>new_web</title>
  <style>
    body {
      display: flex;
      justify-content: center;
      align-items: center;
      background: #328FC1;
      margin: 0;
      min-height: 100vh; /* 确保body占满视口高度,让方块完全居中 */
    }

    div {
      width: 140px;
      height: 140px;
      background: #FADE8B;
      position: relative; /* 为伪元素提供定位基准 */
    }

    /* 用伪元素生成蓝色圆形,盖住角落形成凹口 */
    div::before,
    div::after {
      content: "";
      position: absolute;
      width: 40px;
      height: 40px;
      background: #328FC1;
      border-radius: 50%; /* 将正方形转为圆形 */
    }

    /* 左上角和右上角的圆形 */
    div::before {
      top: -20px; /* 向上偏移半个圆的半径 */
      left: -20px; /* 向左偏移半个圆的半径 */
      box-shadow: 140px 0 0 #328FC1; /* 生成对称的右上角圆形 */
    }

    /* 左下角和右下角的圆形 */
    div::after {
      bottom: -20px; /* 向下偏移半个圆的半径 */
      left: -20px; /* 向左偏移半个圆的半径 */
      box-shadow: 140px 0 0 #328FC1; /* 生成对称的右下角圆形 */
    }
  </style>
</head>

<body>
  <div></div>
</body>

</html>

代码说明

  • position: relative:让伪元素能以黄色方块为基准进行定位
  • border-radius: 50%:将正方形伪元素转为圆形,颜色与页面背景一致,这样盖住黄色方块角落时会形成凹入效果
  • box-shadow:用阴影快速生成对称的圆形,避免重复编写多个伪元素,简化代码
  • 偏移值-20px:因为圆形直径为40px,半径20px,偏移半个半径能让圆形刚好对齐方块角落,形成完美的凹入曲线

你可以调整width:40px和height:40px来改变凹口的大小,数值越大,凹入的曲线越明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:48:24