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

Amazing!巧妙構建頁面結構的 3D Visualization

開發 前端
本文,就將介紹一種,快速通過 CSS,構建頁面深度關系的 3D 視圖,快速清晰的厘清頁面 DOM 層級及深度之間的關系。并且可以運用在不同的節點單獨進行觀察。

對 Chrome 擴展功能熟悉的小伙伴,可能都有用過 Chrome 的 3D 展示頁面層級關系這個功能。

可以通過 控制臺 --> 右邊的三個小點 --> More Tools --> Layers 打開。即可以看到頁面的一個 3D 層級關系,像是這樣:

圖片

這個功能有幾個不錯的作用:

  1. 頁面層級概覽。
  2. 快速厘清頁面 z-index 層級之間的關系。
  3. 用于排查一些重繪過程(滾動過程)頁面卡頓。

當然,也會存在一些問題,譬如當頁面的 DOM 數量太多的時候,這個插件有的時候就會卡到無法交互了。同時,雖然可以快速厘清頁面 z-index 層級之間的關系,但是有的時候沒法很好的快速看清整個頁面嵌套關系。

同時,它只能看整個頁面的概覽,無法選取部分節點進行觀察。

本文,就將介紹一種,快速通過 CSS,構建頁面深度關系的 3D 視圖,快速清晰的厘清頁面 DOM 層級及深度之間的關系。并且可以運用在不同的節點單獨進行觀察。

當然,總體而言,是基于:

  1. CSS 選擇器。
  2. CSS 3D 屬性。

的一次大規模綜合應用,整體看完,相信你能學到不少東西。

使用 CSS 構建 3D 可視化 DOM 結構視圖

假設,我們首先隨時實現一段 DOM 結構,其簡單的代碼如下:

<div class="g-wrap">
<div class="g-header">This is Header</div>
<div class="g-content">
<div class="g-inner">
<div class="g-box">Lorem LOrem</div>
<div class="g-box">Lorem LOrem</div>
</div>
</div>
<div class="g-footer">This is Footer</div>
</div>

部分 CSS 代碼:

.g-wrap {
margin: auto;
width: 300px;
height: 500px;
background: #ddd;
display: flex;
align-content: flex-start;
flex-wrap: wrap;
flex-direction: column;
gap: 10px;
padding: 10px;
& > div {
width: 100%;
flex-grow: 1;
border: 1px solid #333;
}
}
.g-content {
height: 200px;
display: flex;
padding: 10px;
box-sizing: border-box;

.g-inner {
display: flex;
padding: 10px;
gap: 10px;

& > div {
width: 100px;
height: 50px;
border: 1px solid #333;
}
}
}

得到這樣一個最多深度為 4 層的簡單結構:

圖片

而我們希望,快速看這個頁面的 3D 深度圖,像是這樣:

圖片

又或者,可以使用類似于這樣一種 Hover 的交互效果,實現 Hover 某一個 Div,展示出它當前的一個 3D 深度結構圖,看看效果:

圖片

很有意思的一個效果,到這里應該能明白我們想做一個什么東西了。總的來說,我們的核心需求就是,無論頁面的 DOM 結構如何,深度如何,我們希望能夠通過一種簡單的處理(純 CSS 實現),能夠快速查看頁面的 3D 深度結構視圖。

利用強大的 CSS 選擇器,批量處理樣式

整個效果看似復雜,其實可以利用 CSS 選擇器,很方便的遞歸調用自己。

因為希望我們的效果可以任意從某一個 DOM 節點處開始,所以,首先,我們需要一個根 CSS 節點,簡單的取個名字,為 .g-3d-visual。

那么整個 3D 化的樣式,我們都會寫在 .g-3d-visual 的作用域下:

.g-3d-visual {
// ...
}

為了讓整個代碼更易理解,我們會用上 SASS 這種預處理器,主要是利用它的選擇器可以的嵌套特性。

至此,我們可以開始構建我們的基礎樣式,首先我們會處理 2 點:

  1. 整個效果,會稍微的 3D 化,因此會給.g-3d-visual 根元素添加 3D 相關的樣式,譬如 transform-style: preserve-3d,讓整個內部元素可以 3D 化
  2. 可以利用通配選擇符*,對 .g-3d-visual 下的所有元素做一個快速的統一處理

那么到這一步,我們的 CSS 代碼大概會是這樣:

.g-3d-visual {
transform-style: preserve-3d;
transform: rotateY(-30deg) rotateX(30deg);
* {
position: relative;
transform-style: preserve-3d;
transform: translateZ(0);
}
}

整個圖形就變成了這樣:

圖片

雖然變化不是很多,但是我們已經通過 ??*?? 通配符,對內部所有的元素都進行了簡單的處理。

圖形 3D 化

下一步其實就非常關鍵了。

我們需要用到元素本身,和元素的兩個偽元素,構建元素的立體效果。

舉個例子,對于這一塊圖形:

圖片

它的構成是由:

  1. 主體部分由元素本身構成,并且對于結構的每一層,我們通過添加transform: translateZ(16px),產生不一樣的深度。
  2. 右側和下側的兩個面,剛好由元素的兩個偽元素通過 transform 旋轉不同的角度得到。
  3. 整體顏色的調整及陰影。

看看代碼:

.g-3d-visual {
transform-style: preserve-3d;
transform: rotateY(-30deg) rotateX(30deg);
* {
position: relative;
transform-style: preserve-3d;
background: rgba(0, 0, 255, 0.2);
transform: translateZ(16px);
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
&::before,
&::after {
content: "";
display: block;
position: absolute;
background: rgba(0, 0, 255, 0.2);
}
&::before {
width: 100%;
height: 16px;
left: 0;
bottom: 0;
transform-origin: center bottom;
transform: scaleY(1) rotateX(90deg);
}
&::after {
width: 16px;
height: 100%;
right: 0;
top: 0;
transform-origin: right center;
transform: scaleX(1) rotateY(-90deg);
}
}
}

那么,其實到這里,基本上可以說核心代碼都有了,最為核心的是需要理解:

  1. 我們給.g-3d-visual 下每一層的元素,也就是 *  通配符選擇的元素,都添加了一個 transform: translateZ(16px),這一點非常重要,是為了給元素逐漸增加 Z 軸方向的深度。
  2. 兩個偽元素的運用需要好好理解,它們是用于構建整體的 3D 效果的關鍵因素。
  3. box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1) 這一個小小的陰影效果的添加,讓整個效果看起來更加的真實。

這樣,我們利用 3 個面,加上簡單的陰影,構建了一塊一塊的立體效果,我們看看目前為止的效果:

圖片

按照上述說的,我們可以希望換一種交互方式,實現當鼠標 Hover 到 DOM 的某一層級時,才觸發元素 3D 深度變換。

簡單改造下代碼即可,并且,對于一些重復用到的元素,也可以再利用 CSS 變量統一一下。至此,我們的完整 CSS 代碼:

<div class="g-wrap g-3d-visual">
<div class="g-header">This is Header</div>
<div class="g-content">
<div class="g-inner">
<div class="g-box">Lorem LOrem</div>
<div class="g-box">Lorem LOrem</div>
</div>
</div>
<div class="g-footer">This is Footer</div>
</div>
:root {
--side-height: 16px;
--hover-color: rgba(0, 0, 255, 0.2);
--box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
--transform-duration: 0.3s;
}
.g-3d-visual {
transform-style: preserve-3d;
transform: rotateY(-30deg) rotateX(30deg);
* {
position: relative;
transform-style: preserve-3d;
transform: translateZ(0);
transition: transform var(--transform-duration);
cursor: pointer;
&::before,
&::after {
content: "";
display: block;
position: absolute;
background: transparent;
transition: all var(--transform-duration);
}
&::before {
width: 100%;
height: var(--side-height);
left: 0;
bottom: 0;
transform-origin: center bottom;
transform: scaleY(0) rotateX(90deg);
}
&::after {
width: var(--side-height);
height: 100%;
right: 0;
top: 0;
transform-origin: right center;
transform: scaleX(0) rotateY(-90deg);
}
&:hover {
background: var(--hover-color);
transform: translateZ(var(--side-height));
box-shadow: var(--box-shadow);
&::before,
&::after {
background: var(--hover-color);
}
&::before {
transform: scaleY(1) rotateX(90deg);
}
&::after {
transform: scaleX(1) rotateY(-90deg);
}
}
}
}

這樣,我們也就得到了題圖一開始的 Hover 示意圖的效果:

圖片

CodePen Demo -- 3D Visualization of DOM[1]。

擴展遷移

有了上述代碼之后,由于是 SASS 代碼,所以記得編譯一下,即可拿到完整的 .g-3d-visual 下相關的所有 CSS 代碼。

嘗試把整段 CSS 代碼注入到任意頁面后,給你希望觀察的節點,添加上 .g-3d-visual 樣式即可。

這里我嘗試的是,當前正在寫作的 Github Issues 頁面,看看效果:

圖片

圖片

當然,可能顏色沒有搭配的特別好,但是要知道,整兒頁面的 DOM 結構是相當之復雜的。不過整體效果還是很不錯的,而且實際操作的過程中,也并不會感覺卡頓。

這一段簡單的代碼,再簡單改造一番,譬如和 Chrome 擴展相結合,快速注入代碼,快速指定給哪個元素添加 ??.g-3d-visual?? 類名,以及修改配色方案等等,就可以實現一個快速對頁面層級進行觀察的小插件!

上述效果我是手動修改了當前頁面的 HTML 代碼,注入的相應的 CSS 代碼 :)

總結一下

到這里,我們即可以再簡單總結一下完整的步驟:

  • 需要一個整體的 3D 效果,因此需要一個根 CSS 節點,為.g-3d-visual,并且給它設置好相關的 CSS 3D 屬性值,讓整個內部元素可以 3D 化
  • 利用通配選擇符*,對 .g-3d-visual 下的所有元素做一個快速的統一處理。
  • 利用每個元素的另外兩個偽元素,實現每一層效果的 3D 立體感,并且逐層利用translateZ() 遞進深度。
  • 通過:hover、transition 等設置,實現整體的交互效果。

當然,這種做法肯定會有一些小問題,譬如如果元素的偽元素已經使用了,那么在 3D 化的效果中,將會被改寫。但是由于不是完全覆蓋,因此可能會造成一些樣式錯誤。

其次,如果父子兩層 DIV 完全是大小一模一樣完全重疊在一起,在視覺上也會有些影響。

最后,完整的代碼,你可以戳這里獲取:CodePen Demo -- 3D Visualization of DOM[2]。

最后

好了,本文到此結束,希望本文對你有所幫助 :)

參考資料

[1]CodePen Demo -- 3D Visualization of DOM: ??https://codepen.io/Chokcoco/pen/oNdKzNX。??

[2]CodePen Demo -- 3D Visualization of DOM: ?https://codepen.io/Chokcoco/pen/oNdKzNX。??

責任編輯:姜華 來源: iCSS前端趣聞
相關推薦

2021-12-28 10:52:10

鴻蒙HarmonyOS應用

2016-10-25 14:02:51

2012-12-24 08:48:25

iOSUnity3D

2011-10-06 13:30:45

宏碁投影儀

2012-11-26 12:51:44

木材3D打

2012-06-16 16:57:52

WebGL

2011-06-15 13:08:59

2011-05-26 10:55:39

2011-05-26 10:05:07

優派投影機

2011-04-26 14:21:20

3DJVC投影機

2011-08-26 14:50:23

2023-03-03 21:42:18

鴻蒙

2012-08-13 17:11:37

Silverlight

2015-09-09 11:05:52

3d視差引導頁

2011-05-25 16:07:17

2011-09-22 10:07:52

奧圖碼投影儀

2009-12-15 16:13:11

3D圖像

2025-08-14 13:37:36

2025-08-04 08:50:00

3DAI圖像生成

2024-05-16 09:24:17

3D技術
點贊
收藏

51CTO技術棧公眾號

在线视频cao| 超碰人人人人人人| 久久精品不卡| 欧美sm极限捆绑bd| 亚洲自偷自拍熟女另类| 国产福利免费视频| 亚洲国产mv| 亚洲天堂影视av| 亚洲精品乱码久久久久久9色| av第一福利在线导航| 黄色动漫在线| 国产综合色视频| 日本欧美一二三区| 国产日韩欧美在线观看视频| 日韩最新在线| 欧美一区二区在线免费观看| 91专区在线观看| 黄网站在线免费看| 久久久夜色精品亚洲| 亚洲一区二区三区毛片 | 日本三区在线观看| 人人超在线公开视频| 成人在线综合网| 青青草成人在线| 久久午夜无码鲁丝片| 清纯唯美日韩| 亚洲毛片在线观看| 最新国产精品自拍| 欧美成人黄色| 91黄色免费版| 日本毛片在线免费观看| 亚洲资源一区| 国产精品三级电影| 色狠狠久久av五月综合| 青青青免费视频在线2| 粉嫩aⅴ一区二区三区四区 | 国产suv精品一区| 91.com在线观看| 伊人影院综合在线| 国产精品亚洲一区二区三区在线观看| 亚洲欧美色图小说| 偷拍盗摄高潮叫床对白清晰| 成人jjav| 欧美国产激情一区二区三区蜜月| 免费国产一区二区| 手机福利在线| 久久嫩草精品久久久精品| 国产另类自拍| 殴美一级特黄aaaaaa| 国产一区亚洲一区| 51国偷自产一区二区三区| 国产精品老熟女视频一区二区| 日韩高清欧美激情| 国产福利精品av综合导导航| 天天爱天天做天天爽| 在线亚洲欧美| 91精品国产手机| 国产成人中文字幕| 日韩av一二三区| 精品69视频一区二区三区Q| 欧美精品亚州精品| 欧美日韩精品一区二区三区视频播放 | 丰满少妇一区二区| 亚洲素人在线| 国产一区二区欧美日韩| 摸摸摸bbb毛毛毛片| 成人黄色av| 日韩在线免费高清视频| 日本精品久久久久中文| 午夜激情久久| 欧美日韩国产成人在线| 久草免费在线视频观看| 亚洲二区精品| 日本a级片电影一区二区| 天天射天天干天天| 天堂久久久久va久久久久| 国产精品日韩专区| 国产精品毛片一区视频播 | 欧美中文字幕不卡| 九九热在线免费| 国产精品xnxxcom| 精品999在线播放| 日韩中文字幕电影| 99免费精品| 欧美高清电影在线看| 黄色激情视频在线观看| 亚欧成人精品| 成人免费视频网| 懂色av成人一区二区三区| 99精品国产热久久91蜜凸| 日韩视频专区| 4438x成人网全国最大| 亚洲第一精品在线| 久久国产色av免费观看| 成人免费观看49www在线观看| 欧美丝袜足交| 欧美一区二区不卡视频| 欧美大片免费播放器| 日韩欧美综合| 午夜精品久久久久久久99热 | 久久不射网站| 亚洲free嫩bbb| 青春草在线观看 | 日韩国产一区三区| 亚洲a∨无码无在线观看| 亚洲天堂偷拍| 国产日韩在线看片| 四虎影院在线播放| 亚洲乱码国产乱码精品精98午夜| 久章草在线视频| 精品国产亚洲一区二区在线观看| 亚洲久久久久久久久久| 久草视频在线免费看| 日韩精彩视频在线观看| 国产精品一区二区三区四区五区 | 亚洲精品乱码久久久久久日本蜜臀 | 精品国产成人av在线免| 色天使综合视频| 亚洲成人黄色网址| 性欧美疯狂猛交69hd| 在线亚洲观看| 不卡视频一区二区三区| 国产视频网址在线| 懂色aⅴ精品一区二区三区蜜月| 五月天婷婷亚洲| 亚洲成aⅴ人片久久青草影院| 欧美成人精品不卡视频在线观看| 亚洲午夜无码久久久久| 99亚偷拍自图区亚洲| 黄色a级在线观看| 成人av色网站| 亚洲人成免费电影| 日韩成人av毛片| 国产乱码精品一区二区三| 中文字幕亚洲一区二区三区| 爱情岛论坛成人| 国内精品国产成人国产三级粉色| 久久精品国产欧美亚洲人人爽| 4438国产精品一区二区| 成人一级片网址| 91看片淫黄大片91| 国产精品亚洲四区在线观看| 中文字幕在线精品| 无码人妻丰满熟妇区bbbbxxxx| aaa国产一区| 成人在线国产视频| 视频欧美精品| 色噜噜狠狠色综合网图区| 欧美国产一级片| 国产精品午夜在线观看| 黄色手机在线视频| 91视频精品| 成人免费黄色网| 成人免费网址| 日韩一级片在线播放| 精品自拍偷拍视频| 丰满少妇久久久久久久| 天堂…中文在线最新版在线| 激情视频极品美女日韩| 欧美在线视频一区| 欧美白人做受xxxx视频| 91国内精品野花午夜精品| 日本一区二区视频在线播放| 美国av一区二区| 亚洲一区二区三区在线观看视频| 欧美性www| 久久婷婷国产麻豆91天堂| 国产成人毛毛毛片| 亚洲va天堂va国产va久| av无码av天天av天天爽| 丝袜诱惑亚洲看片| 97在线看福利| 熟女少妇内射日韩亚洲| 午夜宅男久久久| 五月天国产一区| 日本精品国产| 亚洲 日韩 国产第一| 国产大学生校花援交在线播放| 精品视频1区2区3区| 男女羞羞免费视频| 91网站黄www| 福利片一区二区三区| 亚洲精品va| 国严精品久久久久久亚洲影视| 日韩和的一区二在线| 久久天堂电影网| 欧洲毛片在线| 欧美一区二区三区在线电影| 日本系列第一页| 中文成人综合网| 四虎成人免费视频| 首页综合国产亚洲丝袜| 久久精品在线免费视频| 日韩精品丝袜美腿| 91久久国产婷婷一区二区| wwww亚洲| 久久精品成人欧美大片古装| 成 人片 黄 色 大 片| 在线观看亚洲a| 劲爆欧美第一页| 中文一区二区完整视频在线观看| 波多野结衣电影免费观看| 久久精品人人| 亚洲精品天堂成人片av在线播放| 国产精品嫩草影院在线看| 亚洲free性xxxx护士白浆| 天堂中文av在线资源库| 在线激情影院一区| 成人久久精品人妻一区二区三区| 欧美午夜电影网| 六月丁香激情综合| 亚洲精品免费看| 欧美a级片免费看| 久久久777精品电影网影网| 91人人澡人人爽| 久色婷婷小香蕉久久| 久久精品国产精品亚洲色婷婷| 午夜国产精品视频免费体验区| 日本久久一区二区三区| 看黄色录像一级片| 久久精品一区二区| 国产精品无码在线| 国产不卡视频在线播放| 亚洲欧美自拍另类日韩| 亚洲综合精品四区| 青青青在线观看视频| 亚洲第一天堂| 亚洲日本无吗高清不卡| 精品国产一区二区三区噜噜噜| 精品国产免费人成电影在线观...| 另类视频一区二区三区| 国产日韩欧美自拍| 国产成人精选| 国产精品稀缺呦系列在线| 免费电影日韩网站| 欧美一级大片视频| 麻豆mv在线看| 性欧美视频videos6一9| 爱情岛亚洲播放路线| 欧美高清电影在线看| 性xxxfreexxxx性欧美| 久久夜色精品国产亚洲aⅴ| 午夜小视频在线| 中文字幕精品一区二区精品| 啊v在线视频| 中文字幕在线日韩| 91在线免费看| 日韩中文在线中文网在线观看| √天堂资源地址在线官网| 一色桃子一区二区| 秋霞影院午夜丰满少妇在线视频| 中文字幕日韩在线观看| 日本高清中文字幕在线| 精品久久国产精品| 中日韩高清电影网| 欧美激情日韩图片| 美女高潮在线观看| 国产91色在线播放| 91另类视频| 51国偷自产一区二区三区的来源 | 免费国产自线拍一欧美视频| 男人揉女人奶房视频60分| 性8sex亚洲区入口| 久久久久久蜜桃一区二区| 另类人妖一区二区av| 又黄又爽又色的视频| 懂色av噜噜一区二区三区av| 波多野结衣一二三区| 91看片淫黄大片一级在线观看| 久久精品日韩精品| sm久久捆绑调教精品一区| 91精品国产成人| 色香欲www7777综合网| 国产一区二中文字幕在线看| 日韩在线亚洲| 另类小说综合网| 俺要去色综合狠狠| 天天做天天爱天天高潮| 亚洲国产日韩欧美一区二区三区| 久章草在线视频| 国产一区二区美女诱惑| 久久精品女同亚洲女同13| 久久久久国色av免费看影院| 永久免费未视频| 亚洲18女电影在线观看| 精品成人无码久久久久久| 欧美人伦禁忌dvd放荡欲情| 免费看黄网站在线观看| 亚洲视频精品在线| av免费网站在线观看| 91chinesevideo永久地址| 成人在线观看免费视频| 99国产盗摄| 国产欧美日韩免费观看| 青青青青在线视频| 奇米影视7777精品一区二区| 欧美图片自拍偷拍| 国产精品麻豆99久久久久久| 久久9999久久免费精品国产| 欧美丝袜第三区| 熟妇人妻系列aⅴ无码专区友真希| 日韩在线欧美在线国产在线| 中文字幕高清在线播放| 亚洲aⅴ男人的天堂在线观看 | 国产成人h网站| 久久午夜福利电影| 亚洲午夜电影在线| 国产裸体无遮挡| 国产午夜精品视频| 成人观看网址| 444亚洲人体| 色呦哟—国产精品| 国模吧无码一区二区三区| 国产美女精品在线| 免费黄色在线网址| 欧美日韩性视频| 天堂在线视频观看| 欧美激情视频给我| 欧美区一区二区| 中文字幕一区二区三区乱码| 噜噜噜久久亚洲精品国产品小说| a级片在线观看视频| 日韩一区有码在线| 中文在线字幕av| 国产精品一区二区久激情瑜伽 | 霍思燕三级露全乳照| 国产伦理精品不卡| 欧美日韩国产一二三区| 色欧美乱欧美15图片| 天堂中文资源在线| 国内外成人免费激情在线视频网站 | 日本天堂在线观看| 国产精品美女免费视频| 一区三区在线欧| 午夜精品久久久久久久无码| 岛国精品在线播放| 国产在线观看免费视频今夜| 日韩精品自拍偷拍| 欧美aaaxxxx做受视频| 91成人免费在线观看| 亚洲精品tv久久久久久久久久| 日本中文字幕观看| ...中文天堂在线一区| 一区二区三区午夜| 久久亚洲精品一区| 日本精品在线观看| 乱熟女高潮一区二区在线| 国产精品自拍在线| 久久久久久久久久综合| 欧美xxxx在线观看| 超碰97免费在线| 九九九热999| 久久久久久亚洲精品杨幂换脸| 爱爱的免费视频| 欧美亚洲国产一区二区三区va| 国产午夜在线观看| 国产在线拍偷自揄拍精品| 欧美xxxx中国| 成人在线短视频| 亚洲电影一级黄| 久久久pmvav| 国产日韩欧美91| 欧美~级网站不卡| 国产女人18毛片水真多18| 欧美日韩亚洲视频一区| 电影av在线| 国产有码在线一区二区视频| 亚洲综合激情在线| 久久久久久久无码| 在线观看中文字幕不卡| 老司机精品影院| 国产伦理久久久| 首页国产欧美日韩丝袜| 人人干在线观看| 精品国精品自拍自在线| 国产精品粉嫩| 一区二区三区国| 国产91精品免费| 中文字幕xxxx| 粗暴蹂躏中文一区二区三区| 在线免费看av片| 欧美美女激情18p| 91九色porn在线资源| 先锋影音日韩| 成人综合婷婷国产精品久久蜜臀 | 久草在线视频资源| 久久综合狠狠综合久久综青草| 免费在线观看成人| 久久无码精品丰满人妻| 中文字幕v亚洲ⅴv天堂 | 欧美在线一二三区| 国产乱对白刺激视频不卡| 中文字字幕在线中文| 啊v视频在线一区二区三区| 国产在线播放精品| 一女二男3p波多野结衣| 午夜视频在线观看一区二区| 91网在线播放| 久久久99爱| 国产成人精品网址|