整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          CSS作圖(二),純CSS代碼畫出精致逼真的圖像,學(xué)起來(lái)啊

          SS的強(qiáng)大和精妙,只有在認(rèn)真研讀其代碼之后才會(huì)深刻明白。

          今日繼續(xù)用純CSS畫圖,并給大家整理了本文中所有代碼,需要的小伙伴可以私信我哦。

          一、陰陽(yáng)

          首先,用CSS畫一個(gè)陰陽(yáng)圖,如下:

          代碼也很簡(jiǎn)單:

          #yin-yang {
           width: 96px;
           height: 48px;
           background: #eee;
           border-color: red;
           border-style: solid;
           border-width: 2px 2px 50px 2px;
           border-radius: 100%;
           position: relative;
          }
           
          #yin-yang:before {
           content: "";
           position: absolute;
           top: 50%;
           left: 0;
           background: #eee;
           border: 18px solid red;
           border-radius: 100%;
           width: 12px;
           height: 12px;
          }
           
          #yin-yang:after {
           content: "";
           position: absolute;
           top: 50%;
           left: 50%;
           background: red;
           border: 18px solid #eee;
           border-radius:100%;
           width: 12px;
           height: 12px;
          }
          

          當(dāng)然,顏色什么的,可以隨便改啦~

          二、雞蛋

          再畫一個(gè)可愛的雞蛋~~~像這樣:

          代碼僅僅幾句話:

          #egg {
           display:block;
           width: 126px;
           height: 180px;
           background-color: red;
           -webkit-border-radius: 63px 63px 63px 63px / 108px 108px 72px 72px;
           border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
          }
          

          三、最后畫一個(gè)彎彎的月亮~

          長(zhǎng)這樣:

          代碼非常非常少:

          #moon {

          width: 80px;

          height: 80px;

          border-radius: 50%;

          box-shadow: 15px 15px 0 0 red;

          }

          是不是很神奇?不敢相信這幾句代碼居然有這樣的功力?

          那就打開電腦,按照我之前講的方法創(chuàng)建一個(gè)html試試吧~

          不知道怎么創(chuàng)建的小伙伴看這里>>css3制作圖形大全:簡(jiǎn)單幾句代碼畫出漂亮的圖形,一起來(lái)看看吧~

          碼來(lái)做藝術(shù)?

          本文授權(quán)轉(zhuǎn)載于:AppSo

          ID:AppSo

          作者 : 冷思真

          編輯:亦夕

          藝術(shù)家的作品大多有點(diǎn)高深,除非是寫實(shí)類作品,不然你不一定能「看懂」。

          而代碼對(duì)大多數(shù)人來(lái)說(shuō)也是艱難的。對(duì)非專業(yè)人士來(lái)說(shuō),代碼可能比藝術(shù)品還要復(fù)雜。那么,如果用代碼來(lái)搞藝術(shù)創(chuàng)作,這一切會(huì)更簡(jiǎn)單嗎?

          01

          不會(huì)畫畫的程序員不是好藝術(shù)家

          《索思沃爾德的夜晚》是一幅安靜的圖畫。即將西下的太陽(yáng)光撒在湖面上,湖上波光粼粼,泛著金光,波浪的漣漪一點(diǎn)點(diǎn)的散開。岸上的建筑物則安然有序,燈塔、圍墻、小房子,組成了這幅安靜的風(fēng)景圖。

          有人覺得這幅畫看上去冷清,過(guò)于安靜,是一幅悲傷的畫。

          有人覺得這幅畫陽(yáng)光照耀四方,小屋整齊的立在一旁,是一幅和諧又溫暖的風(fēng)景畫。

          當(dāng)然,如果這些人知道這幅畫是用代碼畫的,可能就只會(huì)說(shuō)這是一幅很漂亮的畫了。畢竟代碼聽上去就和藝術(shù)無(wú)關(guān),和情感表達(dá)無(wú)緣。

          此畫的作者本·埃文斯是一個(gè)網(wǎng)頁(yè)設(shè)計(jì)師,是一個(gè)前端開發(fā),也是一個(gè)插畫家?!端魉嘉譅柕碌囊雇怼肥撬脤盈B樣式表(CSS)畫的一幅作品。除了這幅畫,他還用 CSS 畫過(guò)大海,畫過(guò)撲克牌。

          和他一樣使用 CSS 畫畫的人也不止一個(gè),近些年還有越來(lái)越多的趨勢(shì)。

          自由網(wǎng)絡(luò)開發(fā)者克里斯·帕特爾畫的辛普森一家是前些年的作品,只是近來(lái)才開始被人注意。在 GitHub 上,你可以輕易找到創(chuàng)作者的代碼,并在它的基礎(chǔ)上進(jìn)行更改。

          當(dāng)你復(fù)制原作者的代碼,再稍以修改后,你就可以畫出屬于自己的辛普森。你還可以給他變色,讓他從透明變成黃色、藍(lán)色、綠色。

          在 CSS 作圖這個(gè)領(lǐng)域,數(shù)字藝術(shù)家戴安娜·史密斯則是一個(gè)不可忽略的先驅(qū)人物,他以 CSS 的巴洛克風(fēng)格作畫而聞名,創(chuàng)作過(guò)多幅 18 世紀(jì)復(fù)古風(fēng)格的作品,也畫過(guò)現(xiàn)實(shí)向的靜物海報(bào)。

          史密斯的作品從來(lái)不使用繪圖軟件,他只用手寫的 HTML / CSS代碼創(chuàng)建精美的圖片。作為一個(gè)每天 90% 的工作都圍繞著 JavaScript 工作的程序員,史密斯卻更喜歡 CSS 作畫,因?yàn)?CSS 有一些限制的規(guī)則。

          這只是我喜歡 CSS 的眾多原因之一。

          有限的規(guī)則正是它的樂趣所在,你不會(huì)期望 CSS 能滿足你所有的需求。這就是為什么當(dāng)你在 CSS 最終找到了一種(可以滿足你的)方法時(shí),它就會(huì)變得更有價(jià)值。

          在工作之余,史密斯還會(huì)不斷回到 CSS 尋找藝術(shù)靈感,在限制之中創(chuàng)作新的藝術(shù)作品。

          因?yàn)橐恍╆P(guān)于這些限制的東西一直在召喚著我。當(dāng)我在說(shuō)嚴(yán)格的限制是激發(fā)創(chuàng)造力的最佳催化劑時(shí),我并不孤單。因?yàn)橥耆乃囆g(shù)創(chuàng)作自由可能是一個(gè)令人麻痹的概念。

          02

          CSS 藝術(shù),讓每個(gè)瀏覽器都有自己的風(fēng)格

          值得一提的是,有限制的 CSS 圖畫不是一個(gè)完全靜態(tài)的藝術(shù)作品。不管是簡(jiǎn)單的辛普森一家頭像畫還是精致的巴洛克肖像畫、風(fēng)景畫,他們都是會(huì)變化的。每個(gè)人可以通過(guò)改變開源的代碼來(lái)創(chuàng)作出自己的 CSS 圖畫。

          在此之外,選擇不同的瀏覽器打開圖像也會(huì)呈現(xiàn)不同的作品。作為實(shí)時(shí)呈現(xiàn)的圖畫,每個(gè)瀏覽器在加載頁(yè)面時(shí)都會(huì)將圖畫的代碼呈現(xiàn)為繪圖。

          而大多數(shù)的數(shù)字藝術(shù)家都是在 Chrome 瀏覽器上處理代碼的。所以除了 Chrome 瀏覽器能夠呈現(xiàn)圖片本身預(yù)想的畫作外,其它瀏覽器都會(huì)「畫」出不同的圖像。這也展示了不同瀏覽器轉(zhuǎn)換工作的差別。

          創(chuàng)作者說(shuō)不考慮圖畫的兼容性問題,反而更有意思。

          由于這個(gè)項(xiàng)目的藝術(shù)性原因,我并不關(guān)心跨瀏覽器的兼容性,所以實(shí)時(shí)預(yù)覽可能在除 Chrome 之外的任何瀏覽器中看起來(lái)都很可笑。

          適配單一瀏覽器也有驚喜。當(dāng)我們將這些代碼放進(jìn)不同瀏覽器的時(shí)候,有的圖像有了出乎意料的變化。

          Chrome 瀏覽器在羽毛和發(fā)絲的轉(zhuǎn)換上非常細(xì)致,展現(xiàn)了本身的細(xì)節(jié),Safari 瀏覽器則在部分高光的處理上有點(diǎn)過(guò)火,裙子也多了一條豎線。

          左為 Chrome 瀏覽器呈現(xiàn)效果,右為 Safari 瀏覽器呈現(xiàn)效果

          不過(guò)隨著時(shí)間往前移,我們用更多版本的瀏覽器配上 CSS 代碼圖畫時(shí),呈現(xiàn)效果就會(huì)更特別。

          這幅畫本尊是這樣的:

          在 Safari 瀏覽器中,蕾絲的花邊裝飾直接蓋在了女人的臉上,看不出原圖。

          在 2014 版本的 Opera 瀏覽器中,畫作有了一種全然不同的風(fēng)格。

          脖子分成了三個(gè)部分,眉毛、頭發(fā)、眼睫毛的位置都出現(xiàn)了偏移和錯(cuò)位,更條碼式。

          而 Edge 瀏覽器則自動(dòng)消掉了畫作的棱角,使整幅圖畫更為平滑、陰沉。

          最后在上古時(shí)期的網(wǎng)景瀏覽器中,這位女士的嘴巴、眼睛等五官都變成了不同大小的方塊,有點(diǎn)樂高的感覺,風(fēng)格獨(dú)樹一幟。

          作為該領(lǐng)域的先驅(qū)人物,史密斯給這些圖畫的表現(xiàn)賦予了更多的意義:

          當(dāng)你在不同的瀏覽器上查看這張圖片時(shí),你就像是在查看互聯(lián)網(wǎng)的歷史,以及當(dāng)時(shí)用戶對(duì)瀏覽器的要求。

          03

          CSS 畫出來(lái)的畫算藝術(shù)嗎?更像行為藝術(shù)

          代碼是冰冷的、理性的代表,它是沒有感情的。而畫作的藝術(shù)則能表達(dá)作者豐沛的情感和思想。但當(dāng)理性的代碼用來(lái)創(chuàng)作感性的畫作時(shí),這一切會(huì)改變嗎?

          在一部分人看來(lái),數(shù)字藝術(shù)是不能算作真正的藝術(shù)的。

          當(dāng)大片空白可以在瞬息間充滿五彩的色塊,渲染過(guò)度也能在強(qiáng)大工具的幫助下變得快捷且自然時(shí),人們認(rèn)為這不再是藝術(shù)了。雖然數(shù)字化工具做的畫也可以很漂亮,很有創(chuàng)意,但人們會(huì)覺得它沒有「靈魂」。即使它能模仿油畫、水墨等不同風(fēng)格,但創(chuàng)造出的作品也稱不上藝術(shù)。

          這個(gè)問題甚至可以上升到「代碼是不是藝術(shù)」的問題上,深入討論一下藝術(shù)的定義和內(nèi)涵。

          在主流觀念中來(lái),那些使用新工具去創(chuàng)作藝術(shù)作品的人不算正統(tǒng)藝術(shù)家。即便要稱為藝術(shù)家,也得在前面加上「數(shù)字」兩個(gè)字。在大眾的、觀念中,數(shù)字藝術(shù)家和傳統(tǒng)的藝術(shù)家涇渭分明,完全不同。即便這兩種藝術(shù)家在顯示生活中已經(jīng)有了很多工作的交織、身份的重合。

          對(duì)當(dāng)下的數(shù)字時(shí)代而言,隨著互聯(lián)網(wǎng)在我們生活中的滲透程度越來(lái)越深。每個(gè)人可能都會(huì)成為數(shù)字藝術(shù)家,在創(chuàng)作的過(guò)程中,都需要數(shù)字工具的幫助。

          而純粹用數(shù)字工具畫出的 CSS 作圖在可玩性、趣味性上都強(qiáng)于普通的藝術(shù)作品。即使我們不把它看作一個(gè)藝術(shù)杰作,它也是一個(gè)互聯(lián)網(wǎng)的行為藝術(shù)作品。

          它讓我們意識(shí)到自己生活在一個(gè)現(xiàn)實(shí)扭曲的文化泛濫時(shí)代,人與人之間很難獲得一致的事實(shí)版本。

          你看到的東西是由你的設(shè)備版本決定的,是和你選擇的數(shù)字工具有關(guān)的。當(dāng)我們看到的東西不一樣的時(shí)候,我們創(chuàng)作的東西也是不一樣的。

          CSS 作畫與其說(shuō)是藝術(shù),不如說(shuō)它讓我們看到了互聯(lián)網(wǎng)的一種能力,一次進(jìn)程,一段歷史。

          本文作者 冷思真,首發(fā)于公眾號(hào)「AppSo」(ID:AppSo),這是一個(gè)讓你手機(jī)更好用的專業(yè)媒體,歡迎識(shí)別下方二維碼進(jìn)行關(guān)注

          于學(xué)習(xí)js是為爬蟲服務(wù),所以canvas繪圖學(xué)習(xí)并不完整。

          第15章 使用Canvas繪圖



          15.1 基本用法

          HTML文件中需要有canvas元素,兩標(biāo)簽之間的文字是瀏覽器不支持時(shí)顯示的。

          <canvas id="drawing" width="200" height="200">A drawing of something.</canvas>

          要在網(wǎng)頁(yè)中顯示canvas繪制的圖像,只需要在畫布上繪制圖形即可:

          var drawing = document.getElementById("drawing");
          
          if (drawing.getContext){
              var context = drawing.getContext("2d");
          
              context.fillStyle = "#0000ff";
              context.fillRect(10,10,50,50);
          
              context.fillStyle = "rgba(0,0,255,0.5)";
              context.fillRect(30,30,50,50);
          }
          

          也可以通過(guò)toDataURL輸出到圖像,并創(chuàng)建新的img:

          var drawing = document.getElementById("drawing");
          
          // 取得圖像的數(shù)據(jù)URI
          var imgURI = drawing.toDataURL("image/png");
          // 顯示圖像
          
          var image = document.createElement("img");
          image.src = imgURI;
          document.body.appendChild(image);

          15.2 2D上下文

          15.2.1 填充和描邊

          可通過(guò)strokeStyle和fillStyle屬性進(jìn)行設(shè)置

          var context = drawing.getContext("2d");
          context.strokeStyle = "red";
          context.fillStyle = "#0000ff";

          設(shè)置屬性有以下幾種:

          "red"
          "#0000ff"
          "rgba(0,0,255,0.5)"
          context.strokeStyle = "red";

          15.2.2 繪制矩形

          繪制矩形有fillRect(帶有填充)、strokeRect(無(wú)填充)、clearRect(除清矩形區(qū)域)三個(gè)方法,單位為像素:

          var drawing = document.getElementById("drawing");
          
          if (drawing.getContext){
              var context = drawing.getContext("2d");
              // 紅色的矩形
          
              context.fillStyle = "#ff0000";
              context.fillRect(10,10,50,50);
              // 半透明的矩形
          
              context.fillStyle = "rgba(0,0,255,0.5)";
              context.fillRect(30,30,50,50);
          }

          15.2.3 繪制路徑

          以beginPath()方法開始,然后接著繪制以下線條:

          • arc(x, y, radius, startAngle, endAngle, counterclockwise):以(x,y)為圓心繪制一條弧線,弧線半徑為radius,起始和結(jié)束角度(用弧度表示)分別為startAngle 和endAngle。最后一個(gè)參數(shù)表示
          • startAngle 和endAngle 是否按逆時(shí)針方向計(jì)算,值為false表示按順時(shí)針方向計(jì)算。
          • arcTo(x1, y1, x2, y2, radius):從上一點(diǎn)開始繪制一條弧線,到(x2,y2)為止,并且以給定的半徑radius 穿過(guò)(x1,y1)。
          • bezierCurveTo(c1x, c1y, c2x, c2y, x, y):從上一點(diǎn)開始繪制一條曲線,到(x,y)為止,并且以(c1x,c1y)和(c2x,c2y)為控制點(diǎn)。
          • lineTo(x, y):從上一點(diǎn)開始繪制一條直線,到(x,y)為止。
          • moveTo(x, y):將繪圖游標(biāo)移動(dòng)到(x,y),不畫線。
          • quadraticCurveTo(cx, cy, x, y):從上一點(diǎn)開始繪制一條二次曲線,到(x,y)為止,并且以(cx,cy)作為控制點(diǎn)。
          • rect(x, y, width, height):從點(diǎn)(x,y)開始繪制一個(gè)矩形,寬度和高度分別由width 和height 指定。這個(gè)方法繪制的是矩形路徑,而不是strokeRect()和fillRect()所繪制的獨(dú)立的形狀。

          路徑創(chuàng)建完以后,有多種結(jié)尾方式:

          • closePath()會(huì)自動(dòng)與起點(diǎn)連接;
          • fill()會(huì)自動(dòng)以fillStyle填充區(qū)域;
          • stroke()會(huì)對(duì)線條描邊;
          • clip()創(chuàng)建一個(gè)剪切區(qū)域。

          15.2.4 繪制文本

          方法:

          fillText()
          strokeText()

          屬性:

          font
          textAlign start、end、left、right、center
          textBaseline top、hanging、middle、alphabetic、ideographic、bottom


          主站蜘蛛池模板: 一区二区三区杨幂在线观看| 国产精品视频免费一区二区| 国产精品日本一区二区不卡视频| 国产乱子伦一区二区三区| 在线免费一区二区| 国产精久久一区二区三区| 精品国产福利第一区二区三区| 久久国产午夜一区二区福利| 无码国产精品一区二区免费式影视| 日本一道高清一区二区三区| 视频精品一区二区三区| 亚洲色大成网站www永久一区| 在线精品国产一区二区| 国产人妖视频一区二区破除| 丝袜人妻一区二区三区网站| 亚洲福利一区二区| 亚洲国产精品一区二区三区久久 | 亚洲一区免费视频| 精品国产一区二区三区AV| 无码日韩精品一区二区人妻| 无码精品人妻一区二区三区漫画| 日韩一区二区视频在线观看| 免费国产在线精品一区| 久久久久人妻一区精品色| 国产精品资源一区二区| 亚洲V无码一区二区三区四区观看| 久久精品成人一区二区三区| 精品福利一区二区三区| 在线视频一区二区| 成人精品一区二区三区中文字幕| 亚洲码一区二区三区| 国产福利电影一区二区三区,亚洲国模精品一区 | 精品人妻系列无码一区二区三区| 日韩精品久久一区二区三区| 亚洲国产一区二区三区青草影视| 国产免费av一区二区三区| 精品亚洲AV无码一区二区三区| 一区二区中文字幕在线观看| 国产成人综合一区精品| 国产AV午夜精品一区二区三| 无码国产精品一区二区高潮|