Create a cross shape in CSS

前端 未结 5 624
暗喜
暗喜 2020-12-03 17:05

IS it possible, I know all the following shapes are possible in this link:

http://css-tricks.com/examples/ShapesOfCSS/

but cross must be possible too. When I

5条回答
  •  [愿得一人]
    2020-12-03 17:54

    You could achieve something like this with pseudoelements only:

    http://jsbin.com/upiyoc/1/edit

    #cross {
       width: 100px;
       height: 100px;
       position: relative;
    }
    
    #cross:before, #cross:after {
      content: "";
      position: absolute;
      z-index: -1;
      background: #d00;
    }
    
    #cross:before {
      left: 50%;
      width: 30%;
      margin-left: -15%;
      height: 100%;
    }
    
    #cross:after {
      top: 50%;
      height: 30%;
      margin-top: -15%;
      width: 100%;
    }
    

    The size of the cross will proportionally scale, according to the width and height of the #cross element


    Update: another solution (using less code) could simply involve multiple linear-gradients (without pseudolements) e.g.

    http://codepen.io/anon/pen/zxwgPo

    #cross {
      width: 100px;
      height: 100px;
    
      background: linear-gradient(to bottom, transparent 35%, 
                                             #d00 35%, 
                                             #d00 65%,  
                                             transparent 65%),
    
                  linear-gradient(to right, transparent 35%, 
                                             #d00 35%, 
                                             #d00 65%,  
                                             transparent 65%),
    }
    

提交回复
热议问题