老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

如何使用單div實現(xiàn)CSS繪圖方法-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“如何使用單div實現(xiàn)CSS繪圖方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“如何使用單div實現(xiàn)CSS繪圖方法”吧!

治多ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

為什么只使用一個 Div?

2013年5月,我參加了 CSSConf,看到了Lea Verou 關(guān)于 border-radius 的演講,你可能會認(rèn)為這個屬性很不起眼。但是這個演講讓我大開眼界,認(rèn)識到 CSS 還有很多行為我是不了解的。回憶起我還是藝術(shù)生的那段時光,不斷地推動著我成為所選媒介的專家。作為一個 Web 設(shè)計師,CSS 是我的媒介,因此我盡我所能地學(xué)習(xí),探索它的極限。

為什么只有一個 Div?

回憶我以前學(xué)畫的時候,課堂上還做了混合顏色的實驗,我們就使用三原色,紅、黃、藍(lán),創(chuàng)造出了其他顏色的光譜。這個實驗的目的是讓我們了解顏色的特性,同時這種限制也讓我們明白了混合的力量。你當(dāng)然可以買一只綠色的筆,但是你也可以使用藍(lán)色和黃色把綠色做出來。限制你的可選項,會讓你重新評估手頭上已有的工具。

我決定開始一個使用CSS 繪畫的項目,過段時間我就會給出一個只用 CSS 繪制的新東西。為了得到更大的挑戰(zhàn),探索 CSS 的潛力,我給自己定了這個限制,只是用一個 Div。不能直接買一只綠色的筆(添加更多的 Div),我要做的就是盡其所能地結(jié)合 CSS 屬性來實現(xiàn)我的目的。

工具箱

一個 Div 加上瀏覽器支持的那些 CSS 屬性,看起來可用的工具太少了。但是我發(fā)現(xiàn)問題不在于你在使用多少東西,而在于你如何看待你在使用的東西。

偽元素

因為 CSS 有偽類,所以雖然只有一個 Div,但實際上我可以使用三個元素。因此,使用div,div:before,div:after,我們可以這樣:

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div { background: red; }
div:before { background: yellow; }
div:after { background: blue; }


容易想到,這三個元素可以并排成為三個疊在一起的層。因此,在我的腦海中,它看起來是下面這樣的:

如何使用單div實現(xiàn)CSS繪圖方法

形狀

使用 CSS 和單個元素,我們可以制作三種基礎(chǔ)圖形。使用widthheight屬性制作正方形/矩形,使用border-radius制作圓/橢圓,使用border制作三角形/梯形。

如何使用單div實現(xiàn)CSS繪圖方法

我們還可以使用 CSS 創(chuàng)建其他圖形,不過大部分都可以簡單組合這些基礎(chǔ)圖形來實現(xiàn),這些簡單的圖形最容易制作,也最容易修改。

多個相同的形狀

使用疊加的box-shadow,我們可以創(chuàng)建多個相同的形狀,這些形狀可以擁有不一樣的大小、顏色和模糊效果。我們可以在x或者y軸上移動這些圖形,因此幾乎可以繪制無限的圖形。

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div {
     box-shadow: 170px 0 10px yellow,
                 330px 0 0 -20px blue,
                 330px 5px 5px -20px black;
 }


我們甚至可以給box-shadow添加box-shadow。注意它們申明順序。再者,把它們當(dāng)做層更容易理解。

漸變

漸變通過給定一個光源,可以被用來制造明暗和深淺效果,可以讓簡單扁平的圖形看起來更真實。結(jié)合多個background-image,我們可以使用很多層的漸變來實現(xiàn)更加復(fù)雜光影,甚至是更多的圖形。

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div {
   background-image: linear-gradient(to right, gray, white, gray, black);
}
div:after {
   background-image: radial-gradient(circle, yellow 50%, transparent 50%), linear-gradient(to right, blue, red);
}


視覺

最困難的部分視覺,即如何拼湊這些形狀成為可被感知的繪圖。隨著我越來越注重繪圖的技巧,發(fā)現(xiàn)視覺這一步很重要。為了做到這一點,我常常凝視這主題相關(guān)的圖片,將其切割為多個可視的部分。都是一個個形狀,都是一個個顏色。我把整張圖片簡化為一些小的帶顏色形狀或者區(qū)塊,我知道(大體上)如何使用 CSS 來實現(xiàn)它們。

實例

我們一起仔細(xì)看看兩個繪圖,并學(xué)習(xí)如何分解成不同的區(qū)塊,合成一個大的圖形。第一個就是一支綠色的蠟筆。

蠟筆由兩個基礎(chǔ)圖形構(gòu)成:矩形的筆身和三角形的筆尖。

如何使用單div實現(xiàn)CSS繪圖方法

我必須實現(xiàn)下面這些點來捕獲真實蠟筆的感覺:

紙質(zhì)包裝上不同的顏色印刷在包裝上的形狀和文字條紋暗示蠟筆是圓的明暗效果,暗示圓形的蠟筆和光源

首先,我使用divbackground顏色制作蠟筆的身體部分,從頂部到底部漸變,并使用box-shadow暗示立體感:

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div {
   background: #237449;
   background-image: linear-gradient(to bottom,
                                 transparent 62%,
                                 black(.3) 100%);
   box-shadow: 2px 2px 3px black(.3);
}


然后,我使用一個從左到右的linear-gradient制作紙包裝。alpha值為.6,這樣的之前的漸變可以透出來。

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div {
   background-image: linear-gradient(to right,
                                 transparent 12px,
                                 rgba(41,237,133,.6) 12px,
                                 rgba(41,237,133,.6) 235px,
                                 transparent 235px);
}


接下來,我繼續(xù)使用同樣的方式,從左到右漸變,制作蠟筆上的條紋。

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div {
   background-image: linear-gradient(to right,
                                 transparent 25px,
                                 black(.6) 25px,
                                 black(.6) 30px,
                                 transparent 30px,
                                 transparent 35px,
                                 black(.6) 35px,
                                 black(.6) 40px,
                                 transparent 40px,
                                 transparent 210px,
                                 black(.6) 210px,
                                 black(.6) 215px,
                                 transparent 215px,
                                 transparent 220px,
                                 black(.6) 220px,
                                 black(.6) 225px,
                                 transparent 225px);
}


紙包裝上印刷的橢圓,使用一個radial-gradient輕松搞定!

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div {
   background-image: radial-gradient(ellipse at top,
                                 black(.6) 50px,
                                 transparent 54px);
}


我剛才單獨展示了各個部分,不過別忘了background-image看起來是這樣的:

代碼如下:


div {
                     // ellipse printed on wrapper
   background-image: radial-gradient(ellipse at top,
                                 black(.6) 50px,
                                 transparent 54px),
                     // printed stripes
                     linear-gradient(to right,
                                 transparent 25px,
                                 black(.6) 25px,
                                 black(.6) 30px,
                                 transparent 30px,
                                 transparent 35px,
                                 black(.6) 35px,
                                 black(.6) 40px,
                                 transparent 40px,
                                 transparent 210px,
                                 black(.6) 210px,
                                 black(.6) 215px,
                                 transparent 215px,
                                 transparent 220px,
                                 black(.6) 220px,
                                 black(.6) 225px,
                                 transparent 225px),
                     // wrapper
                     linear-gradient(to right,
                                 transparent 12px,
                                 rgba(41,237,133,.6) 12px,
                                 rgba(41,237,133,.6) 235px,
                                 transparent 235px),
                     // crayon body shading
                     linear-gradient(to bottom,
                                 transparent 62%,
                                 black(.3) 100%)
}


完成了div,我們把注意力轉(zhuǎn)移到:before偽類元素上,創(chuàng)建蠟筆的筆頭。使用實心和透明的邊框,我制作了一個三角形,把它和我之前繪制的div放到一起。

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div:before {
   height: 10px;
   border-right: 48px solid #237449;
   border-bottom: 13px solid transparent;
   border-top: 13px solid transparent;
}


比起蠟筆筆桿,筆頭看起來有點平,我們可以使用:after偽類元素來修復(fù)這個問題。我添加一個從頂部到底部的linear-gradient,制作了一個反光效果,貫穿整只蠟筆。

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div:after {
   background-image: linear-gradient(to bottom,
                                   white(0) 12px,
                                   white(.2) 17px,
                                   white(.2) 19px,
                                   white(0) 24px);
}


這給那個扁平的三角形添加更多的層次感,更加真實。制作接近尾聲,我給:after添加一些文字,定位,使得看起來像是印刷在蠟筆包裝上的一樣。

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div:after {
   content: 'green';
   font-family: Arial, sans-serif;
   font-size: 12px;
   font-weight: bold;
   color: black(.3);
   text-align: right;
   padding-right: 47px;
   padding-top: 17px;
}


大功告成!

另外一個實例

蠟筆作為一個不錯的例子,很好地展示了如何使用background-imagegradient來產(chǎn)生真實的效果。下面這個例子將展示多個box-shadow的強大之處:單div的照相機。

這是照相機的主體部分,使用background-imageborder-image制作的。

如何使用單div實現(xiàn)CSS繪圖方法

下面是一張 gif,展示:before偽類元素(黑色的那個矩形),以及使用它的box-shadow創(chuàng)建出來的很多照相機的細(xì)節(jié)部分。

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div:before {
   background: #333;
   box-shadow: 0 0 0 2px #eee,
               -1px -1px 1px 3px #333,
               -95px 6px 0 0 #ccc,
               30px 3px 0 12px #ccc,
               -18px 37px 0 46px #ccc,
               -96px -6px 0 -6px #555,
               -96px -9px 0 -6px #ddd,
               -155px -10px 1px 3px #888,
               -165px -10px 1px 3px #999,
               -170px -10px 1px 3px #666,
               -162px -8px 0 5px #555,
               85px -4px 1px -3px #ccc,
               79px -4px 1px -3px #888,
               82px 1px 0 -4px #555;
}


類似的,下面是:after(灰色的圓)以及使用它的box-shadow制作的幾個細(xì)節(jié)部分。

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div:after {
   background: linear-gradient(45deg, #ccc 40%, #ddd 100%);
   border-radius: 50%;
   box-shadow: 0 3px 2px #999,
               1px -2px 0 white,
               -1px -3px 2px #555,
               0 0 0 15px #c2c2c2,
               0 -2px 0 15px white,
               -2px -5px 1px 17px #666,
               0 10px 10px 15px black(.3),
               -90px -51px 1px -43px #aaa,
               -90px -50px 1px -40px #888,
               -90px -51px 0 -34px #ccc,
               -90px -50px 0 -30px #aaa,
               -90px -48px 1px -28px black(.2),
               -124px -73px 1px -48px #eee,
               -125px -72px 0 -46px #666,
               -85px -73px 1px -48px #eee,
               -86px -72px 0 -46px #666,
               42px -82px 1px -48px #eee,
               41px -81px 0 -46px #777,
               67px -73px 1px -48px #eee,
               66px -72px 0 -46px #666,
               -46px -86px 1px -45px #444,
               -44px -87px 0 -38px #333,
               -44px -86px 0 -37px #ccc,
               -44px -85px 0 -34px #999,
               14px -89px 1px -48px #eee,
               12px -84px 1px -48px #999,
               23px -85px 0 -47px #444,
               23px -87px 0 -46px #888;
}


有點瘋狂?不過你看到了吧, 多個box-shadow確實可以給使用單個div繪圖添加很多細(xì)節(jié)部分。

較大的挑戰(zhàn)

我碰到了兩個較大的挑戰(zhàn),三角形的限制和gradient獨特的行為。

三角形的問題

因為三角形是使用border創(chuàng)建的,這極大地限制了我對它的利用。使用border-imageborder添加gradient,不能單獨添加其中一邊。無法給border創(chuàng)建出來的三角形添加box-shadow,因為box-shadow是添加在盒模型上的。因此要創(chuàng)建多個三角形就會很困難??雌饋砭褪窍旅孢@樣:

如何使用單div實現(xiàn)CSS繪圖方法

代碼如下:


div {
   border-left: 80px solid transparent;
   border-right: 80px solid transparent;
   border-bottom: 80px solid red;
}
div:before {
   border-left: 80px solid transparent;
   border-right: 80px solid transparent;
   border-bottom: 80px solid red;
   border-image: linear-gradient(to right, red, blue);
}
div:after {
   border-left: 80px solid transparent;
   border-right: 80px solid transparent;
   border-bottom: 80px solid red;
   box-shadow: 5px 5px 5px gray;
}


多層漸變

漸變的行為就是會填滿整個background。在堆疊多個gradient的時候就顯得很講技巧。需要花費額外的時間思考透明度、z-index這些事,還要搞清楚什么要可見,什么不要。不過若能有效地使用gradient,我們的繪圖可以包含很多令人驚嘆的細(xì)節(jié)。

Tardis 就是一個很好的例子,顯示或隱藏漸變,創(chuàng)建了一張細(xì)節(jié)極強的圖片。下圖顯示的是繪制的中間過程,可以看到數(shù)個從頂部到底部的漸變,寬度填滿整個容器。

如何使用單div實現(xiàn)CSS繪圖方法

使用從左到右和從右到左的gradient,我可以遮住一部分漸變,同時把其他部分漸變顯示出來。

如何使用單div實現(xiàn)CSS繪圖方法

最終的結(jié)果看上去包含了很多圖形來構(gòu)成 Tardis 的前面,但實際上它就是層疊的linear-gradient。很多時候不得不偽造呀。

到此,相信大家對“如何使用單div實現(xiàn)CSS繪圖方法”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


新聞標(biāo)題:如何使用單div實現(xiàn)CSS繪圖方法-創(chuàng)新互聯(lián)
文章來源:http://www.xueling.net.cn/article/dojipo.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 日本久久片 | 亚洲毛片在线看 | 欧美精品3| 人妻熟妇乱又伦精品HD | 欧美日韩在线免费观看 | 精品久久亚洲中文无码 | 无码人妻精品一区二区三区不卡 | 亚洲AV天天做在线观看 | 91视频-8mav| 亚洲国产爱 | 国产在线观看高清视频 | 一区二区三区四区视频在线观看 | 去看片在线 | 1区2区免费视频 | 春意午夜影院 | 亚洲品牌自拍一品区9 | 伊人天堂久久 | 无码国产精品一区二区AV | 黄网站色网址 | 无码欧美熟妇人妻影院 | 亚洲高清欧美日韩一区二区三区 | 91综合久久爱com | 中文字幕亚洲综合久久久软件 | 欧美激情亚洲天堂 | 青青操在线 | 日本性一级 | 欧美老人巨大xxxx做受 | 久久99999| 欧美麻豆久久久久久中文 | 福利社一区 | 超碰在线进入 | 97SE亚洲国产综合自在线观看 | 性一交一无一伦一精一品 | 国产精品久久久久久久久污网站 | 揉着我的奶从后面进去视频 | 黄色福利网站在线观看 | 夜鲁鲁鲁夜夜综合视频欧美 | 国产一区二区三区在线看麻豆 | 中文字幕一线产区和二线 | 亚洲天堂久久久 | 国产综合欧美无毒不卡怡红院 |