zoukankan      html  css  js  c++  java
  • css3绘制中国结

      1 <!doctype html>
      2 <html>
      3     <head>
      4         <title></title>
      5         <meta charset='utf-8'>
      6         <style type="text/css">
      7         :root,body{
      8             height: 100%;
      9             width: 100%;
     10         }
     11         .z{
     12             width:200px;
     13             height: 400px;
     14             left: 400px;
     15             position: absolute;
     16         }
     17         .z div{
     18             position: absolute;
     19             
     20         }
     21         .z .red{
     22             background-color: red;
     23             box-shadow: 0px 0px 1px 0 #666;
     24         }
     25         .f1{
     26             width: 18px;
     27             height: 18px;
     28             -webkit-transform: rotate(45deg);
     29                -moz-transform: rotate(45deg);
     30                 -ms-transform: rotate(45deg);
     31                  -o-transform: rotate(45deg);
     32                     transform: rotate(45deg);
     33             top:0;
     34             border-radius: 2px;
     35         }
     36         .l1,.l2,.l3,.l4{
     37             width:2px;
     38             height: 10px;
     39         }
     40         .c1{
     41             width:14px;
     42             height: 14px;
     43             border-radius: 7px;
     44             box-shadow: 0px 0px 1px 0 #666;
     45             z-index: 10;
     46         }
     47         .c1-1 {
     48             position: relative;
     49             width: 40px;
     50             height: 12px;
     51         }
     52         .c1-1:before,
     53         .c1-1:after {
     54             box-shadow: 0px 0px 1px 0 #666;
     55             content: "";
     56             position: absolute;
     57             top: 0;
     58             left: 0;
     59             width: 8px;
     60             height: 14px;    
     61             border: 2px solid red;
     62             border-radius:50%   50%  50%  50%  / 30%   30%   70%  70%;
     63             -webkit-transform: rotate(-90deg);
     64                -moz-transform: rotate(-90deg);
     65                 -ms-transform: rotate(-90deg);
     66                  -o-transform: rotate(-90deg);
     67                     transform: rotate(-90deg);
     68         }
     69          
     70         .c1-1:after {
     71             left: auto;
     72             right: 0;
     73             border-radius:50%   50%  50%  50%  / 70%   70%   30%  30%;
     74             -webkit-transform: rotate(-90deg);
     75                -moz-transform: rotate(-90deg);
     76                 -ms-transform: rotate(-90deg);
     77                  -o-transform: rotate(-90deg);
     78                     transform: rotate(-90deg);
     79         }
     80         .r{
     81             width:80px;
     82             height: 80px;
     83             z-index: 10;
     84             -webkit-transform: rotate(45deg);
     85                -moz-transform: rotate(45deg);
     86                 -ms-transform: rotate(45deg);
     87                  -o-transform: rotate(45deg);
     88                     transform: rotate(45deg);
     89         }
     90         .r .ro{
     91             position: relative;
     92             display: table;
     93             border-collapse:separate;
     94              border-spacing: 1px;
     95         }
     96         .r .b{
     97             width:15px;
     98             height: 14px;
     99             position: relative;
    100             display: table-cell;
    101             border-radius: 2px;
    102         }
    103         .c2{
    104             width:10px;
    105             height: 10px;
    106             border-radius: 5px;
    107         }
    108         .c3{
    109             width:10px;
    110             height: 10px;
    111             border-radius: 5px 5px 0 0;
    112         }
    113         .c4{
    114             width:14px;
    115             height: 14px;
    116             border-radius: 8px;
    117             z-index: 10;
    118         }
    119         .k{
    120             width: 10px;
    121             height: 12px;
    122         }
    123         .k1{
    124             width: 14px;
    125             height: 6px;
    126         }
    127         .s{
    128             height: 150px;
    129             display: table;
    130             border-collapse:separate;
    131              border-spacing: 1px;
    132         }
    133         .ss{
    134             width: 1px;
    135             height: 100%;
    136             position: relative !important;
    137             display: table-cell;
    138         }
    139         .i1 {
    140             position: relative;
    141             width: 162px;
    142             height: 46px;
    143         }
    144          
    145         .i1:before,
    146         .i1:after {
    147             box-shadow: 0px 0px 1px 0 #666;
    148             content: "";
    149             position: absolute;
    150             top: 0;
    151             left: 0;
    152             width: 30px;
    153             height: 40px;    
    154             border: 3px solid red;
    155                border-radius:50%   50%  50%  50%  / 30%   30%   70%  70%;
    156             -webkit-transform: rotate(-90deg);
    157                -moz-transform: rotate(-90deg);
    158                 -ms-transform: rotate(-90deg);
    159                  -o-transform: rotate(-90deg);
    160                     transform: rotate(-90deg);
    161         }
    162          
    163         .i1:after,.i2:after {
    164             left: auto;
    165             right: 0;
    166             border-radius:50%   50%  50%  50%  / 70%   70%   30%  30%;
    167             -webkit-transform: rotate(-90deg);
    168                -moz-transform: rotate(-90deg);
    169                 -ms-transform: rotate(-90deg);
    170                  -o-transform: rotate(-90deg);
    171                     transform: rotate(-90deg);
    172         } 
    173         .i2 {
    174             position: relative;
    175             width: 136px;
    176             height: 24px;
    177         }
    178         .i2:before,
    179         .i2:after {
    180             box-shadow: 0px 0px 1px 0 #666;
    181             content: "";
    182             position: absolute;
    183             top: 0;
    184             left: 0;
    185             width: 12px;
    186             height: 20px;    
    187             border: 2px solid red;
    188             border-radius:50%   50%  50%  50%  / 30%   30%   70%  70%;
    189             -webkit-transform: rotate(-90deg);
    190                -moz-transform: rotate(-90deg);
    191                 -ms-transform: rotate(-90deg);
    192                  -o-transform: rotate(-90deg);
    193                     transform: rotate(-90deg);
    194         }
    195          
    196         .i2:after {
    197             left: auto;
    198             right: 0;
    199             border-radius:50%   50%  50%  50%  / 70%   70%   30%  30%;
    200             -webkit-transform: rotate(-90deg);
    201                -moz-transform: rotate(-90deg);
    202                 -ms-transform: rotate(-90deg);
    203                  -o-transform: rotate(-90deg);
    204                     transform: rotate(-90deg);
    205         }  
    206         .e1 {
    207             position: relative;
    208             width: 12px;
    209             height: 24px;
    210         }
    211         .e1:before,
    212         .e1:after {
    213             box-shadow: 0px 0px 1px 0 #666;
    214             content: "";
    215             position: absolute;
    216             top: 0;
    217             left: 0;
    218             width: 12px;
    219             height: 20px;    
    220             border: 2px solid red;
    221             border-radius:50%   50%  50%  50%  / 30%   30%   70%  70%;
    222             -webkit-transform: rotate(-90deg);
    223                -moz-transform: rotate(-90deg);
    224                 -ms-transform: rotate(-90deg);
    225                  -o-transform: rotate(-90deg);
    226                     transform: rotate(-90deg);
    227         }
    228         .m{
    229             width:80px;
    230             height: 80px;
    231             -webkit-transform: rotate(45deg);
    232                -moz-transform: rotate(45deg);
    233                 -ms-transform: rotate(45deg);
    234                  -o-transform: rotate(45deg);
    235                     transform: rotate(45deg);
    236 
    237         }
    238         .n{
    239             width:80px;
    240             height: 80px;
    241             -webkit-transform: rotate(-45deg);
    242                -moz-transform: rotate(-45deg);
    243                 -ms-transform: rotate(-45deg);
    244                  -o-transform: rotate(-45deg);
    245                     transform: rotate(-45deg);
    246 
    247         }
    248         .m .rx,.n .rx{
    249             position: relative;
    250             display: table;
    251             border-collapse:separate;
    252              border-spacing: 1px;
    253         }
    254         .m .rb , .m .rb-space,.n .rb , .n .rb-space{
    255             position: relative;
    256              width: 120px;
    257             height: 14px;
    258             display: table-cell;
    259         }
    260          
    261         .m .rb:before,
    262         .m .rb:after,.n .rb:before,
    263         .n .rb:after {
    264             box-shadow: 0px 0px 1px 0 #666;
    265             content: "";
    266             position: absolute;
    267             top: 0;
    268             left: -8px;
    269             width: 6px;
    270             height: 10px;    
    271             border: 2px solid red;
    272                border-radius:50%   50%  50%  50%  / 40%   40%   60%  60%;
    273             -webkit-transform: rotate(-90deg);
    274                -moz-transform: rotate(-90deg);
    275                 -ms-transform: rotate(-90deg);
    276                  -o-transform: rotate(-90deg);
    277                     transform: rotate(-90deg);
    278         }
    279          
    280         .m .rb:after,.n .rb:after{
    281             left: auto;
    282             right: -8px;
    283             border-radius:50%   50%  50%  50%  / 60%   60%   60%  60%;
    284             -webkit-transform: rotate(-90deg);
    285                -moz-transform: rotate(-90deg);
    286                 -ms-transform: rotate(-90deg);
    287                  -o-transform: rotate(-90deg);
    288                     transform: rotate(-90deg);
    289         } 
    290         </style>
    291         <script type="text/javascript" src='../bower_components/jquery/dist/jquery.js'></script>
    292         <script type="text/javascript">
    293         $(document).ready(function(){
    294             var $z  = $('.z'), $f1 = $('.f1') , $l1 = $('.l1') , $c1 = $('.c1') , $l2 = $('.l2') , $r = $('.r') , $l3 = $('.l3') , $c2 = $('.c2') , $l4 = $('.l4') , $c3 = $('.c3') , $c4 = $('.c4'),
    295                 $k = $('.k') , $k1 = $('.k1') , $s = $('.s') , $i1 = $('.i1') , $i2 = $('.i2'),
    296                 $e1 = $('.e1') , $c1_1 = $('.c1-1'),
    297                 $m = $('.m') , $n = $('.n');
    298             $f1.css({
    299                 left : ($z.width()  - $f1.width()) / 2 , 
    300                 top : Math.sqrt(2 * Math.pow($f1.height() / 2 , 2)) - $f1.height() / 2
    301             });
    302             $l1.css({
    303                 left : ($z.width()  - $l1.width()) / 2,
    304                 top : Math.sqrt(2 * Math.pow($f1.height() , 2))
    305             });
    306             $c1.css({
    307                 left : ($z.width()  - $c1.width()) / 2,
    308                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height()
    309             });
    310             $l2.css({
    311                 left : ($z.width()  - $l2.width()) / 2,
    312                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height()
    313             });
    314             $r.css({
    315                 left : ($z.width()  - $r.width()) / 2,
    316                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($r.height() / 2 , 2)) - $r.height() / 2
    317             });
    318             $l3.css({
    319                 left : ($z.width()  - $l3.width()) / 2,
    320                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($r.height() , 2))
    321             });
    322             $c2.css({
    323                 left : ($z.width()  - $c2.width()) / 2,
    324                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($r.height() , 2)) + $l3.height()
    325             });
    326             $l4.css({
    327                 left : ($z.width()  - $l4.width()) / 2,
    328                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($r.height() , 2)) + $l3.height() + $c2.height()
    329             });
    330             $c3.css({
    331                 left : ($z.width()  - $c3.width()) / 2,
    332                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($r.height() , 2)) + $l3.height() + $c2.height() + $l4.height()
    333             });
    334             $c4.css({
    335                 left : ($z.width()  - $c4.width()) / 2,
    336                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($r.height() , 2)) + $l3.height() + $c2.height() + $l4.height() + $c3.height() - 4
    337             });
    338             $k.css({
    339                 left : ($z.width()  - $k.width()) / 2,
    340                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($r.height() , 2)) + $l3.height() + $c2.height() + $l4.height() + $c3.height() - 4 +  $c4.height() - 4
    341             });
    342             $k1.css({
    343                 left : ($z.width()  - $k1.width()) / 2,
    344                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($r.height() , 2)) + $l3.height() + $c2.height() + $l4.height() + $c3.height() - 4 +  $c4.height() - 4 + $k.height()
    345             });
    346             $s.css({
    347                 left : ($z.width()  - $k1.width()) / 2,
    348                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($r.height() , 2)) + $l3.height() + $c2.height() + $l4.height() + $c3.height() - 4 +  $c4.height() - 4 + $k.height() + $k1.height()
    349             });
    350 
    351             $i1.css({
    352                 left : ($z.width()  - $i1.width()) / 2,
    353                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($r.height() , 2)) / 2 - $i1.height() / 2
    354             });
    355             $i2.css({
    356                 left : ($z.width()  - $i2.width()) / 2,
    357                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($r.height() , 2)) / 2 - $i2.height() / 2
    358             });
    359             $c1_1.css({
    360                 left : ($z.width()  - $c1_1.width()) / 2,
    361                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + ($c1_1.height() - $c1.height()) / 2
    362             });
    363             $m.css({
    364                 left : ($z.width()  - $m.width()) / 2,
    365                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($m.height() / 2 , 2)) - $m.height() / 2
    366             });
    367             $n.css({
    368                 left : ($z.width()  - $n.width()) / 2,
    369                 top : Math.sqrt(2 * Math.pow($f1.height() , 2)) + $l1.height() + $c1.height() + $l2.height() + Math.sqrt(2 * Math.pow($n.height() / 2 , 2)) - $n.height() / 2
    370             });
    371         });
    372         </script>
    373     </head>
    374     <body>
    375         <div class='z'>
    376             <div class='f1 red'></div>
    377             <div class='l1 red'></div>
    378             <div class='c1 red'></div>
    379             <div class='c1-1'></div>
    380             <div class='l2 red'></div>
    381             <div class='r'>
    382                 <div class='ro'>
    383                     <div class='b red'></div>
    384                     <div class='b red'></div>
    385                     <div class='b red'></div>
    386                     <div class='b red'></div>
    387                     <div class='b red'></div>
    388                 </div>
    389                 <div class='ro'>
    390                     <div class='b red'></div>
    391                     <div class='b red'></div>
    392                     <div class='b red'></div>
    393                     <div class='b red'></div>
    394                     <div class='b red'></div>
    395                 </div>
    396                 <div class='ro'>
    397                     <div class='b red'></div>
    398                     <div class='b red'></div>
    399                     <div class='b red'></div>
    400                     <div class='b red'></div>
    401                     <div class='b red'></div>
    402                 </div>
    403                 <div class='ro'>
    404                     <div class='b red'></div>
    405                     <div class='b red'></div>
    406                     <div class='b red'></div>
    407                     <div class='b red'></div>
    408                     <div class='b red'></div>
    409                 </div>
    410                 <div class='ro'>
    411                     <div class='b red'></div>
    412                     <div class='b red'></div>
    413                     <div class='b red'></div>
    414                     <div class='b red'></div>
    415                     <div class='b red'></div>
    416                 </div>
    417             </div>
    418             <div class='l3 red'></div>
    419             <div class='c2 red'></div>
    420             <div class='l4 red'></div>
    421             <div class='c3 red'></div>
    422             <div class='c4 red'></div>
    423             <div class='k red'></div>
    424             <div class='k1 red'></div>
    425             <div class='s'>
    426                 <div class='ss red'></div>
    427                 <div class='ss red'></div>
    428                 <div class='ss red'></div>
    429                 <div class='ss red'></div>
    430                 <div class='ss red'></div>
    431                 <div class='ss red'></div>
    432                 <div class='ss red'></div>
    433             </div>
    434             <div class='i1'></div>
    435             <div class='i2'></div>
    436             <div class='m'>
    437                 <div class='rx'>
    438                     <div class='rb-space'></div>
    439                 </div>
    440                 <div class='rx'>
    441                     <div class='rb'></div>
    442                 </div>
    443                 <div class='rx'>
    444                     <div class='rb'></div>
    445                 </div>
    446                 <div class='rx'>
    447                     <div class='rb'></div>
    448                 </div>
    449                 <div class='rx'>
    450                     <div class='rb-space'></div>
    451                 </div>
    452             </div>
    453             <div class='n'>
    454                 <div class='rx'>
    455                     <div class='rb-space'></div>
    456                 </div>
    457                 <div class='rx'>
    458                     <div class='rb'></div>
    459                 </div>
    460                 <div class='rx'>
    461                     <div class='rb'></div>
    462                 </div>
    463                 <div class='rx'>
    464                     <div class='rb'></div>
    465                 </div>
    466                 <div class='rx'>
    467                     <div class='rb-space'></div>
    468                 </div>
    469             </div>
    470         </div>
    471     </body>
    472 </html>

  • 相关阅读:
    Codeforces Round #401 (Div. 2)解题报告
    ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) 解题报告
    (线段树)hdoj 3308-LCIS
    Codeforces Round #399 (Div. 1 + Div. 2, combined) D题Jon and Orbs(dp)解题报告
    2019 Multi-University Training Contest 1
    2019 Multi-University Training Contest 6
    2019牛客暑期多校训练营(第八场)
    模板
    2019 Multi-University Training Contest 8
    2019 Multi-University Training Contest 9
  • 原文地址:https://www.cnblogs.com/tatame/p/4712261.html
Copyright © 2011-2022 走看看