请老师检查一下

请老师检查一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>圆弧制作</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
 
        div {
            width: 200px;
            height: 100px;
            border: 2px solid red;
            margin: 100px auto;
        }
 
        div:nth-child(1) {
            border-radius: 0 50px 10px 50px/ 0 50px 40px 50px;
        }
 
        div:nth-child(2) {
            border-radius: 200px 400px 10px 60px/ 200px 400px 100px 60px;
            transform: rotate(90deg);
        }
 
        div:nth-child(3) {
            border-radius: 45px 13px;
            transform: rotate(90deg);
            position: relative;
            top: 50px;
        }
    </style>
</head>
<body>
    <div></div>
    <div></div>
    <div></div>
</body>
</html>
  1. 请老师检查一下是否还有地方可以修改优化的。

  2. 为啥第二个和第三个div上下的margin值好像不起作用? 是因为使用了transform吗? 还是什么原因呀? 

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

同学你好,代码实现效果可以,不需要优化了。另外,对于margin值理解的也没有问题,很棒。

祝学习愉快!

  • 粉墨登场 提问者 #1
    但是为啥单独用伪类给第二个div设置margin-top没有覆盖之前给所有div设置的margin值呀?伪类加标签选择器权重应该大过一个单独的标签的选择器的
    2020-09-04 12:42:08
提问者 粉墨登场 2020-09-04 10:12:21

但是为啥单独用伪类给第二个div设置margin-top没有覆盖之前给所有div设置的margin值呀?伪类加标签选择器权重应该大过一个单独的标签的选择器的

提问者 粉墨登场 2020-09-03 21:04:05

不对老师,我明白了。 首先每个div都有上下margin值。但是第二个和第三个div因为设置了rotate旋转,所以导致看起来像是margin值无效,但其实上下100的margin值依旧有效。所以如果再次设置的上下margin值没有超过100px,那便是无效的,必须大于100才会有效果。我再次设置的是50px, 我说为什么没有效果呢。

提问者 粉墨登场 2020-09-03 20:57:01

噢 老师,我好像知道了, 是不是应该第二个和第三个div实现了旋转,所以上下margin值其实是移动了旋转过后的左右两边,而relative是以旋转过后的top进行了移动,所以relative有效,而上下margin无效

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码