css选择器before和after实战

1. 效果图:

 

 

 2. 源码:

 1 <!DOCTYPE html>
 2 <html>
 3 
 4 <head>
 5     <meta charset="utf-8" />
 6     <title>css-glasses</title>
 7     <link rel="stylesheet" type="text/css" href="style.css" />
 8 </head>
 9 
10 <body>
11     <div class="glasses"></div>
12 </body>
13 
14 </html>
 1 @charset "utf-8";
 2 *{ padding: 0; margin: 0; }
 3 
 4 .glasses {
 5   margin: 250px auto;
 6   border-top-right-radius: 50% 100%;
 7   border-top-left-radius: 50% 100%;
 8   border-bottom-left-radius: 0px;
 9   border-bottom-right-radius: 0px;
10   font-size: 150px;
11   position: relative;
12   height: 0.1em;
13   width: 0.4em;
14   border-top: 0.05em solid #2C2C2C;
15   box-shadow: -0.2em -0.3em 0 -0.07em #2C2C2C,0em -0.3em 0 -0.07em #2C2C2C,0.2em -0.3em 0 -0.07em #2C2C2C;
16 }
17 .glasses:before {
18   box-shadow: 0.55em 0 0 -0.47em #2C2C2C;
19   position: absolute;
20   content: "";
21   border-top-left-radius: 100% 75%;
22   border-top-right-radius: 142% 100%;
23   border-bottom-right-radius: 91% 197%;
24   border-bottom-left-radius: 200% 200%;
25   height: 1em;
26   width: 1.1em;
27   background: #2C2C2C;
28   left: 0.37em;
29   top: -0.4em;
30 }
31 .glasses:after {
32   box-shadow: -0.55em 0 0 -0.47em #2C2C2C;
33   position: absolute;
34   content: "";
35   border-top-right-radius: 100% 75%;
36   border-top-left-radius: 142% 100%;
37   border-bottom-left-radius: 91% 197%;
38   border-bottom-right-radius: 200% 200%;
39   height: 1em;
40   width: 1.1em;
41   background: #2C2C2C;
42   left: -1.06em;
43   top: -0.4em;
44 }

3. 思路:

  3.1 把眼镜分为三部分, 分别为中间的两条杠, 右边的镜片, 左边的镜片. 

  3.2 以中间的杠为中心, 选择器before表示右边的镜片和外面的杠, 选择器after表示左边的镜片和外面的杠

 

posted @ 2020-02-13 11:12  爱美的女孩儿  阅读(440)  评论(0编辑  收藏  举报