摘要:在繪制琦玉的頭像時(shí),最重要的一個(gè)屬性就是,我們用它可以畫(huà)出圓形橢圓及各種變體。以下的樣式能夠畫(huà)出琦玉的臉部形狀在調(diào)整后,可畫(huà)出眼鼻嘴的形狀介紹屬性也是一個(gè)很強(qiáng)大的屬性,能夠?qū)υ刈龈鞣N變形。
寫(xiě)這篇博客的起因是我看了Medium上的這篇文章:How I started drawing CSS Images,然后哇哦?,同樣是前端開(kāi)發(fā),這區(qū)別怎么這么大呢?這位作者和我完全點(diǎn)了不同的技能點(diǎn)啊!
看了幾個(gè)她在codepen上的作品,比如這個(gè)皮卡丘,發(fā)現(xiàn)用到的技術(shù)也并不多,于是我也想試試。
不過(guò)有哪個(gè)動(dòng)漫中的人物足夠簡(jiǎn)單,能夠用幾個(gè)基本的幾何圖形就畫(huà)出來(lái)呢?我想到了一個(gè)人,于是我決定畫(huà)一個(gè)《一拳超人》中的鹵蛋,不對(duì),是禿頭披風(fēng)俠——琦玉老師。
結(jié)果展示見(jiàn)下:
http://codepen.io/noiron/pen/...
從html文件中你可以看到這張圖片實(shí)際上全部是由div元素組合而成的,一共用到了15個(gè)div。在給一個(gè)div元素加上適當(dāng)?shù)腸ss樣式后,就形成了臉上的一個(gè)部位。
在繪制琦玉的頭像時(shí),最重要的一個(gè)css屬性就是border-radius,我們用它可以畫(huà)出圓形、橢圓及各種變體。圖中的臉部輪廓、眼睛、耳朵的形狀都是由border-radius來(lái)實(shí)現(xiàn)的,稍后將介紹其使用方法。
另一個(gè)需要說(shuō)明的css屬性是transform,可以實(shí)現(xiàn)平移和旋轉(zhuǎn)。
border-radius 介紹之前我對(duì)border-radius的認(rèn)識(shí)只局限于可以給元素加上圓角,以及將其值設(shè)為50%可以讓矩形顯示為圓形。查了些資料后,才發(fā)現(xiàn)可以用它畫(huà)出許多圖形。
border-radius是以下四個(gè)屬性的簡(jiǎn)寫(xiě),每一個(gè)屬性用于設(shè)置一個(gè)角的形狀:
border-top-left-radius border-top-right-radius border-bottom-right-radius border-bottom-left-radius
圖片來(lái)自MDN
從上圖可以看出當(dāng)只設(shè)置一個(gè)值或設(shè)置兩個(gè)相同的值時(shí),顯示為圓;設(shè)置兩個(gè)不同的值時(shí),顯示為橢圓。以border-top-left-radius為例:
/* the corner is a circle */ /* border-top-left-radius: radius */ border-top-left-radius: 3px; /* the corner is an ellipsis */ /* border-top-left-radius: horizontal vertical */ border-top-left-radius: 0.5em 1em;
若是簡(jiǎn)寫(xiě)形式,則寫(xiě)成如下格式:
border-radius: 48% 48% 50% 50% / 42% 42% 54% 54%;
"/"之前的四個(gè)值表示水平軸的長(zhǎng)度,"/"之后的四個(gè)值表示垂直軸的長(zhǎng)度,當(dāng)水平軸的長(zhǎng)度和垂直軸的長(zhǎng)度相等時(shí),可以省略"/"及之后的這一組值。
對(duì)于同一組的四個(gè)數(shù)值,也有簡(jiǎn)寫(xiě)方式。方法與 padding 和 margin 的簡(jiǎn)寫(xiě)類(lèi)似,第一個(gè)值與第三個(gè)值相同或第二個(gè)值與第四個(gè)值相同時(shí),可以只寫(xiě)一遍。
在了解了border-radius的用法后,通過(guò)給div元素合適的寬高比,在調(diào)整四個(gè)圓角的半徑,就能夠獲得你想要的形狀了。
// 以下的樣式能夠畫(huà)出琦玉的臉部形狀 // 在調(diào)整width, height, border-radius 后,可畫(huà)出眼、鼻、嘴的形狀 #div1 { width: 100px; height: 144px; border: 2px solid #000; border-radius: 48% 48% 50% 50% / 42% 42% 54% 54%; }transform 介紹
transform屬性也是一個(gè)很強(qiáng)大的屬性,能夠?qū)υ刈龈鞣N變形。不過(guò)我們這里只需要用它來(lái)進(jìn)行平移和旋轉(zhuǎn)的操作。
/* 可以用 translate 來(lái)實(shí)現(xiàn)平移操作 */ /* translate() 的兩個(gè)參數(shù)分別表示水平方向和垂直方向的平移距離 */ transform: translate(12px, 50%); /* 上面這一行與下面的這兩行是等價(jià)的 */ transform: translateX(12px); transform: translateY(50%); /* 順時(shí)針旋轉(zhuǎn)20度 */ transform: rotate(20deg);組合得到最終結(jié)果
在你已經(jīng)將琦玉頭像進(jìn)行拆解,把各個(gè)部分都用一個(gè)div來(lái)表示并加上了合適的樣式后,就能將它們組合起來(lái)了。你可以用transform來(lái)調(diào)整它們的距離,或者直接用absoulte定位。
最后就得到了琦玉的頭像:
額,禿子,你誰(shuí)?。??
看來(lái)不是所有的光頭都叫琦玉,還需要對(duì)細(xì)節(jié)進(jìn)行一點(diǎn)調(diào)整:
OK,這樣就有點(diǎn)像琦玉老師了。最后,如果你愿意的話(huà),還可以用transition屬性來(lái)稍微加上點(diǎn)動(dòng)畫(huà)效果。
再放一遍代碼地址:
Codepen代碼及展示
本文在我的博客上的地址:
如何用 html 和 css 畫(huà)一拳超人
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/111895.html
摘要:今天小編來(lái)為大家介紹一個(gè)叫做的模塊,我們可以用它來(lái)繪制高清的交互式地圖,并且標(biāo)注出重要的地理位置等等,讀者在看過(guò)本篇文章之后,讀者大致會(huì)掌握使用來(lái)進(jìn)行交互式地圖的繪制在地圖上標(biāo)注出重要的建筑物安裝模塊畫(huà)一張最簡(jiǎn)單的地圖我們先來(lái)繪制一張 今天小編來(lái)為大家介紹一個(gè)叫做Folium的模塊,我們...
摘要:每一個(gè)陰影屬性值就可以繪制出一個(gè)圓點(diǎn),因?yàn)榭梢越邮斩鄠€(gè)屬性性,所以就可以用多個(gè)圓點(diǎn)來(lái)畫(huà)點(diǎn)陣圖了。 showImg(https://segmentfault.com/img/bVbsSVm?w=400&h=348); 效果預(yù)覽 按下右側(cè)的點(diǎn)擊預(yù)覽按鈕可以在當(dāng)前頁(yè)面預(yù)覽,點(diǎn)擊鏈接可以全屏預(yù)覽。 https://codepen.io/comehope/pen/KLvENb 可交互視頻 此視頻...
摘要:每一個(gè)陰影屬性值就可以繪制出一個(gè)圓點(diǎn),因?yàn)榭梢越邮斩鄠€(gè)屬性性,所以就可以用多個(gè)圓點(diǎn)來(lái)畫(huà)點(diǎn)陣圖了。 showImg(https://segmentfault.com/img/bVbsSVm?w=400&h=348); 效果預(yù)覽 按下右側(cè)的點(diǎn)擊預(yù)覽按鈕可以在當(dāng)前頁(yè)面預(yù)覽,點(diǎn)擊鏈接可以全屏預(yù)覽。 https://codepen.io/comehope/pen/KLvENb 可交互視頻 此視頻...
摘要:僅僅使用作為身體的布局,用的各種和圓角屬性來(lái)繪制各部位的形狀,當(dāng)然也不會(huì)使用任何圖片哦。有的同學(xué)說(shuō),用不是能畫(huà)得更逼真而且更簡(jiǎn)單嗎這點(diǎn)我也非常贊同,但我的理由還是,那就沒(méi)意思了。這次寫(xiě)的詳細(xì)一點(diǎn),把各個(gè)部位都拆出來(lái)分析。收工歡迎大家吐槽 僅僅使用div作為身體的布局,用css3的各種transform和圓角屬性來(lái)繪制各部位的形狀,當(dāng)然也不會(huì)使用任何圖片哦。那就沒(méi)意思了。有的同學(xué)說(shuō),用c...
閱讀 2216·2021-11-15 11:36
閱讀 1383·2021-10-14 09:42
閱讀 4206·2021-09-30 09:52
閱讀 1711·2021-09-24 10:24
閱讀 962·2021-09-02 09:56
閱讀 2685·2019-08-30 13:11
閱讀 3060·2019-08-30 13:06
閱讀 943·2019-08-30 12:56