CSS/HowTo/スクロールさせたい、しかしスクロールバーは出したくない

CSS/HowTo/スクロールさせたい、しかしスクロールバーは出したくない

スクロールさせたい、しかしスクロールバーは出したくない。という場合はどうするか。

よくあるのだと、JS によって制御が入っていてある状況ではスクロールバーが出ているのだが、 途中でコンテンツ量が増減して、それによりスクロールバーが表示されたりされなかったりして、 それによりコンテンツ幅が増減して、それによりレイアウトが崩れるなんてことがおきる。

通常の要素のスクロールバーを表示させない

#hoge{
    height: 300px;
    overflow: auto;
    -ms-overflow-style: none;    /* IE, Edge */
    scrollbar-width: none;       /* Firefox */
    &::-webkit-scrollbar {       /* Chrome, Safari */
        display:none;
    }
}

全体(body要素)のスクロールを表示させない

Firefox だけは概念として最外要素のスクロールバーは body ではなく html にあるということのようで、body に指定しても効かない。なので html 要素に設定する。

html{
    scrollbar-width: none;       /* Firefox */
}
body{
    -ms-overflow-style: none;    /* IE, Edge */
    &::-webkit-scrollbar {       /* Chrome, Safari */
        display:none;
    }
}

Tags

css/howto/scrollable_but_no_scrollbar.txt · 最終更新: 2020-01-16 18:22 by ore