老师您好,麻烦看看这两种方式有没有优化的地方,以及题目里提到的两个元素重叠在一起是什么方法呢?没有这个思路

来源:2-28 项目作业

困惑小张

2022-06-02 16:53:19

方法一:用边框实现

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        .father{

            margin: 0;

            padding: 0;

            width: 500px;

            height: 180px;

            overflow: hidden;

            position: relative;

        }

        .box1,.box2,.box3,.box4,.box5{

            margin:0 auto;

            padding:0;

            border-radius: 50%;

            position: absolute;

        }

        

        .box1{

            width: 300px;

            height: 300px;

            border: 20px solid orange;

            left: 80px;

            top: 80px;

        }

        .box2{

            width: 340px;

            height: 340px;

            border: 20px solid yellow;

            left: 60px;

            top: 60px;

        }

        .box3{

            width: 380px;

            height: 380px;

            border: 20px solid green;

            left: 40px;

            top: 40px;

        }

        .box4{

            width: 420px;

            height: 420px;

            border: 20px solid blue;

            left: 20px;

            top: 20px;

        }

        .box5{

            width: 460px;

            height: 460px;

            border: 20px solid purple;

        }

    </style>

</head>

<body>


    <div class="father">

        <div class="box1"></div>

        <div class="box2"></div>

        <div class="box3"></div>

        <div class="box4"></div>

        <div class="box5"></div>

    </div>


</body>

</html>



方法二:用径向渐变实现

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        div{

            margin: 0;

            padding: 0;

            width: 500px;

            height: 230px;

            overflow: hidden;

        }


        p{

            border-radius: 50%;

            width: 500px;

            height: 500px;

            background-image: radial-gradient(50% 50%,white 0 50%,orange 50% 60%,yellow 60% 70%,green 70% 80%,blue 80% 90%,purple 90%);

        }

    </style>

</head>

<body>

    <div>

        <p></p>

    </div>

</body>

</html>


写回答

1回答

好帮手慕慕子

2022-06-02

同学你好,对于你的问题解答如下:

1、两种方式效果实现都是对的,代码也很简洁,不用再优化了。

2、题目中提到的元素重叠在一起,就是同学粘贴的代码中的第一种方式,元素绝对定位后堆叠在一起,结合边框实现效果。

祝学习愉快~

0

前端工程师

前端入门如同写字,如果你不知道从哪开始,那就选择前端(含Vue3.x,React17,TS)

20327 学习 · 17877 问题

查看课程