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

99热99这里只有精品| 国产成人精品网址| 成人听书哪个软件好| 亚洲欧洲xxxx| 久久久久久久久久久久91| 免费超碰在线| 成人动漫一区二区在线| 国产福利电影一区二区三区| 亚洲成人激情在线| 亚洲精品无码国产| 人妻中文字幕一区二区三区| 1024精品久久久久久久久| 精品福利av导航| 亚洲人一区二区| 无码人妻丰满熟妇精品| 国产精品久久久久久久久妇女| 在线精品视频免费播放| 午夜剧场成人观在线视频免费观看| 久久午夜福利电影| 亚洲精品高潮| 欧美日韩精品一区二区三区 | 麻豆精品一区二区三区| 精品亚洲一区二区三区| 国产精品-区区久久久狼| 18加网站在线| 不卡一区在线观看| 91免费国产网站| 天天射天天干天天| 一本一本久久| 欧美国产日韩中文字幕在线| 五月天婷婷丁香网| 国产日产精品_国产精品毛片| 亚洲成人免费| 99久久影视| 亚洲欧美电影院| 欧美激情久久久| 国产又粗又硬又长又爽| 国产一区网站| 精品成人一区二区三区| 久久aaaa片一区二区| 男女在线视频| 亚洲欧美日韩国产综合在线| 国产综合av一区二区三区| 国产露脸91国语对白| 免费在线观看日韩欧美| 国产成人精品电影久久久| 伊人久久综合视频| 性欧美18一19性猛交| 亚洲小说图片| 亚洲国产精品免费| 中文字幕国产传媒| 国产无遮挡裸体视频在线观看| 一区二区三区欧美在线观看| 亚洲一区二区自拍偷拍| 夫妻性生活毛片| 中文字幕乱码亚洲无线精品一区| 亚洲视频在线观看| 中文字幕一区二区三区四区在线视频| 深夜成人福利| 欧美性videosxxxxx| 日韩毛片在线免费看| 欧美男女交配| 91成人国产精品| 少妇性l交大片| jizz亚洲| 综合电影一区二区三区 | 欧美精品一卡| 免费成人高清视频| 久草网站在线观看| 亚洲国产导航| 91在线精品秘密一区二区| 亚洲成色999久久网站| 中文字幕一区二区在线观看视频 | 91av在线免费| 小说区图片区色综合区| 色综合天天综合狠狠| 97xxxxx| yw193.com尤物在线| 中文字幕一区在线观看| 亚洲一区二区在| 超碰在线网站| 精品日本高清在线播放| 久久精品免费一区二区| 成人国产精品| 亚洲精品五月天| 久在线观看视频| 1区2区3区在线| 亚洲亚洲人成综合网络| 国产精品少妇在线视频| 亚洲欧洲日韩精品在线| 91麻豆精品国产91久久久久| 粉色视频免费看| 国产精品无码一区二区在线| 国产一级片在线| 久久先锋影音av鲁色资源网| 日韩久久精品一区二区三区| 国产在线激情| 欧美黄色免费| 国产成人一区三区| 丰满人妻一区二区三区无码av | 精品噜噜噜噜久久久久久久久试看| 韩国一区二区在线播放| 精灵使的剑舞无删减版在线观看| 色综合天天性综合| 亚洲精品国产久| 国产aⅴ精品一区二区三区久久| 久久综合久久八八| 无码人妻丰满熟妇精品区| 国产91在线|亚洲| 先锋影音日韩| 91超碰国产在线| 欧美日本免费一区二区三区| 黄色国产在线视频| 国产精品美女久久久久久不卡| 狠狠88综合久久久久综合网| 亚洲电影天堂av| 欧美午夜激情影院| 国产欧美日本| 欧美在线视频免费播放| 91资源在线视频| 久久日韩粉嫩一区二区三区| 日韩一区二区高清视频| 爱情电影社保片一区| 欧美精品一二三四| www.com污| 精品日韩一区| 欧美精品福利在线| 国产精品高潮呻吟AV无码| 久久精品水蜜桃av综合天堂| www.日本在线播放| 99视频有精品高清视频| 欧美日本一道本| av片在线免费看| 亚洲精品一区二区妖精| 久久免费视频网| 国产又黄又粗又长| 亚洲国产电影在线观看| 成人在线观看黄| 视频精品在线观看| 51ⅴ精品国产91久久久久久| 乱色精品无码一区二区国产盗| 国产视频第一页在线观看| 国产一区二区精品久久91| 欧美激情www| 激情国产在线| 亚洲精品国精品久久99热| 男人天堂中文字幕| 99久久婷婷国产综合精品| 91嫩草国产丨精品入口麻豆| 日韩欧国产精品一区综合无码| 中文字幕v亚洲ⅴv天堂| 伊人久久成人网| 国产精品久久精品日日| 三上悠亚在线一区| 91精品国产麻豆国产在线观看| 91精品久久久久久综合乱菊| 日本激情视频在线观看| 91精品午夜视频| 看片网站在线观看| av亚洲产国偷v产偷v自拍| 少妇高潮毛片色欲ava片| 欧美有码在线| 国产精品高清在线| 成年人在线看| 欧美一区二区在线免费观看| 免费一级片视频| 成人午夜激情影院| 亚洲精品无码久久久久久| 久久爱www成人| 国产在线精品播放| 日韩精品亚洲人成在线观看| 亚洲福利精品在线| 日本视频免费观看| 国产精品国产精品国产专区不片| 亚洲免费在线播放视频| 韩国自拍一区| 鲁丝一区鲁丝二区鲁丝三区| 91成人抖音| 蜜臀久久99精品久久久无需会员| 视频二区在线观看| 欧美日韩亚洲另类| 久久久久香蕉视频| 国产婷婷色一区二区三区| 日本在线观看视频一区| 亚洲大胆av| 亚洲精品欧美精品| 国产精品高潮呻吟久久久久| 日本精品一区二区三区在线| 精品美女在线观看视频在线观看| 欧美成人a在线| 欧美 日韩 精品| 亚洲人成网站在线| www.久久国产| 国产伦精品一区二区三区在线观看| 国产色一区二区三区| 欧美欧美黄在线二区| 97超碰人人模人人爽人人看| 永久免费毛片在线播放| 久久艹在线视频| 能在线看的av| 精品日产卡一卡二卡麻豆| 乱子伦一区二区三区| 亚洲国产精品久久久久秋霞影院| 特级西西www444人体聚色| 岛国一区二区在线观看| www.天天射.com| 亚洲人成久久| 少妇高潮流白浆| 欧美在线电影| 久久国产精品免费一区| 国产精品美女久久久久人| 国产成人福利网站| 91老司机福利在线| 欧美日韩高清区| 四虎久久免费| 亚洲欧美日韩天堂| 免费观看国产视频| 欧美一区二区日韩| 最近中文字幕在线免费观看| 亚洲6080在线| 国产性70yerg老太| 亚洲色欲色欲www在线观看| 制服 丝袜 综合 日韩 欧美| proumb性欧美在线观看| 性折磨bdsm欧美激情另类| 蜜乳av一区二区| 亚洲黄色a v| 国产亚洲一级| 成人网站免费观看入口| 欧美国产三区| 91制片厂免费观看| 99精品视频在线观看播放| 欧美一区二区三区在线播放| 麻豆一区二区麻豆免费观看| 国产精品9999久久久久仙踪林| 9999在线精品视频| 成人黄色在线播放| av一级久久| 成人网在线免费看| 成人日韩视频| 91亚洲精品在线| 精品国产三级| 999在线免费观看视频| 日韩成人视屏| 亚洲japanese制服美女| 韩国一区二区三区视频| 91传媒视频免费| 日本免费一区二区三区视频| 99re在线| 国产精品网在线观看| 国产日韩欧美亚洲一区| 精品三级av| 欧美成熟毛茸茸复古| 色吊丝一区二区| 蜜桃91精品入口| 欧美日韩一区二区三区视频播放| 日本精品二区| 久久精品国产亚洲夜色av网站| 亚洲精品国产一区| 中文字幕乱码亚洲无线精品一区| ijzzijzzij亚洲大全| 欧美成人午夜| 日韩精品一区在线视频| 国产亚洲毛片在线| 在线观看免费黄网站| 国内外成人在线视频| 国产精品91av| 91免费在线播放| 欧美波霸videosex极品| 1区2区3区精品视频| 五月婷婷一区二区| 亚洲激情网站免费观看| 99视频在线看| 欧美亚洲精品一区| 精品国产伦一区二区三| 日韩成人在线视频| 国产高清美女一级毛片久久| 久久精品成人欧美大片| 91探花在线观看| 国产精品高清在线观看| 日韩精品一区二区三区中文在线| 国产乱码精品一区二区三区日韩精品| 美日韩中文字幕| 一本二本三本亚洲码| 一区二区日韩免费看| 美女网站色免费| 成人免费av网站| 公肉吊粗大爽色翁浪妇视频| 中文字幕精品综合| 免费一级片在线观看| 91福利资源站| 国模私拍视频在线| 视频在线一区二区| 黄色aa久久| **亚洲第一综合导航网站| 在线一级成人| 欧美人与动牲交xxxxbbbb| 天堂蜜桃一区二区三区| 26uuu国产| 国产蜜臀97一区二区三区 | 亚洲午夜精品17c| 国产免费www| 亚洲第一男人天堂| 老司机av在线免费看| 日韩av电影在线播放| 亚洲精品v亚洲精品v日韩精品| 天天爽天天狠久久久| 99在线精品视频在线观看| 亚洲成人手机在线观看| 久久精品免视看| 日韩精品久久久久久久| 欧美一级在线免费| 98在线视频| 日产精品99久久久久久| 韩国女主播一区二区三区| 天堂av免费看| 毛片av一区二区| 国产全是老熟女太爽了| 亚洲精品一卡二卡| 懂色av蜜臀av粉嫩av喷吹| 日韩国产欧美区| 91豆花视频在线播放| 亚洲r级在线观看| 99久久99久久精品国产片果冰| www日韩视频| 久久综合999| 国产精品999在线观看| 日韩一区二区三区四区| 国产午夜精品久久久久免费视| 国产精品 欧美在线| 校花撩起jk露出白色内裤国产精品| www.在线观看av| 国产不卡一区视频| 唐朝av高清盛宴| 欧美精品一卡二卡| 91精品国产综合久久久久久豆腐| 日本一本a高清免费不卡| 日韩高清一级| www黄色av| 久久精品亚洲精品国产欧美| 亚洲 欧美 成人| 亚洲欧美激情四射在线日| 色在线视频观看| 欧美一区二区在线| 久久精品官网| 一区二区伦理片| 色综合夜色一区| 久色视频在线| 日韩免费观看高清| 欧美色图在线播放| 成年网站在线播放| 中文字幕欧美一区| 国内老熟妇对白hdxxxx| 欧美激情第6页| 日本精品在线播放| 男人添女人下面高潮视频| xfplay精品久久| jizz国产在线| 久久久91精品| 99re热精品视频| 精品成在人线av无码免费看| 精品一区二区精品| 久久久久成人片免费观看蜜芽| 亚洲成人精品久久久| 成人欧美magnet| 永久免费精品视频网站| 国产精品1区2区3区在线观看| 国产一级一片免费播放| 日韩激情av在线免费观看| 秋霞国产精品| 国产盗摄视频在线观看| 国产99精品国产| 国产精品久久久久久久久夜色| 深夜精品寂寞黄网站在线观看| 91丨精品丨国产| 国产3p露脸普通话对白| 国产欧美一区二区精品仙草咪| 国产精品久久久久久免费| 欧美激情按摩在线| 精品一区av| 欧美性猛交乱大交| 色哟哟国产精品| av网站免费在线观看| 精品国产日本| 久久国产剧场电影| 日韩精品国产一区二区| 波霸ol色综合久久| 久久超级碰碰| 欧美日韩在线观看不卡| 亚洲另类中文字| 黑人与亚洲人色ⅹvideos| 亚洲一区二区三区乱码aⅴ| 国产精品二区不卡| 国产精品91av| 精品污污网站免费看| 国产网红在线观看| 午夜免费电影一区在线观看| 不卡一区中文字幕| 91资源在线视频| 国产成人在线一区二区|