css寫的常見圖形


.aly-tooltip {
  display: inline-block;
  padding: 5px;
  padding-left: 15px;
  padding-right: 15px;
  background: #FFFFFF;
  border: 1px solid #D7D8D9;
  box-shadow: 0 0 15px 0 rgba(0,0,0,0.15);
  position: relative;
  left: 10px;
  font-size: 12px;
  width: auto;
  color: #777F84;
}
.aly-tooltip::before {
  content: "";
  position: absolute;
  display: inline-block;
  width: 10px;
  height: 10px;
  border: 1px solid #ddd;
  border-right: none;
  border-top: none;
  transform: rotate(45deg);
  top: 8px;
  left: -6px;
  background: #fff;
  box-shadow: -1px 1px 2px #ddd;
}

  以上就是一個對話框,小角的顏色可隨意換

  一直都沒有為css的分類寫點東西,今天找了一些資料來寫一寫這個css的常見圖形,開發中會用到的哦!

    

從最簡單的正方形說:

width: 100px;
height: 100px;
background: red;

長方形:

width: 200px;
height: 100px;
background: red;

 

圓:

width: 100px;
height: 100px;
background: red;
-moz-border-radius: 50px;
-webkit-border-radius: 50px;
border-radius: 50px;

 

橢圓:

width: 200px;
height: 100px;
background: red;
-moz-border-radius: 100px / 50px;
-webkit-border-radius: 100px / 50px;
border-radius: 100px / 50px;

 

上三角:

width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid red;

 

下三角:

#triangle-down {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-top: 100px solid red;

 

左三角:

width: 0;
height: 0;
border-top: 50px solid transparent;
border-right: 100px solid red;
border-bottom: 50px solid transparent;

 

右三角:

width: 0;
height: 0;
border-top: 50px solid transparent;
border-left: 100px solid red;
border-bottom: 50px solid transparent;

 

左上三角:

width: 0;
height: 0;
border-top: 100px solid red;
border-right: 100px solid transparent;

 

右上三角:

width: 0;
height: 0;
border-top: 100px solid red;
border-left: 100px solid transparent;

 

右下三角:

width: 0;
height: 0;
border-bottom: 100px solid red;
border-left: 100px solid transparent;

 

左小三角:

width: 0;
height: 0;
border-bottom: 100px solid red;
border-right: 100px solid transparent;

 

梯形:

border-bottom: 100px solid red;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
height: 0;
width: 100px;

 

還有一個對話框:

#talkbubble {
width: 120px;
height: 80px;
background: red;
position: relative;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
}
#talkbubble:before {
content:"";
position: absolute;
right: 100%;
top: 26px;
width: 0;
height: 0;
border-top: 13px solid transparent;
border-right: 26px solid red;
border-bottom: 13px solid transparent;
} 

恩,好,常見的圖形這些差不多了,那么直角梯形,平行四邊形怎么搞呢?還有保證里面的文字是正的。

看代碼:

html

<div class="btn">home</div> 

css :

.btn{
        position: relative;
        width: 150px;
        height: 40px;
        text-align: center;
        line-height: 40px;
 }
.btn:after{
        position:absolute;
        content: '';
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        background-color: #fb3;

        z-index: -1; /* 保證背景不會覆蓋住文字 */
        transform: skew(-45deg);
        -moz-transform: skew(-45deg);
        -ms-transform: skew(-45deg);
        -webkit-transform: skew(-45deg); 
   }

那么這這直角梯形呢

     

     

這個就需要這個css3中的perspective的屬性,放在父元素上,然后在子元素上寫transform的樣式:

html 

<div class="parent">
         <div class="child">
             
         </div>
    </div>
    <p></p>
  <div class="parent2">
         <div class="child">
             
         </div>
  </div>

css:

.parent {
            width: 100px;
            height: 100px;
            background-color: #ddd;
            background-color: #fb3;
            transform: perspective(20px) rotatex(5deg);
            transform-origin: right;
       }

        .parent2 {
            width: 100px;
            height: 100px;
            background-color: #ddd;
            background-color: #fb3;
            transform: perspective(20px) rotatex(5deg);
            transform-origin: left;
       }
html
<div class="parent3">
         <div class="child">
             
         </div>
    </div>

css:

.parent3 {
            width: 100px;
            height: 100px;
            background-color: #ddd;
            background-color: #fb3;
            transform: perspective(20px) rotatex(-5deg);
            transform-origin: left;
       }

 

下面的倒梯形,就只需要在正梯形的基礎上,將rotate(-5deg);

上面提到:背景圖形有旋轉變化,但是里面的文字去不能失真,上面用偽元素的方法可以實現,也可以這樣做,父元素可以旋轉正的多少度,然后他的子元素在旋轉這個負的這個度數 就OK了;

父元素:
.messages_margin20>div>div>div:nth-of-type(2)>a{
    border-radius: 10px;
    transform: skew(-30deg);
    display: block;
    background: linear-gradient(to right, #a20000, #8e0000, #a20000); 
    -moz-transform: skew(-30deg);
    -ms-transform: skew(-30deg);
    -webkit-transform: skew(-30deg);
}

子元素:

.messages_margin20>div>div>div:nth-of-type(2)>a  .messages_col {
    transform: skew(30deg);

    -moz-transform: skew(30deg);
    -ms-transform: skew(30deg);
    -webkit-transform: skew(30deg); 

}

(這個代碼源於今日的工作項目中的內容)

 

每日一句:Love a person too much,the heart will be drunk; hate a person too long,the heart will be broken. 

翻譯:愛一個人太深,心會醉;恨一個人太久,心會碎。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM