精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一篇文章帶你用 CSS 繪制一個3D掘金 logo

開發 前端
像這種比較規則的圖形還能簡單通過CSS應付一下,如果有一些不規則的,或者有曲面,那就不太好實現了,而且高光也無法真正模擬出來,像這種情況還是建議通過Three.js這樣專業的圖形處理庫才行。

嘗試一下用 CSS 繪制簡單的 3d 圖形,比如一個掘金 logo?

圖片

相比 2d 繪制,3d 有哪些需要注意的小細節呢?一起看看吧

一、金字塔形/四棱錐形

除去挖空部分,整個外形其實是一個金字塔形,或者叫四棱錐形(四角錐)。

圖片

一共有5個面,所以我們可以準備5個元素。

<juejin>
<pane a></pane>
<pane b></pane>
<pane c></pane>
<pane d></pane>
<bottom></bottom>
</juejin>

其中,bottom表示底部的正方形,其余4個表示側面4個三角形。

首先先從正方體開始。

注意,需要呈現 3d 視覺,需要添加transform-style: preserve-3d,先繪制一個側面。

juejin{
--s: 200px;
position: relative;
width: var(--s);
height: var(--s);
transform-style: preserve-3d;
perspective: 3000px;
transform: rotateX(calc( .3 * -90deg)) rotateY(calc( .1 * 90deg));
}
pane{
position: absolute;
inset: 13.3% 0 0;
transform-origin: center bottom;
}
pane[a]{
background-color: #368dff;
transform: translate3d(0, 0, calc(var(--s) * -0.5));
}

效果如下:

圖片

用同樣的方式,繪制出4個側面。

pane[b]{
background-color: #368dff;
transform: translate3d(0, 0, calc(var(--s) * 0.5));
}
pane[c]{
background-color: #1e80ff;
transform: translate3d(calc(var(--s) * -0.5), 0, 0) rotateY(90deg);
}
pane[d]{
background-color: #1e80ff;
transform: translate3d(calc(var(--s) * 0.5), 0, 0) rotateY(90deg);
}

效果如下:

圖片

然后,將4個側面裁剪成三角形,用clip-path就行了。

pane{
/**/
clip-path: polygon(50% 0, 100% 100%, 0 100%);
}

效果如下:

圖片

最后,將4個側面沿著底部旋轉一個角度,使其合并在一起,由于大小完全一樣,底部又是正方形,傾斜角度自然也相同,這里就不通過數學計算了,直接用一個 CSS 變量去實時比對。

juejin{
/**/
--deg: 35.3deg;
}
pane[a]{
/**/
transform: translate3d(0, 0, calc(var(--s) * -0.5)) rotateX(calc(var(--deg) * -1));
}
pane[b]{
/**/
transform: translate3d(0, 0, calc(var(--s) * 0.5)) rotateX(var(--deg));
}
pane[c]{
/**/
transform: translate3d(calc(var(--s) * -0.5), 0, 0) rotateY(90deg) rotateX(calc(var(--deg) * -1));
}
pane[d]{
/**/
transform: translate3d(calc(var(--s) * 0.5), 0, 0) rotateY(90deg) rotateX(var(--deg));
}

效果如下:

圖片

這樣就得到了一個金字塔形/四棱錐形。

圖片

二、側邊鏤空和橫截面處理

前面得到了一個完整的四棱錐,現在需要先將側面鏤空。

這里有兩種方式,第一,可以用透明和不透明的漸變填充,這樣透明的部分就是鏤空的了;還有一種方式,用??mask??遮罩,也能輕易的實現。

pane{
/* */
-webkit-mask: linear-gradient(to bottom, red 50%, transparent 0) 0 0/ 100% 40%;
}

效果如下:

圖片

但是現在還是看著像紙片一樣,需要將截斷的幾個面都封起來,我們再加一個標簽,用兩個偽元素將頂部覆蓋。

<juejin>
<!-- -->
<top></top>
</juejin>
top{
position: absolute;
inset: 0;
background-color: #1677f7;
transform: translate3d(0, calc(var(--s) * 0.36), 0) rotateX(90deg) scale(.8);
transform-style: preserve-3d;
box-shadow: inset 0 0 calc(var(--s) * 0.3) rgb(255 255 255 / 45%);
}
top::before{
content: '';
position: absolute;
inset: 0;
background-color: inherit;
transform: translate3d(0, 0, calc(var(--s) * 0.285)) scale(.5);
box-shadow: inherit;
}

當然,這里需要多多調整一下細節,確保橫截面的大小和位置剛好吻合。

圖片

同樣還有底部的截面。

bottom::before,
bottom::after{
content: '';
position: absolute;
inset: 0;
background-color: inherit;
transform: translate3d(0, 0, calc(var(--s) * 0.285)) scale(.595);
box-shadow: inherit;
}
bottom::after{
transform: translate3d(0, 0, calc(var(--s) * 0.568)) scale(.195)
}

效果如下:

圖片

三、其他光影細節和鼠標跟隨效果

首先是底部的投影,這是通過??filter: blur??實現的,可以讓整個場景更具空間感。

juejin::after{
position: absolute;
content: '';
width: var(--s);
height: var(--s);
top: 80%;
background-color: rgba(0, 0, 0, 0.1);
transform: rotateX(90deg) scale(1.2);
filter: blur(20px);
}

圖片

然后是截面的高光處理,這里是通過內陰影實現的,讓整體光影看著更加自然,就像上方有光線一樣

top{
/**/
box-shadow: inset 0 0 calc(var(--s) * 0.3) rgb(255 255 255 / 45%);
}

圖片

最后是鼠標跟隨效果,這里是通過 CSS 變量實現的,通過 JS 獲取鼠標的相對位置,然后通過 CSS 變量 傳遞,實時改變 transform 的旋轉角度。

juejin{
/* */
transform: rotateX(calc( (var(--y) - 0.3) * -90deg)) rotateY(calc( (var(--x) - 0.3) * 90deg));
}

JS 監聽mousemove就可以了。

document.body.addEventListener('mousemove', function(ev){
document.body.style.setProperty('--x', ev.clientX / document.body.offsetWidth)
document.body.style.setProperty('--y', ev.clientY / document.body.offsetHeight)
})

這樣就得到了文章開頭所示效果:

圖片

四、總結一下

總的來說,繪制這樣一個的 3d 圖形還是比較輕松的,下面總結一下

  1. 添加transform-style: preserve-3d才能呈現 3d 視覺。
  2. 掘金 logo 整體上是一個金字塔形,或者叫四棱錐形(四角錐)。
  3. 整個繪制就是通過translate3d、rotate3d等基礎操作組合而成。
  4. 鏤空部分可以通過漸變填充,或者mask遮罩實現。
  5. 橫截面需要多多調整一下細節,確保橫截面的大小和位置剛好吻合。
  6. 為了讓整個模型更加真實,需要添加合理的高光和投影。
  7. 鼠標跟隨效果可以通過 CSS 變量傳遞實現。

當然,像這種比較規則的圖形還能簡單通過CSS應付一下,如果有一些不規則的,或者有曲面,那就不太好實現了,而且高光也無法真正模擬出來,像這種情況還是建議通過three.js這樣專業的圖形處理庫才行。

責任編輯:姜華 來源: 前端偵探
相關推薦

2022-12-14 08:03:27

CSS變量前端

2021-01-25 05:39:54

Css前端Border

2021-04-07 06:11:37

Css前端CSS定位知識

2021-05-31 09:30:36

Css前端CSS 特效

2020-11-03 19:18:28

CSS對齊文本

2021-01-15 18:37:49

CSS3Filters視覺

2020-11-17 11:10:21

CSS選擇器HTML

2022-02-21 09:44:45

Git開源分布式

2021-06-30 00:20:12

Hangfire.NET平臺

2023-05-12 08:19:12

Netty程序框架

2021-01-20 05:31:29

CSS3Filters圖像

2021-05-20 09:02:59

CSS單位長度

2023-06-28 15:04:59

CSSHTML

2023-08-01 14:34:12

HTMLCSS

2022-03-04 09:31:41

CSS前端屬性選擇器

2022-02-15 09:31:43

透明度CSS

2020-11-27 08:51:29

CSSOpacity透明度

2020-12-18 05:40:37

CSS clearHtml

2021-05-15 09:18:04

Python進程

2021-07-01 10:01:16

JavaLinkedList集合
點贊
收藏

51CTO技術棧公眾號

天天精品视频| 美女尤物在线视频| 蜜臀av亚洲一区中文字幕| 国产一区二区精品丝袜| 中文字幕视频三区| 草莓视频丝瓜在线观看丝瓜18| 91亚洲精品久久久蜜桃| 国产精品久久久久久久午夜| 国产jjizz一区二区三区视频| 婷婷丁香久久| 亚洲成人第一页| 日产中文字幕在线精品一区| 一级片免费网站| 伊人激情综合| 上原亚衣av一区二区三区| 国产大学生av| 国产亚洲精彩久久| 一区二区三区欧美在线观看| 这里只有精品免费| 国产精品第一页在线| 免费在线观看a级片| 欧美变态挠脚心| 欧美日韩精品一二三区| 欧美不卡在线播放| 男女啪啪在线观看| 91网站在线观看视频| 91免费精品视频| 欧美啪啪小视频| 欧美精品午夜| 这里只有精品视频| 中文字幕av网址| 粉嫩av一区二区| 欧美二区乱c少妇| 亚洲高清在线免费观看| 黄色激情在线播放| 亚洲一区二区三区四区五区黄| 日本在线高清视频一区| 婷婷婷国产在线视频| 国产成人综合在线播放| 成人免费看吃奶视频网站| 波多野结衣啪啪| 亚洲欧美日韩国产一区二区| 久久久久国色av免费观看性色 | 日韩精品在线免费播放| 制服下的诱惑暮生| 精品视频91| 欧美精品久久一区二区三区| 中文字幕一区二区三区四区在线视频| 午夜激情在线播放| 欧美日韩国产色| 波多野结衣综合网| 国产高清视频色在线www| 亚洲综合一区二区三区| 国产一级不卡视频| 日本在线免费| 国产精品一区二区三区四区 | av中文在线资源库| 亚洲蜜臀av乱码久久精品| 一区二区三区不卡在线| 欧洲天堂在线观看| 久久久www成人免费毛片麻豆| 精品1区2区| 色一情一乱一区二区三区| 成人动漫av在线| 国产日韩欧美一区二区三区四区| 成人爽a毛片一区二区| 成人丝袜18视频在线观看| av在线不卡观看| 后进极品白嫩翘臀在线视频| 成人午夜碰碰视频| 黑人中文字幕一区二区三区| 凸凹人妻人人澡人人添| 久久综合久久99| 久久久久免费网| 你懂的在线播放| 欧美国产日本视频| 欧美aaa在线观看| 黄av在线播放| 亚洲第一成年网| 亚洲经典中文字幕| 国产精品久久久91| 中文字幕精品一区二| 久久99国产精品麻豆| 99re在线观看| 爽爽视频在线观看| 欧美国产精品中文字幕| 色一情一乱一乱一区91| av剧情在线观看| 欧美亚洲禁片免费| 亚洲欧洲日韩综合| 九一亚洲精品| 久久综合电影一区| 国产精品视频免费播放| 久久成人免费网| 国产伦精品一区二区三区视频孕妇 | 黄色一区二区三区四区| 日韩免费在线看| 夜夜嗨aⅴ一区二区三区| 国产精品亚洲第一区在线暖暖韩国| 国产伦一区二区三区色一情| 高清中文字幕一区二区三区| 亚洲免费观看高清| 91av在线免费播放| 久久亚洲精精品中文字幕| 精品丝袜一区二区三区| 国产精品久久久久久久精| 免费视频一区二区三区在线观看| 91精品久久久久久久| 亚洲欧美综合一区二区| 亚洲天堂网中文字| 亚洲国产精品久久久久婷蜜芽| 日韩福利影视| 亚洲美女av在线播放| 久久久久99精品成人片试看| 久久综合九色| 国产欧美综合精品一区二区| 日本高清视频在线播放| 精品久久久久久久久国产字幕| 男人午夜视频在线观看| 日本黄色的视频| 我爱我色成人网| 欧美成人性战久久| 国产精品久久国产精麻豆96堂| 日韩视频在线一区二区三区| 成人国产在线视频| 国产精品一区二区三区四区色 | 91精品国产乱码在线观看| 久久99久久99精品免视看婷婷| 欧美成ee人免费视频| 韩国日本一区| 欧美一区二区三区视频| 女人黄色一级片| 亚洲一区欧美激情| 国产欧美丝袜| 日韩另类在线| 91精品国产一区二区三区蜜臀| 69精品无码成人久久久久久| 亚洲少妇诱惑| 国产欧美韩日| 国产又色又爽又黄刺激在线视频| 欧美一级片在线看| 特黄一区二区三区| 欧美a级理论片| 日日夜夜精品网站| 激情开心成人网| 亚洲日本中文字幕免费在线不卡| 可以免费看的av毛片| 成人免费视频国产在线观看| a级片一区二区| 精品中文字幕一区二区三区四区 | 欧美高清性xxxxhdvideosex| 日本黄色免费在线| 亚洲精品在线免费观看视频| 国产一级做a爰片在线看免费| 国产乱子伦视频一区二区三区 | 亚洲一级电影| 超碰97在线资源| 欧美日韩经典丝袜| 亚洲第一偷拍网| 久久夜靖品2区| 99精品视频在线免费观看| 分分操这里只有精品| 久久99国产精品久久99大师| 久久久久久久一| 熟妇高潮一区二区高潮| 欧美性xxxx在线播放| 四虎永久免费在线观看| 视频一区二区三区在线| 亚洲高清不卡一区| 日日夜夜综合| 欧美大胆a视频| 欧美一级在线免费观看| 午夜精品福利视频网站| 精品人妻中文无码av在线| 九九九久久久精品| www.日本三级| 亚洲视频分类| 国产精品丝袜白浆摸在线| 久久久久久久久免费视频| 欧美xxxxx牲另类人与| 黄色一级片免费看| 国产亚洲成av人在线观看导航 | 在线国产精品视频| 91精品啪在线观看国产18| 亚洲一区二区欧美日韩| 国产草草浮力影院| 日韩和欧美一区二区| 亚洲一区二区三区精品动漫| 久久福利小视频| 亚洲高清久久| 日韩欧美一区二区三区四区五区 | 欧美日本精品一区二区三区| 五月天色婷婷丁香| 成人av在线电影| 热久久精品免费视频| 亚洲精品电影| 久久婷婷人人澡人人喊人人爽| 99只有精品| 久久乐国产精品| 最新97超碰在线| 精品免费视频一区二区| 中文字幕av久久爽| 一区二区三区在线观看欧美| 受虐m奴xxx在线观看| 国产乱码一区二区三区| 女性女同性aⅴ免费观女性恋| 99成人在线视频| 久久一区二区三区av| 国产乱码精品一区二区三区亚洲人| 8x拔播拔播x8国产精品| 91亚洲天堂| 这里只有精品在线观看| 天堂影院在线| 日韩欧美中文一区二区| 最新中文字幕免费| 精品动漫一区二区三区| 欧美偷拍第一页| 国产精品女同互慰在线看| 国产精品久久久久久久无码| 国产一区在线观看麻豆| 91香蕉视频污版| 国产一区导航| 免费看毛片的网址| 欧美在线日韩| 亚洲一区二区三区乱码| 国产成人精品三级高清久久91| 成人自拍偷拍| 日韩成人在线观看视频| 国产精品一区二区3区| 欧美www.| 国产精品www| 欧美韩国亚洲| 91精品国产高清久久久久久91| 在线āv视频| 久久久99久久精品女同性| 超碰97在线免费观看| 日韩激情av在线免费观看| 殴美一级特黄aaaaaa| 日韩区在线观看| 国产乱淫av免费| 欧美日本一区二区三区四区| 91丨九色丨海角社区| 日本韩国一区二区三区视频| 国产精品久久久久久久妇| 午夜精品成人在线| 精品国产免费观看| 欧美日韩亚洲91| 久久久久亚洲av无码专区 | 电影久久久久久| 5566日本婷婷色中文字幕97| 男女羞羞在线观看| 38少妇精品导航| gay欧美网站| 日本欧美中文字幕| 日本一区二区三区视频在线| 国产91网红主播在线观看| 日韩免费va| 国产精品久久久久久久美男| 亚洲aⅴ网站| 91精品国产91久久久久青草| 亚洲午夜免费| 九色91在线视频| 夜夜春成人影院| 亚洲mv在线看| 一区二区电影在线观看| 91国在线高清视频| 国产亚洲毛片在线| 久久久久免费精品| 美女网站在线免费欧美精品| 免费看的av网站| 99精品视频在线免费观看| 欧美成人国产精品一区二区| 中文字幕五月欧美| 久久影院一区二区| 欧美性xxxx极品hd欧美风情| 中文字幕+乱码+中文乱码91| 欧美一级黄色大片| 色丁香婷婷综合久久| 亚洲人成在线电影| 求av网址在线观看| 午夜精品久久久久久久久久久久久 | 日本免费一区二区三区视频| 国内一区二区三区在线视频| 国产成人手机高清在线观看网站| 亚洲欧美一区二区原创| 午夜日韩激情| 国产一级片黄色| 国产激情一区二区三区四区| 特大黑人巨人吊xxxx| 国产精品久久影院| 日韩 国产 在线| 欧美高清www午色夜在线视频| 黑人操亚洲女人| 中文字幕日韩有码| heyzo在线| 国产精品丝袜一区二区三区| 成人自拍在线| 先锋影音欧美| 怡红院精品视频在线观看极品| 日本美女高潮视频| 国产.精品.日韩.另类.中文.在线.播放| 一区二区不卡在线观看| 亚洲色图21p| 深夜福利91大全| 98色花堂精品视频在线观看| 国产精品入口福利| 欧美一级二级三级视频| 黄频视频在线观看| 久久久久久久尹人综合网亚洲| 亚洲天堂小视频| 日本一区二区免费在线 | 亚洲五月综合| 日韩亚洲在线视频| 成人激情免费网站| 中文字幕在线观看2018| 色综合久久久久综合体桃花网| 精品人妻午夜一区二区三区四区 | 在线观看h网| 国产精品99久久久久久久久久久久| 亚洲一区网址| 老汉色影院首页| 美女视频网站黄色亚洲| 四虎永久免费影院| 亚洲高清视频中文字幕| 一级黄色大毛片| 中文字幕精品一区二区精品| 男人av在线播放| 国内成+人亚洲| 亚洲福利一区| 中国男女全黄大片| 日韩码欧中文字| 中文字幕一区二区久久人妻| 亚洲欧洲国产一区| 亚洲涩涩在线| 久久国产精品 国产精品| 欧美体内she精视频在线观看| 你懂的在线网址| 欧美激情亚洲自拍| 国产精一区二区| 一区二区三区四区免费观看| 另类小说欧美激情| www久久久久久久| 欧美午夜不卡在线观看免费| 精品无吗乱吗av国产爱色| 97超级碰碰碰| 欧美理伦片在线播放| 人妻夜夜添夜夜无码av| 成人毛片老司机大片| 久久精品人妻一区二区三区| 欧美成人午夜电影| 日本性爱视频在线观看| 91一区二区三区| 午夜日韩福利| 国产一级黄色录像| 欧美日韩激情视频| 亚洲国产精品久久久久久6q| 欧美国产欧美亚洲国产日韩mv天天看完整| 综合电影一区二区三区| 日本丰满少妇做爰爽爽| 一区二区欧美日韩视频| 日本成人伦理电影| 视频一区视频二区视频三区视频四区国产| 性感少妇一区| 久久艳妇乳肉豪妇荡乳av| 亚洲大胆av| 黄色免费看视频| 精品美女久久久久久免费| 亚洲色欧美另类| 国产精品69久久| 外国成人免费视频| 激情av中文字幕| 欧美色图在线视频| a天堂中文在线| 91在线观看免费| 91久久夜色精品国产九色| 亚洲av无码国产精品久久| 欧美日韩在线观看视频| jizz日韩| av免费观看久久| 日韩精品一级中文字幕精品视频免费观看 | 亚洲丝袜一区在线| 99久热在线精品视频观看| 欧妇女乱妇女乱视频| 2017欧美狠狠色| 91在线视频国产| 久久免费高清视频| 国产欧美日韩精品一区二区三区| 免费成人黄色大片| 精品福利视频导航| 午夜视频在线免费观看| 97中文在线| 日韩精品久久理论片| 欧美黑人精品一区二区不卡| 精品香蕉在线观看视频一| 96sao精品免费视频观看| 久久视频这里有精品| 国产精品乱码妇女bbbb| 少妇无码一区二区三区| 国产欧美精品日韩| 一本综合精品|