溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用css中background實現(xiàn)繪制圖形的方法

發(fā)布時間:2020-09-14 11:05:14 來源:億速云 閱讀:168 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細講解有關(guān)利用css中background實現(xiàn)繪制圖形的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

相信大家在平時工作中少不了會被要求在某些元添加一些特殊的背景圖片,這時候通常就拿起ps就是切切切。不說這種方式麻煩,有ui給你切好的情況已經(jīng)不錯,沒有的就有自己動手。還可能有需要切一整張超大圖的情況。作為一個“優(yōu)秀”的前端,本著自己動手豐衣足食的理念,下面給大家介紹用background來繪制這些特的圖片

先來看看平時會出現(xiàn)的

利用css中background實現(xiàn)繪制圖形的方法

通過一下css得到

<div class="box"></div>

<style>
  .box{
    width: 500px;
    height: 500px;
    background: url('imgurl');
    background-size: 20%;
  }
</style>

當然現(xiàn)在不切圖,直接用css來做

.box{
    width: 500px;
    height: 500px;
    background: linear-gradient(45deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb),
                linear-gradient(135deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb) 50px 0,
                linear-gradient(45deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb) 50px 50px,
                linear-gradient(135deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb) 100px 50px;
    background-size: 100px 100px;
    background-color: #fff;
}

我們可以看到會得到與切圖一模一樣的效果

接下來來看下上面的css為什么這樣寫
首先我們先理解background: linear-gradient(),在background中CSS3 漸變(gradients)可看做一張背景圖片,可理解為background: url(),而背景圖片的可以為多張的,對應我們就可以寫多個linear-gradient,通過對其顏色的控制來拼接成一個獨立的圖片塊。background-size刷新中可通過逗號分隔,會循環(huán)設置對應的linear-gradient。
這里需要注意的是,linear-gradient是重后往前繪制的,就是說前面顏色的會覆蓋后面的顏色。

分析上面的格子背景,我看可以看做在一個4x4的格子中有兩個1x1的灰格子覆蓋在上面。每個灰格子可通過

利用css中background實現(xiàn)繪制圖形的方法

的基礎(chǔ)圖案拼成,所以有了如下

background: linear-gradient(45deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb),
            linear-gradient(45deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb) 50px 50px;

利用css中background實現(xiàn)繪制圖形的方法

這里有個問題,小三角間拼接有縫隙,所以用

利用css中background實現(xiàn)繪制圖形的方法

圖形再拼接一次。

background: linear-gradient(45deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb),
            linear-gradient(45deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb) 50px 50px,
            linear-gradient(135deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb) 50px 0,
            linear-gradient(135deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb) 100px 50px;

最后我們就能得到和上面一樣的格子背景。
更多例子

有時候我們需要的背景可能不需要repeat,且圖形沒有規(guī)律
如:

利用css中background實現(xiàn)繪制圖形的方法

這時我們就要對圖形的每個角進行分別設置。

.box{
    width: 500px;
    height: 500px;
    background: linear-gradient(black, black) left top,
                linear-gradient(black, black) left top,
                linear-gradient(black, black) right top,
                linear-gradient(black, black) right top,
                linear-gradient(black, black) right bottom,
                linear-gradient(black, black) right bottom,
                linear-gradient(black, black) left bottom,
                linear-gradient(black, black) left bottom;
    background-repeat: no-repeat;
    background-size: 4px 20px, 20px 4px;

原理其實就是通過linear-gradient繪制每個圖形設置位置和大小,最后就能得到想要圖像。

關(guān)于利用css中background實現(xiàn)繪制圖形的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI