人妻精品在线观看一区二区三区,蜜臀av精品一区二区三区网站,中文一区二区三区亚洲欧美,熟女人妇精品一区二区,人妻av在线观看视频,欧美日韩国产三级精品网站,黄色免费网站直接进入,超碰公开福利正在播放,国产毛片乡下农村妇女毛片

聊聊前端里一個奇怪的水平滾動條-環(huán)球今亮點

來源:php中文網(wǎng) | 2023-03-01 17:02:24 |

本篇文章給大家?guī)砹岁P(guān)于前端的相關(guān)知識,其中主要給大家聊聊一個奇怪的水平滾動條問題,感興趣的朋友下面一起來看一下吧,歡迎大家收藏學習!

今天改一個前端同學的樣式代碼,發(fā)現(xiàn)了一個奇怪的問題.


(資料圖)

大概是這樣:

我的視窗寬度是1920px,滾動容器寬度1903px,然后還出現(xiàn)了水平滾動條,匪夷所思。由于文件嵌套太深,查找起來非常耗時,因此就求助于全局函數(shù),是誰觸發(fā)了滾動條的操作。于是就有了以下代碼

function findScroller(element) {    element.onscroll = function() { console.log(element)}    Array.from(element.children).forEach(findScroller);}findScroller(document.body);

打印出的對象是 ,<body>。這就不明白了。 明明元素離body還很遠,也沒有元素超寬,這個滾動條到底從哪兒來?

非常難過,一個技能不行就要求助第二個方式 —— 刪代碼。 一行一行的刪,然后將他轉(zhuǎn)為基礎(chǔ)元素,比如自定義的模型,直接替換成一個div,然后添加樣式,再刪除無用的代碼,這樣就做出來了一個簡易模型。

經(jīng)過觀察發(fā)現(xiàn), 如果元素沒有超高,那么元素也不會出現(xiàn)橫向滾動的問題,如果元素超高,則就會同時出現(xiàn)垂直和水平兩個滾動條。

更迷惑了。

所以,我倒過來分析,發(fā)現(xiàn),這個超高元素的寬度雖然沒有超過視窗寬度,為1903px,但是,PC下瀏覽器滾動條默認寬度為17px,且此垂直滾動條是在body下的, 和上文的打印對象吻合。由此可知:

當容器出現(xiàn)滾動條后, 產(chǎn)生滾動條元素的可用水平寬度 = 原始寬度- 17px。一定有子元素設(shè)置的寬度 > 原始寬度- 17px ,且為有效像素單位 px,em ,rem, vw等子元素設(shè)置的寬度 = 原始寬度

這么一來就可知, 如果有body下的子元素的寬度設(shè)置為 1920px或者 100vw 或者等于100wv的任意一項,即可出現(xiàn),此出現(xiàn)橫向滾動條的現(xiàn)象。

經(jīng)過老師傅的一頓操作,終于發(fā)現(xiàn)了一個設(shè)置樣式不合理的問題。由此我簡化了模型代碼如下:

<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>超寬導致元素溢出滾動條</title>    <style>        body,        html {            margin: 0;            padding: 0;        }        .menu-bar {            height: 50px;            border: 1px solid;            box-sizing: border-box;        }        .incorrect {            width: 100vw;        }        .oversize {            height: 100vh;        }    </style></head><body>    <div class="menu-bar incorrect"> </div>    <div></div></body></html>

由此, 寫代碼時需要不斷分析,css樣式一定要有跡可循,切不可隨意添加。導致異常出現(xiàn)時費心費力。

推薦學習:《web前端開發(fā)》

以上就是聊聊前端里一個奇怪的水平滾動條的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!

關(guān)鍵詞: