• <abbr id="chdyf"></abbr>
    <ruby id="chdyf"><acronym id="chdyf"><meter id="chdyf"></meter></acronym></ruby>
    <bdo id="chdyf"></bdo>
    <dfn id="chdyf"><menu id="chdyf"></menu></dfn>
    1. <menuitem id="chdyf"></menuitem><strong id="chdyf"><menu id="chdyf"></menu></strong>

      <rt id="chdyf"><menu id="chdyf"></menu></rt>
      成人小说一区二区三区,伊人精品成人久久综合全集观看,久久HEZYO色综合,中文字幕精品人妻熟女,影音先锋成人网站,我要看免费一级毛片,中国女人做爰A片,中文字幕av久久爽Av

      修復一個因為 scrollbar 占據空間導致的 bug

      2020-5-5    seo達人

      背景

      這一個因為滾動條占據空間引起的bug, 查了一下資料, 最后也解決了,順便研究一下這個屬性, 做一下總結,分享給大家看看。


      正文

      昨天, 測試提了個問題, 現象是一個輸入框的聚焦提示偏了, 讓我修一下, 如下圖:


      image.png


      起初認為是紅框提示位置不對, 就去找代碼看:


      <Input

       // ...

       onFocus={() => setFocusedInputName('guidePrice')}

       onBlur={() => setFocusedInputName('')}

      />


      <Table

       data-focused-column={focusedInputName}

       // ...

      />

      代碼上沒有什么問題, 不是手動設置的,而且, 在我和另一個同事, 還有PM的PC上都是OK的:


      image.png


      初步判斷是,紅框位置結算有差異, 差異大小大概是17px, 但是這個差異是怎么產生的呢?


      就去測試小哥的PC上看, 注意到一個細節, 在我PC上, 滾動條是懸浮的:

      image.png


      在他PC上, 滾動條是占空間的:


      image.png


      在他電腦上, 手動把原本的 overscroll-y: scroll 改成 overscroll-y: overlay 問題就結局了。


      由此判定是: 滾動條占據空間 引起的bug。


      overscroll-y: overlay

      CSS屬性 overflow, 定義當一個元素的內容太大而無法適應塊級格式化上下文的時候該做什么。它是 overflow-x 和overflow-y的 簡寫屬性 。

      /* 默認值。內容不會被修剪,會呈現在元素框之外 */

      overflow: visible;


      /* 內容會被修剪,并且其余內容不可見 */

      overflow: hidden;


      /* 內容會被修剪,瀏覽器會顯示滾動條以便查看其余內容 */

      overflow: scroll;


      /* 由瀏覽器定奪,如果內容被修剪,就會顯示滾動條 */

      overflow: auto;


      /* 規定從父元素繼承overflow屬性的值 */

      overflow: inherit;

      官方描述:

      overlay  行為與 auto 相同,但滾動條繪制在內容之上而不是占用空間。 僅在基于 WebKit(例如,Safari)和基于Blink的(例如,Chrome或Opera)瀏覽器中受支持。

      表現:

      html {

       overflow-y: overlay;

      }

      兼容性

      沒有在caniuse上找到這個屬性的兼容性, 也有人提這個問題:


      image.png


      問題場景以及解決辦法

      1. 外部容器的滾動條

      這里的外部容器指的是html, 直接加在最外層:


      html {

       overflow-y: scroll;

      }

      手動加上這個特性, 不論什么時候都有滾動寬度占據空間。


      缺點: 沒有滾動的時候也會有個滾動條, 不太美觀。


      優點: 方便, 沒有兼容性的問題。


      2. 外部容器絕對定位法

      用絕對定位,保證了body的寬度一直保持完整空間:


      html {

       overflow-y: scroll; // 兼容ie8,不支持:root, vw

      }


      :root {

       overflow-y: auto;

       overflow-x: hidden;

      }


      :root body {

       position: absolute;

      }


      body {

       width: 100vw;

       overflow: hidden;

      }

      3. 內部容器做兼容


      .wrapper {

         overflow-y: scroll; // fallback

         overflow-y: overlay;

      }

      總結

      個人推薦還是用 overlay, 然后使用scroll 做為兜底。


      內容就這么多, 希望對大家有所啟發。


      文章如有錯誤, 請在留言區指正, 謝謝。

      日歷

      鏈接

      個人資料

      藍藍設計的小編 http://m.wtxcl.cn

      存檔

      主站蜘蛛池模板: 白水县| 亚洲综合五月天| AV无码不卡| 一级天堂| 国产精品尤物在线观看| 亚洲AV久久伊人| 亚洲人成人| 亚洲中文字幕有码视频| 日韩色导航| 香蕉av在线| 香蕉视频国产在线观看| 四虎论坛| 99精品人妻| 内射中出日韩无国产剧情| 在线精品亚洲一区二区动态图| 横峰县| 激情自拍av| 久久综合结合久久很很很97色| 国产人妖ts在线观看网站| 久久99人妻无码精品一区| 亚洲人成人| 愛爱视频在线3| 在线第一页| 夜夜度影院| 日韩电影在线观看视频| 国产avav| 国产精品va在线观看入口| 亚洲国产第六| 在线免费观看a视频| 亚洲国产精品福利片在线观看 | 日韩伦理片| 99中文在线精品| 伊人久久大香线蕉午夜| 日本免费一区二区三区日本| 成人精品18| 久久综合国产| 九月婷婷亚洲综合在线| 亚洲AV日韩AV永久无码网站| 日韩aⅴ影视| 青青草一区在线观看视频| 免费精品国产自产拍在线观看|