整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

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

          SS的強大和精妙,只有在認真研讀其代碼之后才會深刻明白。

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

          一、陰陽

          首先,用CSS畫一個陰陽圖,如下:

          代碼也很簡單:

          #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;
          }
          

          當然,顏色什么的,可以隨便改啦~

          二、雞蛋

          再畫一個可愛的雞蛋~~~像這樣:

          代碼僅僅幾句話:

          #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%;
          }
          

          三、最后畫一個彎彎的月亮~

          長這樣:

          代碼非常非常少:

          #moon {

          width: 80px;

          height: 80px;

          border-radius: 50%;

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

          }

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

          那就打開電腦,按照我之前講的方法創建一個html試試吧~

          不知道怎么創建的小伙伴看這里>>css3制作圖形大全:簡單幾句代碼畫出漂亮的圖形,一起來看看吧~

          碼來做藝術?

          本文授權轉載于:AppSo

          ID:AppSo

          作者 : 冷思真

          編輯:亦夕

          藝術家的作品大多有點高深,除非是寫實類作品,不然你不一定能「看懂」。

          而代碼對大多數人來說也是艱難的。對非專業人士來說,代碼可能比藝術品還要復雜。那么,如果用代碼來搞藝術創作,這一切會更簡單嗎?

          01

          不會畫畫的程序員不是好藝術家

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

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

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

          當然,如果這些人知道這幅畫是用代碼畫的,可能就只會說這是一幅很漂亮的畫了。畢竟代碼聽上去就和藝術無關,和情感表達無緣。

          此畫的作者本·埃文斯是一個網頁設計師,是一個前端開發,也是一個插畫家。《索思沃爾德的夜晚》是他用層疊樣式表(CSS)畫的一幅作品。除了這幅畫,他還用 CSS 畫過大海,畫過撲克牌。

          和他一樣使用 CSS 畫畫的人也不止一個,近些年還有越來越多的趨勢。

          自由網絡開發者克里斯·帕特爾畫的辛普森一家是前些年的作品,只是近來才開始被人注意。在 GitHub 上,你可以輕易找到創作者的代碼,并在它的基礎上進行更改。

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

          在 CSS 作圖這個領域,數字藝術家戴安娜·史密斯則是一個不可忽略的先驅人物,他以 CSS 的巴洛克風格作畫而聞名,創作過多幅 18 世紀復古風格的作品,也畫過現實向的靜物海報。

          史密斯的作品從來不使用繪圖軟件,他只用手寫的 HTML / CSS代碼創建精美的圖片。作為一個每天 90% 的工作都圍繞著 JavaScript 工作的程序員,史密斯卻更喜歡 CSS 作畫,因為 CSS 有一些限制的規則。

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

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

          在工作之余,史密斯還會不斷回到 CSS 尋找藝術靈感,在限制之中創作新的藝術作品。

          因為一些關于這些限制的東西一直在召喚著我。當我在說嚴格的限制是激發創造力的最佳催化劑時,我并不孤單。因為完全的藝術創作自由可能是一個令人麻痹的概念。

          02

          CSS 藝術,讓每個瀏覽器都有自己的風格

          值得一提的是,有限制的 CSS 圖畫不是一個完全靜態的藝術作品。不管是簡單的辛普森一家頭像畫還是精致的巴洛克肖像畫、風景畫,他們都是會變化的。每個人可以通過改變開源的代碼來創作出自己的 CSS 圖畫。

          在此之外,選擇不同的瀏覽器打開圖像也會呈現不同的作品。作為實時呈現的圖畫,每個瀏覽器在加載頁面時都會將圖畫的代碼呈現為繪圖。

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

          創作者說不考慮圖畫的兼容性問題,反而更有意思。

          由于這個項目的藝術性原因,我并不關心跨瀏覽器的兼容性,所以實時預覽可能在除 Chrome 之外的任何瀏覽器中看起來都很可笑。

          適配單一瀏覽器也有驚喜。當我們將這些代碼放進不同瀏覽器的時候,有的圖像有了出乎意料的變化。

          Chrome 瀏覽器在羽毛和發絲的轉換上非常細致,展現了本身的細節,Safari 瀏覽器則在部分高光的處理上有點過火,裙子也多了一條豎線。

          左為 Chrome 瀏覽器呈現效果,右為 Safari 瀏覽器呈現效果

          不過隨著時間往前移,我們用更多版本的瀏覽器配上 CSS 代碼圖畫時,呈現效果就會更特別。

          這幅畫本尊是這樣的:

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

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

          脖子分成了三個部分,眉毛、頭發、眼睫毛的位置都出現了偏移和錯位,更條碼式。

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

          最后在上古時期的網景瀏覽器中,這位女士的嘴巴、眼睛等五官都變成了不同大小的方塊,有點樂高的感覺,風格獨樹一幟。

          作為該領域的先驅人物,史密斯給這些圖畫的表現賦予了更多的意義:

          當你在不同的瀏覽器上查看這張圖片時,你就像是在查看互聯網的歷史,以及當時用戶對瀏覽器的要求。

          03

          CSS 畫出來的畫算藝術嗎?更像行為藝術

          代碼是冰冷的、理性的代表,它是沒有感情的。而畫作的藝術則能表達作者豐沛的情感和思想。但當理性的代碼用來創作感性的畫作時,這一切會改變嗎?

          在一部分人看來,數字藝術是不能算作真正的藝術的。

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

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

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

          對當下的數字時代而言,隨著互聯網在我們生活中的滲透程度越來越深。每個人可能都會成為數字藝術家,在創作的過程中,都需要數字工具的幫助。

          而純粹用數字工具畫出的 CSS 作圖在可玩性、趣味性上都強于普通的藝術作品。即使我們不把它看作一個藝術杰作,它也是一個互聯網的行為藝術作品。

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

          你看到的東西是由你的設備版本決定的,是和你選擇的數字工具有關的。當我們看到的東西不一樣的時候,我們創作的東西也是不一樣的。

          CSS 作畫與其說是藝術,不如說它讓我們看到了互聯網的一種能力,一次進程,一段歷史。

          本文作者 冷思真,首發于公眾號「AppSo」(ID:AppSo),這是一個讓你手機更好用的專業媒體,歡迎識別下方二維碼進行關注

          源:量子位
          鏈接:https://mp.weixin.qq.com/s/IIWgNvqp0jxcD-J_CikV8w

          HTML不是編程語言,但這并不妨礙精通它的大佬玩出花來。

          普通的前端,用HTML+CSS制作網頁,元素簡單,工具豐富。

          大佬級前端,用HTML+CSS繪畫,全程不用PS、AI這種圖形化的圖片編輯器,單純敲一行行代碼純手工繪制。

          把代碼轉換之后,就變成了鮮嫩的水果:

          或者畫出洛可可風格的古典女性肖像:

          還有弗拉芒巴洛克肖像風格的人物畫像,充滿了中世紀的禁欲感:

          現代的也有,比如這位在粉色燈光下的著禮服的妹子:

          以及充滿者50年代氣息的復古風人物海報:

          曲線、光影、漸變,每個元素都相當復雜。

          而且,創作過程中不用SVG,只用Atom文本編輯器和Chrome開發者工具。

          也就是說,畫面上的每一條曲線和漸變、每一處高光和陰影、每一根頭發和睫毛、每一片蕾絲和褶皺,都是一行行代碼從頭敲出來的!

          如此精細程度和創造力,讓學美術的網友感嘆“學畫畫不如寫代碼”,讓學計算機的同學覺得“別人寫的這么藝術,一定是我的教科書打開方式不對”。

          真·交叉學科大佬。

          這個項目也一度登上了GitHub Trending排行榜第二名:

          并且Issues里都是諸多用戶的膜拜:厲害!崇拜!太棒了!

          它們的作者,是灣區前端大神Diana Smith小姐姐,她目前是企業及軟件開發商Atlassian的一名資深Web開發。

          繪制過程

          Diana在專門討論CSS的網站CSS-Tricks寫下了詳細的教程。

          畫出這樣一個圖形分成幾步?

          如果不用CSS,一般都是直接嵌入這個特殊的圖形。

          如果用CSS,那么就從黑色矩形開始,然后在兩側加上上兩個

          與白色背景顏色匹配的邊框半徑元素。



          先畫出一個黑色矩形,然后兩邊用圓弧遮擋。有了基礎形狀后,下一步就是給它添上漸變的背景。但是如果用矩形方式填充,得到的效果就是這樣的:

          Diana的辦法是:在保留矩形的同時,加上兩個彎曲的div,把凹進去的部分也填充上。

          最后完整的代碼是這樣的:

          div{
            width: 500px;
            height: 350px;
            background: #000;
            position: relative;
          
            &::after, &::before{
              width: 20%;
              height: 100%;    
              position: absolute;
              top: 0;
              z-index:2;
              content: "";    
          
              background: #1e5799; 
          background: -moz-linear-gradient(top, #1e5799 0%, #7db9e8 100%); 
          background: -webkit-linear-gradient(top, #1e5799 0%,#7db9e8 100%);
          background: linear-gradient(to bottom, #1e5799 0%,#7db9e8 100%); 
          filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); 
            }
          
            &::after{
              border-radius: 100% 0% 0% 100%;   
              right: 0;
            }
          
            &::before{
              border-radius: 0 100% 100% 0;   
              left: 0;
            }   
          }
          
          body{
            background: #1e5799; 
          background: -moz-linear-gradient(top, #1e5799 0%, #7db9e8 100%); 
          background: -webkit-linear-gradient(top, #1e5799 0%,#7db9e8 100%); 
          background: linear-gradient(to bottom, #1e5799 0%,#7db9e8 100%); 
          filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); 
          }

          你也可以去這個完成查看CSS樣式的實際運行效果:

          https://codepen.io/jean-jordan/pen/KeKaBw

          剛剛我們畫的那幅畫像不像人的脖子?好的,我們再回到人像畫上,Diana繪制人物的脖子也是類似的過程。

          在上面這張圖里,我們看到了Diana如何逐步改形狀,最終得到了油畫中人物的脖子。

          但是僅僅會畫各種幾何形狀,是無法生成藝術品的,Diana總結了她在繪圖中的5個重要CSS屬性。

          1、邊界半徑(border-radius)

          邊界半徑是為了讓矩形的邊角過渡得更自然,對于大多數網頁開發者來說,只需一個參數border-radius,可以設定不同的半徑數值。

          border-radius: 15px 10px 40px 30px / 40px 10px 15px 30px;

          2、盒子陰影(box-shadow)

          對多個盒子陰影進行分層是增加深度的最佳方法之一。框陰影將粘附到html容器的邊緣,也會沿著邊界半徑定義的邊緣。

          box-shadow: 6px -11px 20px 1px red, -15px -15px 5px -10px blue, inset 5px 5px 35px 10px green;

          開發者可以指定模糊半徑,以及陰影是向內延伸還是向外延伸。

          3、變形(transform)

          變形的主要方式有:旋轉(rotate)、縮放(scale)和傾斜(skew)

          transform: rotate(-45deg)
          transform: scale(0.7, 1.3)
          transform: skew(25deg, 30deg);

          此外還有透視,讓物體產生遠小近大的視覺效果,或者是僅僅為畫出一個梯形。

          transform: perspective(10px) rotateY(5deg);

          4、線性梯度(linear-gradient)和徑向梯度(radial-gradient)

          線性梯度用于定義一個方向上的漸變效果,徑向梯度用于定義圓和橢圓形的漸變效果

          background-image: linear-gradient(0deg, blue, transparent 60%),
          radial-gradient(circle at 70% 30%, purple, transparent 40%);

          5、層疊(overflow)

          層疊是一種將大量雜亂元素填充到一個整齊的包中的方法,可以創建一些有趣的形狀。在變形那部分的基礎上使用hidden參數,可以把邊緣遮蓋起來。

          overflow: hidden;

          以上5種元素缺一不可,隨便少一種都會產生怪異的效果。

          從左至右分別是缺少邊界半徑、陰影、變形、梯度、層疊的效果(點擊查看大圖)

          不過即使這樣,也很有抽象藝術的美感,仿佛在看畢加索的作品。

          只適用于Chrome

          不過,由于這是一個純個人藝術創作,Diana小姐姐并不關心瀏覽器適配性。

          因此,這些代碼在Chrome里可以完美展現,但如果用其他瀏覽器打開,可能就會出現不一樣的效果。

          比如,MAC上的Safari瀏覽器打開,妹子的眼睛就方了:

          肩膀上的高光,變成了一個大圈圈:

          胸前的禮服上,也被潑了一道墨:

          如果用早期的Chrome打開,會出現驚悚的頭身分離的效果:

          早期的Opera瀏覽器,打開之后臉方了:

          Windows 7上從IE 6到IE 11,顯示出來的都是這個鬼樣子:

          濃重的線條,甚至有點抽象藝術的感覺。

          同樣是早期IE,放到Mac上也一樣鬼畜,這是IE 5.1.7的效果:

          還有人試了試,在Windows 98系統的IE 7瀏覽器打開,會變成非常像素風的樣子:

          最恐怖的是三星手機上的夜間模式打開:

          連人種都變了啊!

          其他的幾張畫,換個瀏覽器打開也比較鬼畜。

          妹子你bra里的鋼圈出來了啊!

          拉夫領變得透明而有光澤,領口的蕾絲干脆斷掉了,仿佛是逃難時期的肖像畫。

          最后,如果你在iPhone上裝了Chrome,出來的也是Safari的效果,想看完整效果的話,請在安卓手機或者電腦的Chrome上打開。

          因此,有不少網友都覺得,這幾幅畫可以當成瀏覽器測試項目,一試就能知道內核用的是誰家的。

          反向繪圖

          CSS太難,學不會?不要緊,雖然我們不能把代碼變成圖片,但是可以把圖片變成代碼啊。

          沒錯,就是ASCII藝術,早在DOS時期,就有人用命令行界面來顯示圖片。直到今天已成為一種流行的互聯網文化。

          用單色字符來畫出世界名畫已經不算新鮮事。最近又有個碼農開發了一個新的項目Primg,讓任何一幅畫都可以用質數來表示。

          比如蒙拉麗莎,就可以用一個3萬位的質數二進制方式繪制出來。


          主站蜘蛛池模板: 国精无码欧精品亚洲一区| 久久人妻av一区二区软件| 国产一区视频在线免费观看| 精品中文字幕一区二区三区四区 | 色狠狠一区二区三区香蕉蜜桃| 亚洲丰满熟女一区二区v| 色系一区二区三区四区五区 | 怡红院AV一区二区三区| 少妇无码一区二区三区| 国产成人片视频一区二区| 在线|一区二区三区| 亚洲中文字幕乱码一区| 亚洲AV无码一区二区三区牲色| 亲子乱av一区区三区40岁| 亚洲视频一区在线观看| 国产成人久久精品一区二区三区| 国产高清一区二区三区四区| 欧洲精品码一区二区三区| 无码人妻精品一区二区三区久久久 | 怡红院美国分院一区二区| 波多野结衣久久一区二区| 色婷婷综合久久久久中文一区二区 | 国内精品无码一区二区三区| 国产成人精品久久一区二区三区| 一区二区三区久久精品| 国产高清视频一区二区| 精品在线视频一区| 亚洲A∨精品一区二区三区| 无码人妻一区二区三区在线水卜樱| 免费一区二区视频| 好吊视频一区二区三区| 果冻传媒一区二区天美传媒| 中文字幕一区二区三区精华液| 免费萌白酱国产一区二区三区| 中文字幕一区二区人妻| 无码人妻品一区二区三区精99| 一区二区在线免费观看| 中文字幕人妻第一区| eeuss鲁片一区二区三区| 无码精品人妻一区二区三区免费| 亚洲一区二区三区乱码A|