使用CSS实现椭圆,三角形,五角星等图形

本文介绍了如何使用CSS来创建各种几何图形,包括椭圆、不同类型的三角形、直角三角形、平行四边形、梯形、五角星、六角星、正五边形以及心形等。通过调整border-radius和transform属性,可以实现这些复杂形状的绘制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.椭圆
border-radius 属性是一个简写属性,用于设置四个 border-*-radius 属性。如果省略 bottom-left,则与 top-right 相同。如果省略 bottom-right,则与 top-left 相同。如果省略 top-right,则与 top-left 相同。

border-radius: 2em 1em 4em / 0.5em 3em;

等价于:

border-top-left-radius: 2em 0.5em;
border-top-right-radius: 1em 3em;
border-bottom-right-radius: 4em 0.5em;
border-bottom-left-radius: 1em 3em;
        #ellipse {
            width: 200px;
            height: 100px;
            background: red;
            color: #fff;
            text-align: center;
            border-radius: 100px/50px;
            /*-webkit-border-radius: 100px/50px;
            -moz-border-radius: 100px/50px;*/
        }

2.上三角形

        #triangle-up {
            width: 0;
            height: 0;
            color: white;
            text-align: center;
            border-left: 50px solid transparent;
            border-right: 50px solid transparent;
            border-bottom: 100px solid red;
        }

3.下三角形

        #triangle-down {
            width: 0;
            height: 0;
            color: white;
            text-align: center;
            border-left: 50px solid transparent;
            border-right: 50px solid transparent;
            border-top: 100px solid red;
        }

4.左三角形

        #triangle-left {
            width: 0;
            height: 0;
            color: white;
            text-align: center;
            border-top: 50px solid transparent;
            border-bottom: 50px solid transparent;
            border-right: 100px solid red;
        }

5.右三角形

        #triangle-right {
            width: 0;
            height: 0;
            color: white;
            text-align: center;
            border-top: 50px solid transparent;
            border-bottom: 50px solid transparent;
            border-left: 100px solid red;
        }

6.左上角是直角的直角三角形

        #triangle-topleft {
            width: 0;
            height: 0;
            border-top: 100px solid red;
            border-right: 100px solid transparent;
        }

7.右上角是直角的直角三角形

        #triangle-topright {
            width: 0;
            height: 0;
            border-top: 100px solid red;
            border-left: 100px solid transparent;
        }

8.左下角是直角的直角三角形

        #triangle-bottomleft {
            width: 0;
            height: 0;
            border-bottom: 100px solid red;
            border-right: 100px solid transparent;
        }

9.右下角是直角的直角三角形

        #triangle-bottomright {
            width: 0;
            height: 0;
            border-bottom: 100px solid red;
            border-left: 100px solid transparent;
        }

10.平行四边形
transform 属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。

        #parallelogram {
            width: 200px;
            height: 150px;
            margin-left: 30px;
            background: red;
            -webkit-transform: skew(-30deg);
            -moz-transform: skew(-30deg);
            -o-transform: skew(-30deg);
            -ms-transform: skew(-30deg);
        }

11.梯形

        #trapezoid {
            width: 100px;
            height: 0;
            border-bottom: 100px solid red;
            border-left: 50px solid transparent;
            border-right: 50px solid transparent;
        }

12.五角星

        #star-five {
            width: 0;
            height: 0;
            color: red;
            margin: 50px 0;
            position: relative;
            display: block;
            border-left: 100px solid transparent;
            border-right: 100px solid transparent;
            border-bottom: 70px solid red;
            -moz-transfrom:rotate(35deg);
            -webkit-transform:rotate(35deg);
            -ms-transform:rotate(35deg);
            -o-transform:rotate(35deg);
        }

        #star-five:before {
            width: 0;
            height: 0;
            border-left: 30px solid transparent;
            border-right: 30px solid transparent;
            border-bottom: 80px solid red;
            position: absolute;
            top: -45px;
            left: -65px;
            color: white;
            display: block;
            content: "";
            -moz-transform:rotate(-35deg);
            -webkit-transform:rotate(-35deg);
            -ms-transform:rotate(-35deg);
            -o-transform:rotate(-35deg); 
        }

        #star-five:after {
            width: 0;
            height: 0;
            display: block;
            position: absolute;
            color: red;
            top: 3px;
            left: -105px;
            border-left: 100px solid transparent;
            border-right: 100px solid transparent;
            border-bottom: 70px solid red;
            content: "";
            -moz-transform:rotate(-70deg);
            -webkit-transform:rotate(-70deg);
            -ms-transform:rotate(-70deg);
            -o-transform:rotate(-70deg);
        }

13.六角星

        #star-six {
            width: 0;
            height: 0;
            border-left: 50px solid transparent;
            border-right: 50px solid transparent;
            border-bottom: 100px solid red;
            position: relative;
        }
        #star-six:after {
            width: 0;
            height: 0;
            border-top: 100px solid red;
            border-left: 50px solid transparent;
            border-right: 50px solid transparent;
            position: absolute;
            content: "";
            top: 30px;
            left: -50px;
        }

14.正五边形

        #pentagon {
            width: 54px;
            position: relative;
            border-width: 50px 18px 0;
            border-style: solid;
            border-color: red transparent;
        }
        #pentagon:before {
            content: "";
            position: absolute;
            width: 0;
            height: 0;
            top: -85px;
            left: -18px;
            border-width: 0 45px 35px;
            border-style: solid;
            border-color: transparent transparent red;
        }

15.心

        #heart {
            width: 100px;
            height: 90px;
            position: relative;
        }

        #heart:before, #heart:after {
            width: 50px;
            height: 80px;
            left: 50px;
            top: 0;
            background-color: red;
            position: absolute;
            content: "";
            -moz-border-radius:50px 50px 0 0;
            border-radius: 50px 50px 0 0;
            -webkit-transform:rotate(-45deg);
            -ms-transform:rotate(-45deg);
            -moz-transform:rotate(-45deg);
            -o-transform:rotate(-45deg);
            transform:rotate(-45deg);
            -webkit-transform-origin:0 100%;
            -ms-transform-origin:0 100%;
            -moz-transform-origin:0 100%;
            -o-transform-origin:0 100%;
            tansform-origin:0 100%;
        }

        #heart:after {
            left: 0;
            -webkit-transform:rotate(45deg);
            -ms-transform:rotate(45deg);
            -moz-transform:rotate(45deg);
            -o-transform:rotate(45deg);
            transform:rotate(45deg);
            -webkit-transform-origin:100% 100%;
            -ms-transform-origin:100% 100%;
            -moz-transform-origin:100% 100%;
            -o-transform-origin:100% 100%;
            transform-origin:100% 100%;
        }

16.提示对话框、气泡对话框

        #talkbubble {
            width: 200px;
            height: 100px;
            background-color: red;
            position: relative;
            border-radius: 10px;
            -webkit-border-radius:10px;
            -moz-border-radius:10px;
            -ms-border-radius:10px;
            -o-border-radius:10px;
        }

        #talkbubble:before {
            width: 0;
            height: 0;
            right: 100%;
            top: 30px;
            position: absolute;
            content: "";
            border-top: 15px solid transparent;
            border-right: 30px solid red;
            border-bottom: 15px solid transparent;
        }

17.钻石

        #diamond {
            width: 50px;
            height: 0;
            border-style: solid;
            border-color: transparent transparent red transparent;
            border-width: 0 25px 25px 25px;
            position: relative;
            margin: 20px 0 50px 0;
        }
        #diamond:after {
            width: 0;
            height: 0;
            top: 25px;
            left: -25px;
            border-style: solid;
            border-color: red transparent transparent transparent;
            border-width: 70px 50px 0 50px;
            position: absolute;
            content: "";
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值