• <center id="sm46c"></center>
  • <dfn id="sm46c"></dfn>
  • <strike id="sm46c"></strike>
  • <cite id="sm46c"><source id="sm46c"></source></cite>
    • <strike id="sm46c"><source id="sm46c"></source></strike>
      <option id="sm46c"></option>
      国产精品天天看天天狠,女高中生强奷系列在线播放,久久无码免费的a毛片大全,国产日韩综合av在线,亚洲国产中文综合专区在,特殊重囗味sm在线观看无码,中文字幕一区二区三区四区在线,无码任你躁久久久久久老妇蜜桃

      修復(fù)一個因為 scrollbar 占據(jù)空間導(dǎo)致的 bug

      2020-5-5    seo達人

      背景

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


      正文

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


      image.png


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


      <Input

       // ...

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

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

      />


      <Table

       data-focused-column={focusedInputName}

       // ...

      />

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


      image.png


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


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

      image.png


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


      image.png


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


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


      overscroll-y: overlay

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

      /* 默認值。內(nèi)容不會被修剪,會呈現(xiàn)在元素框之外 */

      overflow: visible;


      /* 內(nèi)容會被修剪,并且其余內(nèi)容不可見 */

      overflow: hidden;


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

      overflow: scroll;


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

      overflow: auto;


      /* 規(guī)定從父元素繼承overflow屬性的值 */

      overflow: inherit;

      官方描述:

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

      表現(xiàn):

      html {

       overflow-y: overlay;

      }

      兼容性

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


      image.png


      問題場景以及解決辦法

      1. 外部容器的滾動條

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


      html {

       overflow-y: scroll;

      }

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


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


      優(yōu)點: 方便, 沒有兼容性的問題。


      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. 內(nèi)部容器做兼容


      .wrapper {

         overflow-y: scroll; // fallback

         overflow-y: overlay;

      }

      總結(jié)

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


      內(nèi)容就這么多, 希望對大家有所啟發(fā)。


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

      日歷

      鏈接

      個人資料

      藍藍設(shè)計的小編 http://www.li-bodun.cn

      存檔

      主站蜘蛛池模板: 狠狠做久久深爱婷婷| 欧美婷婷六月丁香综合色| 亚洲天堂男人| 7777精品久久久大香线蕉| 亚洲精品国产成人99久久6| 国产一区二区不卡在线| 婷婷色香五月综合缴缴情香蕉| 久久丫免费无码一区二区| 久久激情五月丁香伊人| 欧美性xxxx极品少妇| 美女爽到高潮嗷嗷嗷叫免费网站| 99精品国产中文字幕| 国产精品手机在线观看你懂的 | 亚洲色大成网站WWW国产| 自拍偷自拍亚洲精品熟妇人| 中文AV无码人妻一区二区三区| 无码一区东京热| 亚洲欧美日韩精品色xxx| 欧美午夜理伦三级在线观看| 亚洲性日韩精品一区二区三区| 99精品在线视频观看| 亚洲乱码中文论理电影| 欧美成人一区二区三区片免费 | 黑人精品XXX一区一二区| 亚洲熟妇少妇任你躁在线观看无码| 亚洲自偷自偷偷色无码中文| 夜夜躁狠狠躁日日躁2022| 精品亚洲成a人在线观看| 欧美极p品少妇的xxxxx| 精品熟女少妇av免费久久| 成年网站未满十八禁视频天堂| 欧美亚洲日韩国产人成在线播放| 花莲市| 亚洲天堂成人黄色在线播放| 欧美国产精品啪啪| 国产精品18久久久| 无码人妻丰满熟妇区五十路| 国产精品亚洲第一区焦香味| 亚洲六月丁香六月婷婷| 国产另类ts人妖一区二区| 好紧好滑好湿好爽免费视频|