精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美激情偷拍自拍| 黄色欧美视频| 久久色.com| 国产精品免费在线免费| 日本 欧美 国产| 无码国模国产在线观看| 狠狠做深爱婷婷久久综合一区| 日本在线视频不卡| 精品区在线观看| 亚洲欧美高清| www国产91| 日本一级片在线播放| 久久久人成影片一区二区三区在哪下载| 亚洲国产精品t66y| 国产精品二区在线| 在线播放国产一区| 99精品国产一区二区青青牛奶| 中文日韩在线观看| 人妻体内射精一区二区三区| 精品三区视频| 欧美午夜性色大片在线观看| 香蕉视频免费版| 四虎成人免费在线| 粉嫩aⅴ一区二区三区四区五区| 国产成人av网| 日产电影一区二区三区| 日本激情一区| 亚洲女同性videos| 中文在线观看免费视频| 91丨精品丨国产| 一本色道a无线码一区v| 97免费视频观看| 日韩欧美小视频| 久久精品亚洲国产奇米99 | 97久久中文字幕 | 国产又粗又猛又爽又黄视频| 国产精品资源| 久久久免费观看视频| 亚洲色偷偷综合亚洲av伊人| 国内精品久久久久久久久电影网| 亚洲成人在线网| 精产国品一二三区| 亚洲精品成人一区| 欧美日韩视频在线观看一区二区三区 | 亚洲第一福利一区| 国产乱子伦精品视频| 九色porny在线| 国产精品视频yy9299一区| 欧美激情第六页| 天天干天天草天天射| 国产成人av一区二区三区在线观看| 国产色婷婷国产综合在线理论片a| 成人公开免费视频| 久久一区二区三区超碰国产精品| 欧美性受xxxx白人性爽| 日韩激情在线播放| 一区二区高清| 青青草原一区二区| 亚洲成熟少妇视频在线观看| 久久一区国产| 国产精品久久久久久久午夜| 日本中文字幕在线观看视频| 天堂在线亚洲视频| 国产精品色视频| 一本一道精品欧美中文字幕| 麻豆国产欧美日韩综合精品二区| 国产精品久久久久久久久久久新郎| 中文在线第一页| 日韩av在线发布| 国产精品视频网站| 亚洲自拍第二页| 国产真实精品久久二三区| 5g影院天天爽成人免费下载| 性欧美一区二区三区| 国产成人免费视频网站高清观看视频| 成人自拍爱视频| 天天操天天干天天爽| 国产日本亚洲高清| 一区二区免费电影| 羞羞电影在线观看www| 亚洲国产视频在线| 日韩黄色片视频| 美女色狠狠久久| 欧美一区二区人人喊爽| a天堂视频在线观看| 亚洲欧洲美洲国产香蕉| 中文字幕精品www乱入免费视频| 午夜剧场免费在线观看| 亚洲午夜在线| 97精品欧美一区二区三区| 无码无套少妇毛多18pxxxx| 麻豆国产精品777777在线| 99精彩视频在线观看免费| 五月天婷婷社区| 国产精品无遮挡| 国产91沈先生在线播放| 一级毛片久久久| 欧美一区三区二区| 午夜一区二区三区免费| 99热国内精品| 88xx成人精品| 国产男女猛烈无遮挡| 91丝袜国产在线播放| 亚洲视频小说| 欧美激情网站| 欧美一区二区三区在线看| 国产黑丝一区二区| 亚洲成人精品| 国产成人精品av| 成人黄色免费视频| 中文一区二区在线观看| 97在线国产视频| 国产亚洲观看| 国产午夜精品美女视频明星a级| 国产高清在线免费观看| 轻轻草成人在线| 激情久久av| 26uuu亚洲电影在线观看| 色琪琪一区二区三区亚洲区| 国产精品一区二区在线免费观看| 日韩理论电影大全| 国产91精品久久久久| 亚洲精品一区二区三区不卡| 国产精品视频yy9299一区| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 国产成年精品| 日韩在线激情视频| 激情网站在线观看| 久久久久久**毛片大全| 久在线观看视频| 国产极品模特精品一二| 欧美伦理91i| 97在线播放免费观看| 国产亚洲精久久久久久| 国产老熟妇精品观看| 亚洲一区网址| 大胆人体色综合| 91av久久久| 国产欧美日韩在线| 中文字幕乱码人妻综合二区三区 | 日韩尤物视频| 肉色欧美久久久久久久免费看| 精品国产乱码久久久久久1区2区| 极品美妇后花庭翘臀娇吟小说| 蜜桃视频一区二区| 亚欧精品在线| 成人午夜sm精品久久久久久久| 国产婷婷色综合av蜜臀av | 欧美日韩极品在线观看一区| 亚洲精品一区二区三区影院忠贞| 国产九九精品| 六十路精品视频| 新版的欧美在线视频| 日韩成人小视频| 久久青青草原亚洲av无码麻豆 | 国产日韩欧美91| 日韩精品一区二区亚洲av性色| 久久婷婷亚洲| 日本视频一区二区在线观看| 亚洲欧洲日本韩国| 亚洲精品一区中文| 无码人妻丰满熟妇区五十路 | 久久不射中文字幕| 久久手机视频| 激情亚洲影院在线观看| 中文字幕日韩欧美精品在线观看| 在线亚洲欧美日韩| 亚洲品质自拍视频| 香蕉视频免费网站| 亚洲一区二区网站| 视频一区亚洲 | 国产九色精品| 亚洲欧美小说色综合小说一区| 亚洲色图激情小说| 中国老头性行为xxxx| 亚洲视频狠狠干| 国产精品扒开腿做爽爽爽a片唱戏| 国产日韩欧美一区| 日韩欧美精品久久| 免费精品一区二区三区在线观看| 国模gogo一区二区大胆私拍| 日韩美女一级视频| 欧美视频日韩视频| 久久免费少妇高潮99精品| av电影天堂一区二区在线观看| 欧美一级片中文字幕| 欧美日韩国产免费观看视频| 96国产粉嫩美女| 性xxxxfreexxxxx欧美丶| 最好看的2019年中文视频 | 国产精品久久久久久久久久齐齐| 久久精品国亚洲| 四虎精品一区二区三区| 欧美丝袜自拍制服另类| 久久国产精品二区| 国产女人18毛片水真多成人如厕 | 久久国产加勒比精品无码| 亚洲 小说区 图片区 都市| 欧美日韩一级片网站| 伊人365影院| 国产精品国产三级国产有无不卡 | 可以在线看的黄色网址| 亚洲有吗中文字幕| 欧美日韩在线精品一区二区三区| 国产高清日韩| 国产91亚洲精品| 青青在线视频| www.久久色.com| 无套内谢的新婚少妇国语播放| 欧美日韩在线综合| 天天插天天操天天干| 日韩理论在线观看| 欧美另类z0zx974| 豆国产96在线|亚洲| 性欧美1819| 丝袜美腿亚洲一区二区图片| www.成年人视频| 99久久影视| 色狠狠久久av五月综合| 亚洲精品一级二级三级| 国产精品久久久久久久久久久久冷| 成人免费黄色| 国产成人亚洲综合91精品| 欧美男人天堂| 欧美激情在线狂野欧美精品| 免费a在线看| 中文字幕在线亚洲| 国产二区视频在线观看| 日韩av在线精品| 天堂av在线免费| 日韩欧美久久久| jlzzjlzzjlzz亚洲人| 7777精品伊人久久久大香线蕉 | 免费中文字幕视频| 综合欧美一区二区三区| 精品无码在线观看| 国产日韩三级在线| 女人又爽又黄免费女仆| 99久免费精品视频在线观看| 逼特逼视频在线观看| 国产精品综合一区二区三区| 亚洲va综合va国产va中文| 奇米777欧美一区二区| 黑森林精品导航| 七七婷婷婷婷精品国产| 亚洲77777| 免费在线视频一区| 亚洲老女人av| 毛片av一区二区三区| 亚洲娇小娇小娇小| 麻豆专区一区二区三区四区五区| 欧美午夜aaaaaa免费视频| 日韩国产精品久久久久久亚洲| 男人天堂网视频| 久久一区亚洲| 欧美精品成人网| 免费在线看成人av| 欧美精品 - 色网| 国产精品一区2区| 国产亚洲精品成人a| 成人va在线观看| 色噜噜在线观看| 欧美国产一区在线| 国产wwwwxxxx| 亚洲激情五月婷婷| 久久亚洲AV无码| 天天免费综合色| 天天干,天天干| 欧美三级日韩三级| 国产av一区二区三区精品| 亚洲丁香久久久| 欧美成人免费| 久久亚洲欧美日韩精品专区| 国产羞羞视频在线播放| 日本视频久久久| 99精品在线免费观看| 成人av免费看| 精品在线99| 中文字幕第一页亚洲| 激情视频一区二区三区| 久久久久久久久久久免费视频| 免费在线观看一区二区三区| 国产精品19p| 久久夜色精品一区| 黄色录像一级片| 午夜国产精品一区| 在线观看免费视频一区| 日韩欧美亚洲国产另类| 色天堂在线视频| 久久精品中文字幕免费mv| free性欧美| 国产精品久久中文| 一区二区三区欧洲区| 欧美日韩亚洲在线| 欧美国产三级| 美女喷白浆视频| 国产91富婆露脸刺激对白| 国产精品无码久久久久一区二区| 综合久久久久综合| 国产精品suv一区| 日韩精品一区在线观看| 久久精品国产亚洲a∨麻豆| 久久国产色av| 欧美极品免费| 国产亚洲一区二区三区在线播放| 日韩精品免费一区二区在线观看| 免费一级淫片aaa片毛片a级| 日韩高清在线观看| 中文字幕乱视频| 亚洲视频香蕉人妖| 狠狠狠狠狠狠狠| 亚洲精品国产精品国自产观看浪潮| 免费看美女视频在线网站| 茄子视频成人在线| 极品国产人妖chinesets亚洲人妖| 亚洲欧美日本国产有色 | 国产精品不卡一区二区三区| 五月天婷婷丁香| 欧美一卡2卡三卡4卡5免费| 户外极限露出调教在线视频| 国内精品国产三级国产在线专| 日韩欧美专区| 日本视频一区在线观看| 国产欧美日本| 国产69视频在线观看| 亚洲男人的天堂在线观看| 在线观看你懂的网站| 亚洲欧美制服第一页| 麻豆视频在线看| 国产精品制服诱惑| 精品不卡视频| 久久久久亚洲av无码网站| 国产精品传媒视频| 中文字幕一区二区三区波野结| 亚洲人成电影网站色…| 天堂中文在线播放| 农村寡妇一区二区三区| 国产日韩欧美高清免费| 亚洲天堂成人av| 天天综合色天天| 亚洲三区在线播放| 欧美性受xxxx黑人猛交| 免费看成人吃奶视频在线| 欧美在线观看成人| 久久综合久久鬼色| 少妇一级淫片免费放中国 | 久久在线精品| 亚洲黄色小说视频| 欧美性色欧美a在线播放| 国产黄在线看| 国产精品一区二区三区久久| 欧美系列电影免费观看| gogogo高清免费观看在线视频| 中文一区二区在线观看| 国产精品欧美综合亚洲| 久久久极品av| 2020国产精品极品色在线观看| 欧美无砖专区免费| 久久综合精品国产一区二区三区| 在线观看国产亚洲| 亚洲乱亚洲乱妇无码| 欧美日韩精品免费观看视完整| 色女孩综合网| 久久er99精品| 精品97人妻无码中文永久在线 | 亚洲淫片在线视频| 亚洲网址在线| 全黄一级裸体片| 欧美日韩在线播| www在线观看播放免费视频日本| 国产精华一区二区三区| 国产日韩亚洲| 亚洲一二三四五六区| 欧美不卡视频一区| 一区二区电影免费观看| 中文字幕99| 成人高清在线视频| 亚洲婷婷久久综合| 欧美极品少妇xxxxx| 尤物tv在线精品| 99精品视频免费版的特色功能| 天天综合色天天| 男人影院在线观看| 精品网站在线看| 久久99深爱久久99精品| 亚洲国产精品午夜在线观看| 国产亚洲精品一区二区| 91精品入口| 久久99爱视频| 激情亚洲一区二区三区四区 | 蜜桃国内精品久久久久软件9| av免费一区二区| 精品美女久久久久久免费| 午夜精品一区| 久久久精品国产一区二区三区| 看电视剧不卡顿的网站| 中日韩黄色大片| 美女福利视频一区| 欧美日韩老妇| 亚洲精品乱码久久|