• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

    修復一個因為 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://www.lzhte.cn

    存檔

    主站蜘蛛池模板: 丰满少妇被猛烈进出69影院| 秋霞AV鲁丝片一区二区| 少妇潮喷无码白浆水视频| 国产A V无码专区亚洲AV| 蜜乳av一区二区蜜臀| 精品国偷自产在线视频九色| 欧美成人免费观看A| 狠狠躁狠狠躁东京热无码专区| 亚洲一区二区精品偷拍| 国模大尺度啪啪| 99久久精品国产自免费| 国产91特黄特色A级毛片| 无码精品久久久久久人妻中字| 国产精品亚洲а∨天堂免下载| 精品久久久久久蜜臂a∨| 日本黄页网站免费大全1688| 亚洲熟妇自拍无码区| 岛国大片视频在线播放| 国语自产精品视频二区在线看| 欧美疯狂做受XXXX高潮| 国产乱子伦精品免费女| 精品一区二区三区中文字幕在线 | 亚洲成AV人在线观看网址| 亚洲 欧美 自拍 美腿 卡通| 国产普通话刺激视频在线播放| 成人黃色A片免费看三更小说| 色婷婷亚洲婷婷7月| 亚洲国产精品浪潮AV| 少妇人妻偷人偷人精品| 96久热视频只有精品| 女同一区| 99国产精品国产高清一区二区| 无码中文字幕AV免费放软件| 亚洲AV无码资源在线观看| 国产色噜噜噜在线精品| 亚洲AV激情一区二区二三区| 日本污视频在线观看| 亚洲爆乳大丰满无码专区| 深夜福利网址| 亚洲精品第一在线观看视频| 久久精品国产麻豆不卡|