Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
SS的強(qiáng)大和精妙,只有在認(rèn)真研讀其代碼之后才會(huì)深刻明白。
今日繼續(xù)用純CSS畫(huà)圖,并給大家整理了本文中所有代碼,需要的小伙伴可以私信我哦。
首先,用CSS畫(huà)一個(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)然,顏色什么的,可以隨便改啦~
再畫(huà)一個(gè)可愛(ài)的雞蛋~~~像這樣:
代碼僅僅幾句話(huà):
#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%; }
長(zhǎng)這樣:
代碼非常非常少:
#moon {
width: 80px;
height: 80px;
border-radius: 50%;
box-shadow: 15px 15px 0 0 red;
}
是不是很神奇?不敢相信這幾句代碼居然有這樣的功力?
那就打開(kāi)電腦,按照我之前講的方法創(chuàng)建一個(gè)html試試吧~
不知道怎么創(chuàng)建的小伙伴看這里>>css3制作圖形大全:簡(jiǎn)單幾句代碼畫(huà)出漂亮的圖形,一起來(lái)看看吧~
碼來(lái)做藝術(shù)?
藝術(shù)家的作品大多有點(diǎn)高深,除非是寫(xiě)實(shí)類(lèi)作品,不然你不一定能「看懂」。
而代碼對(duì)大多數(shù)人來(lái)說(shuō)也是艱難的。對(duì)非專(zhuān)業(yè)人士來(lái)說(shuō),代碼可能比藝術(shù)品還要復(fù)雜。那么,如果用代碼來(lái)搞藝術(shù)創(chuàng)作,這一切會(huì)更簡(jiǎn)單嗎?
《索思沃爾德的夜晚》是一幅安靜的圖畫(huà)。即將西下的太陽(yáng)光撒在湖面上,湖上波光粼粼,泛著金光,波浪的漣漪一點(diǎn)點(diǎn)的散開(kāi)。岸上的建筑物則安然有序,燈塔、圍墻、小房子,組成了這幅安靜的風(fēng)景圖。
有人覺(jué)得這幅畫(huà)看上去冷清,過(guò)于安靜,是一幅悲傷的畫(huà)。
有人覺(jué)得這幅畫(huà)陽(yáng)光照耀四方,小屋整齊的立在一旁,是一幅和諧又溫暖的風(fēng)景畫(huà)。
當(dāng)然,如果這些人知道這幅畫(huà)是用代碼畫(huà)的,可能就只會(huì)說(shuō)這是一幅很漂亮的畫(huà)了。畢竟代碼聽(tīng)上去就和藝術(shù)無(wú)關(guān),和情感表達(dá)無(wú)緣。
此畫(huà)的作者本·埃文斯是一個(gè)網(wǎng)頁(yè)設(shè)計(jì)師,是一個(gè)前端開(kāi)發(fā),也是一個(gè)插畫(huà)家。《索思沃爾德的夜晚》是他用層疊樣式表(CSS)畫(huà)的一幅作品。除了這幅畫(huà),他還用 CSS 畫(huà)過(guò)大海,畫(huà)過(guò)撲克牌。
和他一樣使用 CSS 畫(huà)畫(huà)的人也不止一個(gè),近些年還有越來(lái)越多的趨勢(shì)。
自由網(wǎng)絡(luò)開(kāi)發(fā)者克里斯·帕特爾畫(huà)的辛普森一家是前些年的作品,只是近來(lái)才開(kāi)始被人注意。在 GitHub 上,你可以輕易找到創(chuàng)作者的代碼,并在它的基礎(chǔ)上進(jìn)行更改。
當(dāng)你復(fù)制原作者的代碼,再稍以修改后,你就可以畫(huà)出屬于自己的辛普森。你還可以給他變色,讓他從透明變成黃色、藍(lán)色、綠色。
在 CSS 作圖這個(gè)領(lǐng)域,數(shù)字藝術(shù)家戴安娜·史密斯則是一個(gè)不可忽略的先驅(qū)人物,他以 CSS 的巴洛克風(fēng)格作畫(huà)而聞名,創(chuàng)作過(guò)多幅 18 世紀(jì)復(fù)古風(fēng)格的作品,也畫(huà)過(guò)現(xiàn)實(shí)向的靜物海報(bào)。
史密斯的作品從來(lái)不使用繪圖軟件,他只用手寫(xiě)的 HTML / CSS代碼創(chuàng)建精美的圖片。作為一個(gè)每天 90% 的工作都圍繞著 JavaScript 工作的程序員,史密斯卻更喜歡 CSS 作畫(huà),因?yàn)?CSS 有一些限制的規(guī)則。
這只是我喜歡 CSS 的眾多原因之一。
有限的規(guī)則正是它的樂(lè)趣所在,你不會(huì)期望 CSS 能滿(mǎn)足你所有的需求。這就是為什么當(dāng)你在 CSS 最終找到了一種(可以滿(mǎn)足你的)方法時(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è)令人麻痹的概念。
值得一提的是,有限制的 CSS 圖畫(huà)不是一個(gè)完全靜態(tài)的藝術(shù)作品。不管是簡(jiǎn)單的辛普森一家頭像畫(huà)還是精致的巴洛克肖像畫(huà)、風(fēng)景畫(huà),他們都是會(huì)變化的。每個(gè)人可以通過(guò)改變開(kāi)源的代碼來(lái)創(chuàng)作出自己的 CSS 圖畫(huà)。
在此之外,選擇不同的瀏覽器打開(kāi)圖像也會(huì)呈現(xiàn)不同的作品。作為實(shí)時(shí)呈現(xiàn)的圖畫(huà),每個(gè)瀏覽器在加載頁(yè)面時(shí)都會(huì)將圖畫(huà)的代碼呈現(xiàn)為繪圖。
而大多數(shù)的數(shù)字藝術(shù)家都是在 Chrome 瀏覽器上處理代碼的。所以除了 Chrome 瀏覽器能夠呈現(xiàn)圖片本身預(yù)想的畫(huà)作外,其它瀏覽器都會(huì)「畫(huà)」出不同的圖像。這也展示了不同瀏覽器轉(zhuǎn)換工作的差別。
創(chuàng)作者說(shuō)不考慮圖畫(huà)的兼容性問(wèn)題,反而更有意思。
由于這個(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ò)火,裙子也多了一條豎線。
不過(guò)隨著時(shí)間往前移,我們用更多版本的瀏覽器配上 CSS 代碼圖畫(huà)時(shí),呈現(xiàn)效果就會(huì)更特別。
這幅畫(huà)本尊是這樣的:
在 Safari 瀏覽器中,蕾絲的花邊裝飾直接蓋在了女人的臉上,看不出原圖。
在 2014 版本的 Opera 瀏覽器中,畫(huà)作有了一種全然不同的風(fēng)格。
脖子分成了三個(gè)部分,眉毛、頭發(fā)、眼睫毛的位置都出現(xiàn)了偏移和錯(cuò)位,更條碼式。
而 Edge 瀏覽器則自動(dòng)消掉了畫(huà)作的棱角,使整幅圖畫(huà)更為平滑、陰沉。
最后在上古時(shí)期的網(wǎng)景瀏覽器中,這位女士的嘴巴、眼睛等五官都變成了不同大小的方塊,有點(diǎn)樂(lè)高的感覺(jué),風(fēng)格獨(dú)樹(shù)一幟。
作為該領(lǐng)域的先驅(qū)人物,史密斯給這些圖畫(huà)的表現(xiàn)賦予了更多的意義:
當(dāng)你在不同的瀏覽器上查看這張圖片時(shí),你就像是在查看互聯(lián)網(wǎng)的歷史,以及當(dāng)時(shí)用戶(hù)對(duì)瀏覽器的要求。
代碼是冰冷的、理性的代表,它是沒(méi)有感情的。而畫(huà)作的藝術(shù)則能表達(dá)作者豐沛的情感和思想。但當(dāng)理性的代碼用來(lái)創(chuàng)作感性的畫(huà)作時(shí),這一切會(huì)改變嗎?
在一部分人看來(lái),數(shù)字藝術(shù)是不能算作真正的藝術(shù)的。
當(dāng)大片空白可以在瞬息間充滿(mǎn)五彩的色塊,渲染過(guò)度也能在強(qiáng)大工具的幫助下變得快捷且自然時(shí),人們認(rèn)為這不再是藝術(shù)了。雖然數(shù)字化工具做的畫(huà)也可以很漂亮,很有創(chuàng)意,但人們會(huì)覺(jué)得它沒(méi)有「靈魂」。即使它能模仿油畫(huà)、水墨等不同風(fēng)格,但創(chuàng)造出的作品也稱(chēng)不上藝術(shù)。
這個(gè)問(wèn)題甚至可以上升到「代碼是不是藝術(shù)」的問(wèn)題上,深入討論一下藝術(shù)的定義和內(nèi)涵。
在主流觀念中來(lái),那些使用新工具去創(chuàng)作藝術(shù)作品的人不算正統(tǒng)藝術(shù)家。即便要稱(chēng)為藝術(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ù)字工具畫(huà)出的 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 作畫(huà)與其說(shuō)是藝術(shù),不如說(shuō)它讓我們看到了互聯(lián)網(wǎng)的一種能力,一次進(jìn)程,一段歷史。
本文作者 冷思真,首發(fā)于公眾號(hào)「AppSo」(ID:AppSo),這是一個(gè)讓你手機(jī)更好用的專(zhuān)業(yè)媒體,歡迎識(shí)別下方二維碼進(jìn)行關(guān)注
HTML不是編程語(yǔ)言,但這并不妨礙精通它的大佬玩出花來(lái)。
普通的前端,用HTML+CSS制作網(wǎng)頁(yè),元素簡(jiǎn)單,工具豐富。
大佬級(jí)前端,用HTML+CSS繪畫(huà),全程不用PS、AI這種圖形化的圖片編輯器,單純敲一行行代碼純手工繪制。
把代碼轉(zhuǎn)換之后,就變成了鮮嫩的水果:
或者畫(huà)出洛可可風(fēng)格的古典女性肖像:
還有弗拉芒巴洛克肖像風(fēng)格的人物畫(huà)像,充滿(mǎn)了中世紀(jì)的禁欲感:
現(xiàn)代的也有,比如這位在粉色燈光下的著禮服的妹子:
以及充滿(mǎn)者50年代氣息的復(fù)古風(fēng)人物海報(bào):
曲線、光影、漸變,每個(gè)元素都相當(dāng)復(fù)雜。
而且,創(chuàng)作過(guò)程中不用SVG,只用Atom文本編輯器和Chrome開(kāi)發(fā)者工具。
也就是說(shuō),畫(huà)面上的每一條曲線和漸變、每一處高光和陰影、每一根頭發(fā)和睫毛、每一片蕾絲和褶皺,都是一行行代碼從頭敲出來(lái)的!
如此精細(xì)程度和創(chuàng)造力,讓學(xué)美術(shù)的網(wǎng)友感嘆“學(xué)畫(huà)畫(huà)不如寫(xiě)代碼”,讓學(xué)計(jì)算機(jī)的同學(xué)覺(jué)得“別人寫(xiě)的這么藝術(shù),一定是我的教科書(shū)打開(kāi)方式不對(duì)”。
真·交叉學(xué)科大佬。
這個(gè)項(xiàng)目也一度登上了GitHub Trending排行榜第二名:
并且Issues里都是諸多用戶(hù)的膜拜:厲害!崇拜!太棒了!
它們的作者,是灣區(qū)前端大神Diana Smith小姐姐,她目前是企業(yè)及軟件開(kāi)發(fā)商Atlassian的一名資深Web開(kāi)發(fā)。
Diana在專(zhuān)門(mén)討論CSS的網(wǎng)站CSS-Tricks寫(xiě)下了詳細(xì)的教程。
畫(huà)出這樣一個(gè)圖形分成幾步?
如果不用CSS,一般都是直接嵌入這個(gè)特殊的圖形。
如果用CSS,那么就從黑色矩形開(kāi)始,然后在兩側(cè)加上上兩個(gè)
與白色背景顏色匹配的邊框半徑元素。
先畫(huà)出一個(gè)黑色矩形,然后兩邊用圓弧遮擋。有了基礎(chǔ)形狀后,下一步就是給它添上漸變的背景。但是如果用矩形方式填充,得到的效果就是這樣的:
Diana的辦法是:在保留矩形的同時(shí),加上兩個(gè)彎曲的div,把凹進(jìn)去的部分也填充上。
最后完整的代碼是這樣的:
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 );
}
你也可以去這個(gè)完成查看CSS樣式的實(shí)際運(yùn)行效果:
https://codepen.io/jean-jordan/pen/KeKaBw
剛剛我們畫(huà)的那幅畫(huà)像不像人的脖子?好的,我們?cè)倩氐饺讼癞?huà)上,Diana繪制人物的脖子也是類(lèi)似的過(guò)程。
在上面這張圖里,我們看到了Diana如何逐步改形狀,最終得到了油畫(huà)中人物的脖子。
但是僅僅會(huì)畫(huà)各種幾何形狀,是無(wú)法生成藝術(shù)品的,Diana總結(jié)了她在繪圖中的5個(gè)重要CSS屬性。
1、邊界半徑(border-radius)
邊界半徑是為了讓矩形的邊角過(guò)渡得更自然,對(duì)于大多數(shù)網(wǎng)頁(yè)開(kāi)發(fā)者來(lái)說(shuō),只需一個(gè)參數(shù)border-radius,可以設(shè)定不同的半徑數(shù)值。
border-radius: 15px 10px 40px 30px / 40px 10px 15px 30px;
2、盒子陰影(box-shadow)
對(duì)多個(gè)盒子陰影進(jìn)行分層是增加深度的最佳方法之一。框陰影將粘附到html容器的邊緣,也會(huì)沿著邊界半徑定義的邊緣。
box-shadow: 6px -11px 20px 1px red, -15px -15px 5px -10px blue, inset 5px 5px 35px 10px green;
開(kāi)發(fā)者可以指定模糊半徑,以及陰影是向內(nèi)延伸還是向外延伸。
3、變形(transform)
變形的主要方式有:旋轉(zhuǎn)(rotate)、縮放(scale)和傾斜(skew)
transform: rotate(-45deg)
transform: scale(0.7, 1.3)
transform: skew(25deg, 30deg);
此外還有透視,讓物體產(chǎn)生遠(yuǎn)小近大的視覺(jué)效果,或者是僅僅為畫(huà)出一個(gè)梯形。
transform: perspective(10px) rotateY(5deg);
4、線性梯度(linear-gradient)和徑向梯度(radial-gradient)
線性梯度用于定義一個(gè)方向上的漸變效果,徑向梯度用于定義圓和橢圓形的漸變效果
background-image: linear-gradient(0deg, blue, transparent 60%),
radial-gradient(circle at 70% 30%, purple, transparent 40%);
5、層疊(overflow)
層疊是一種將大量雜亂元素填充到一個(gè)整齊的包中的方法,可以創(chuàng)建一些有趣的形狀。在變形那部分的基礎(chǔ)上使用hidden參數(shù),可以把邊緣遮蓋起來(lái)。
overflow: hidden;
以上5種元素缺一不可,隨便少一種都會(huì)產(chǎn)生怪異的效果。
不過(guò)即使這樣,也很有抽象藝術(shù)的美感,仿佛在看畢加索的作品。
不過(guò),由于這是一個(gè)純個(gè)人藝術(shù)創(chuàng)作,Diana小姐姐并不關(guān)心瀏覽器適配性。
因此,這些代碼在Chrome里可以完美展現(xiàn),但如果用其他瀏覽器打開(kāi),可能就會(huì)出現(xiàn)不一樣的效果。
比如,MAC上的Safari瀏覽器打開(kāi),妹子的眼睛就方了:
肩膀上的高光,變成了一個(gè)大圈圈:
胸前的禮服上,也被潑了一道墨:
如果用早期的Chrome打開(kāi),會(huì)出現(xiàn)驚悚的頭身分離的效果:
早期的Opera瀏覽器,打開(kāi)之后臉?lè)搅耍?/p>
Windows 7上從IE 6到IE 11,顯示出來(lái)的都是這個(gè)鬼樣子:
濃重的線條,甚至有點(diǎn)抽象藝術(shù)的感覺(jué)。
同樣是早期IE,放到Mac上也一樣鬼畜,這是IE 5.1.7的效果:
還有人試了試,在Windows 98系統(tǒng)的IE 7瀏覽器打開(kāi),會(huì)變成非常像素風(fēng)的樣子:
最恐怖的是三星手機(jī)上的夜間模式打開(kāi):
連人種都變了啊!
其他的幾張畫(huà),換個(gè)瀏覽器打開(kāi)也比較鬼畜。
妹子你bra里的鋼圈出來(lái)了啊!
拉夫領(lǐng)變得透明而有光澤,領(lǐng)口的蕾絲干脆斷掉了,仿佛是逃難時(shí)期的肖像畫(huà)。
最后,如果你在iPhone上裝了Chrome,出來(lái)的也是Safari的效果,想看完整效果的話(huà),請(qǐng)?jiān)诎沧渴謾C(jī)或者電腦的Chrome上打開(kāi)。
因此,有不少網(wǎng)友都覺(jué)得,這幾幅畫(huà)可以當(dāng)成瀏覽器測(cè)試項(xiàng)目,一試就能知道內(nèi)核用的是誰(shuí)家的。
CSS太難,學(xué)不會(huì)?不要緊,雖然我們不能把代碼變成圖片,但是可以把圖片變成代碼啊。
沒(méi)錯(cuò),就是ASCII藝術(shù),早在DOS時(shí)期,就有人用命令行界面來(lái)顯示圖片。直到今天已成為一種流行的互聯(lián)網(wǎng)文化。
用單色字符來(lái)畫(huà)出世界名畫(huà)已經(jīng)不算新鮮事。最近又有個(gè)碼農(nóng)開(kāi)發(fā)了一個(gè)新的項(xiàng)目Primg,讓任何一幅畫(huà)都可以用質(zhì)數(shù)來(lái)表示。
比如蒙拉麗莎,就可以用一個(gè)3萬(wàn)位的質(zhì)數(shù)二進(jìn)制方式繪制出來(lái)。
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。