CSS--border邊框顏色漸變

bangwu6488發表於2016-08-29

     本人前端小白一枚,寫這些心得主要是為了記錄自己的前端路上的成長及感悟。

     廢話不多說,平時我們在做邊框border時,總能看到介面上一些邊框顏色漸變的效果,比較常見的就是qq主選單介面,我們發現他的邊框並不是一條純色的實線,如果對其進行放大,就可以看到下圖所示的內容:

                           

      可以看到,其實它的邊框是由7條寬度為1畫素的實線堆疊起來的,最終達到顏色漸變的效果。

 

      在css中,如果一條邊框線有n畫素的寬度,那麼就可以對其設定n種不同的顏色。

      在程式碼中,我們可以定義一條寬為7px的實線:border: 7px solid #C8C8C8;(不要在意此處設定的顏色,在firefox中後面的程式碼中會被新設定的顏色覆蓋掉)

      如果對border中四邊的邊框同時設定漸變的顏色,如下述程式碼所示:

 <html>  

 <head> 

       <style>

             div{
                 height: 100px;
                 width: 100px;
                 border: 7px solid red;
                 border-color: red green yellow black;

                  }    

         </style>
 </head>
         <body>
                  <div></div>
         </body>
</html>

      執行html檔案後,我們得到的效果如下:

              

 

       程式碼會將我們設定的顏色自動分配給 top、right、bottom、left,以順時針的形式分配。如果我們只設定3個顏色,那麼結果顯而易見,直接分配給top、right、bottom這三個方向的邊框了。因此,為了讓程式碼知道我們不是要按此規則設定邊框顏色,應該分別對每個方向的邊框設定漸變顏色,其程式碼如下:

 

 <html>  

 <head> 

       <style>
                div{
                       height: 100px;
                       width: 100px;
                       background: #E8F5FC;
                       border: 7px solid red;
                      -moz-border-top-colors: #FDFDFD #F9F9F9 #F4F4F4 #ECECEC #E2E2E2 #D6D6D6 #C8C8C8;
                      -moz-border-right-colors: #FDFDFD #F9F9F9 #F4F4F4 #ECECEC #E2E2E2 #D6D6D6 #C8C8C8;
                      -moz-border-bottom-colors: #FDFDFD #F9F9F9 #F4F4F4 #ECECEC #E2E2E2 #D6D6D6 #C8C8C8;
                      -moz-border-left-colors: #FDFDFD #F9F9F9 #F4F4F4 #ECECEC #E2E2E2 #D6D6D6 #C8C8C8;
                   }
      </style>
</head>
<body>
            <div></div>
</body>
</html>

 

        其執行結果如下:

             

      需要注意的是,border的邊框顏色設定是從外向內的,所以第一個顏色編碼是最外層顏色,而最後一個顏色編碼是最內層的顏色。

 

轉載於:https://www.cnblogs.com/May-study/p/5817948.html

相關文章