如何使用纯 CSS(border-radius 和 clip)属性画出半圆

1、使用border-radius画半圆

把div高度(height)设为宽度(width)的一半,并且只设置左上角和右上角的圆角半径与元素的高度一致,而右下角和左下角的圆角半径设置为0。

<!DOCTYPE html>
<html>

  <head>
    <meta charset="UTF-8">
    <style>
      * {
        margin: 0;
        padding: 0;
      }

      .clearfix {
        zoom: 1;
        /*为IE6,7的兼容性设置*/
      }

      .clearfix:after {
        content: '.';
        display: block;
        height: 0;
        clear: both;
        visibility: hidden;
      }

      ul li {
        list-style: none;
        float: left;
        margin: 50px 0 50px 20px;
        text-align: center;
      }

      li {
        background: red;
      }

      h2 {
        margin-top: 20px;
      }

      .circle1 {
        width: 100px;
        height: 50px;
        border-radius: 50px 50px 0 0;
        line-height: 50px;
      }

      .circle2 {
        width: 50px;
        height: 100px;
        border-radius: 0 50px 50px 0;
        line-height: 100px;
      }

      .circle3 {
        width: 100px;
        height: 50px;
        border-radius: 0 0px 50px 50px;
        line-height: 50px;
      }

      .circle4 {
        width: 50px;
        height: 100px;
        border-radius: 50px 0 0 50px;
        line-height: 100px;
      }

      .circle5 {
        width: 100px;
        height: 100px;
        border-radius: 50px;
        line-height: 100px;
      }
    </style>
  </head>

  <body>
    <div>
      <h2>用border-radius实现半圆</h2>
      <ul class="clearfix">
        <li class="circle1">上边圆</li>
        <li class="circle2">左边圆</li>
        <li class="circle3">下边圆</li>
        <li class="circle4">左边圆</li>
        <li class="circle5">全圆</li>
      </ul>
    </div>
  </body>
</html>

效果:
border-radius画半圆
2、使用clip属性画半圆

clip 属性剪裁绝对定位元素。

当一幅图像的尺寸大于包含它的元素时会发生什么呢?“clip” 属性允许您规定一个元素的可见尺寸,这样此元素就会被修剪并显示为这个形状。

说明

这个属性用于定义一个剪裁矩形。对于一个绝对定义元素,在这个矩形内的内容才可见。出了这个剪裁区域的内容会根据 overflow
的值来处理。剪裁区域可能比元素的内容区大,也可能比内容区小。

示例:

<!DOCTYPE html>
<html>

  <head>
    <meta charset="UTF-8">
    <style>
      * {
        margin: 0;
        padding: 0;
      }

      .clearfix {
        zoom: 1;
        /*为IE6,7的兼容性设置*/
      }

      .clearfix:after {
        content: '.';
        display: block;
        height: 0;
        clear: both;
        visibility: hidden;
      }

      ul li {
        list-style: none;
        float: left;
        margin: 50px 0 50px 20px;
        text-align: center;
      }

      li {
        background: red;
      }

      h2 {
        margin-top: 20px;
      }

      .demo {
        /*左半圆*/
        position: absolute;
        /*clip 属性剪裁绝对定位元素。也就是说,只有 position:absolute 的时候才是生效的。*/
        width: 100px;
        height: 100px;
        border-radius: 50px;
        /* line-height: 50px; */
        clip: rect(0px 50px 100px 0px);
        /*唯一合法的形状值是:rect (top, right, bottom, left)*/
      }

      .right-circle {
        /*右半圆*/
        left: 200px;
        clip: rect(0px 100px 100px 50px);
        /*唯一合法的形状值是:rect (top, right, bottom, left)*/
      }
    </style>
  </head>

  <body>
    <div>
      <h2>css3的clip 方法剪裁实现半圆</h2><br />
      <p style="color: red;">
        clip 属性剪裁绝对定位元素。也就是说,只有 position:absolute 的时候才是生效的。
        唯一合法的形状值是:rect (top, right, bottom, left)
      </p>
      <ul class="clearfix" style="position: relative;">
        <li class="demo">左半圆</li>
        <li class="demo right-circle">右半圆</li>
        <li></li>
      </ul>
    </div>
  </body>

</html>

效果:
clip

参考文章:
CSS半圆怎么画?

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值