CSSスクロールバーのスタイルをカスタマイズする方法の詳細な説明

CSSスクロールバーのスタイルをカスタマイズする方法の詳細な説明

この記事では、CSS スクロールバー セレクターを紹介し、Webkit ブラウザーと IE ブラウザーで水平スクロールバーと垂直スクロールバーをカスタマイズする方法をデモで示します。

0. 需要

ブラウザのデフォルトのスクロール バー スタイルはカスタマイズされておらず、見た目も美しくないため、使用したくない場合があります。では、スクロール バーのスタイルをどのようにカスタマイズするのでしょうか?以下で一緒に見てみましょう。

1 基本

1.1 Webkit コアの CSS スクロールバー セレクター

::-webkit-scrollbar CSS 疑似クラス セレクターは、要素のスクロールバーのスタイルに影響します。

財産:

::-webkit-scrollbar — スクロールバー全体

::-webkit-scrollbar-track — スクロールバー トラック

::-webkit-scrollbar-thumb — スクロールバーのつまみ

::-webkit-scrollbar-button — スクロールバー上のボタン(上矢印と下矢印)

::-webkit-scrollbar-track-piece — スライダーのないスクロールバーのトラック部分

::-webkit-scrollbar-corner — 垂直スクロールバーと水平スクロールバーが同時に交わるコーナー

::-webkit-resizer — 一部の要素の角の部分的なスタイル(例:テキストエリアのドラッグ可能なボタン)

知らせ:

(1)ブラウザのサポート:

::-webkit-scrollbar は、Webkit をサポートするブラウザ (Chrome、Safari) でのみ使用できます。

(2)縦・横スクロールバーの設定が可能

スクロール バーを水平 (:horizo​​ntal) に設定できます。指定しない場合は、デフォルトは垂直 (:vertical) です。

(3)スクロールバー上のボタン(:decrement、:increment)

以下のデモに表示される画像を設定できます。

1.2 IE カスタム スクロール バー スタイル

カスタマイズできるスタイルは比較的少なく、スクロールバーの各部分に表示される色しか制御できないため、カスタマイズ性は低いです。ここではいくつかのスタイルのみをリストします。scrollbar-3dlight-color や scrollbar-highlight-color などのスタイルを試しましたが、うまくいかなかったので、ここではリストしません。

scrollbar-arrow-color — スクロールバーの三角形の矢印の色 scrollbar-face-color — スクロールバーのスライダーの色

scrollbar-track-color — スクロールバーのトラックとボタンの背景色 scrollbar-shadow-color — スクロールボックスのスライダーの境界線の色

2. デモですぐに始める

2.1 Webkit ベースのブラウザ (Chrome、Safari) のカスタム スクロール バー スタイル

上記の説明が少し抽象的だと思われる場合は、ブラウザで直接デモを開き、デモ内のコメントを参照して各属性の意味を理解することができます。図ではいくつかのプロパティをマークしています。スクロール バーの外側のトラックのプロパティは図ではマークされていません。Chrome ブラウザ コンソールを開いてプロパティを表示できます。

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
  <メタ文字セット="UTF-8">
  <title>スクロールバーのデモ - lynnshen</title>
  <スタイル タイプ="text/css">
    * {
      マージン: 0;
      パディング: 0;
    }

    .scolltable {
      幅: 500ピクセル;
      高さ: 300px;
      境界線: 1px 黒一色;
      
      /*水平および垂直の中央揃えを実現する*/
      位置: 絶対;
      左: 50%;
      上位: 50%;
      左マージン: -250px;
      上マージン: -150px;

      オーバーフロー: スクロール;
    }

    。コンテンツ {
      /*.scolltable より広くする必要があります*/
      幅: 600ピクセル;
    }

    /*スクロールバー全体*/

    ::-webkit-スクロールバー{
      幅: 24px;
      背景色: 透明;
    }

    /* 水平スクロールバー全体 */

    ::-webkit-スクロールバー:水平{
      高さ: 24px;
      背景色: 透明;
    }

    /*スクロールバートラック*/

    ::-webkit-スクロールバートラック{
      背景色: #f6f8fc;
      右境界線: 1px 実線 #f1f5fa;
      境界線: 1px 実線 #f1f5fa;
      ;
    }

    /*垂直スライダー*/

    ::-webkit-スクロールバー-サムネイル {
      背景色: rgba(220, 228, 243, 1);
      境界線の半径: 0px;
      上境界線: 1px 実線 #edf2f9;
      下境界線: 1px 実線 #edf2f9;
      左境界線: 1px 実線 #f1f5fa;
    }

    /*水平スライダー*/

    ::-webkit-スクロールバー-サムネイル:水平{
      /* 背景色: rgba(220, 228, 243, 1); */
      境界線の半径: 0px;
      上境界線: 1px 実線 #edf2f9;
      /* 右境界線: 1px 実線 #f1f5fa;
      左ボーダー: 1px 実線 #f1f5fa; */
    }

    /*スクロール バーのボタン - 垂直スクロール バーを上に移動*/

    ::-webkit-スクロールバーボタン:減分{
      下境界線: 1px 実線 #edf2f9;
      高さ: 26px;
      背景: url("./images/scroll_up.png") 7px 9px 繰り返しなし;
      右境界線: 1px 実線 #f1f5fa;
      左境界線: 1px 実線 #f1f5fa;
    }

    /*スクロール バーのボタン - 垂直スクロール バーを下へ*/

    ::-webkit-スクロールバーボタン:増加{
      上境界線: 1px 実線 #edf2f9;
      高さ: 26px;
      背景: url("./images/scroll_down.png") 7px 10px 繰り返しなし;
      右境界線: 1px 実線 #f1f5fa;
      左境界線: 1px 実線 #f1f5fa;
      下境界線: 1px 実線 #f1f5fa;
    }

    /*スクロール バーのボタン - 左への水平スクロール バー*/

    ::-webkit-スクロールバーボタン:水平:減少{
      上境界線: 1px 実線 #edf2f9;
      幅: 26px;
      背景: url("./images/scroll_left.png") 9px 7px 繰り返しなし;
      上境界線: 1px 実線 #f1f5fa;
      下境界線: 1px 実線 #f1f5fa;
      右ボーダー:1px 実線 #f1f5fa;
    }

    /*スクロール バーのボタン - 右への水平スクロール バー*/

    ::-webkit-スクロールバーボタン:水平:増分{
      上境界線: 1px 実線 #edf2f9;
      幅: 25px;
      背景: url("./images/scroll_right.png") 10px 7px 繰り返しなし;
      左ボーダー:1px 実線 #f1f5fa;
    }
    
    /*コーナー*/
    ::-webkit-スクロールバーコーナー{
      境界線:1px実線 #dce4f3;
    }
  </スタイル>
  
</head>

<本文>
  <div class="scolltable">
    <div class="content">
      : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
  </div>
</本文>

</html>

結果:

WebKitベースのブラウザ

例:

(1)スクロールバーの両端のボタンに用いられる画像と、四隅にそれぞれ用いられる4つの画像。

(2).scolltableは、絶対配置を使用して要素の固定点を本体の中央に配置することで、水平方向と垂直方向の中央揃えの効果を実現します。次に、負のマージン(要素の幅と高さの半分)を使用して、要素を本文の中央に戻します。

2.2 IEカスタムスクロールバースタイル

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
  <メタ文字セット="UTF-8">
  <title>IE のスクロールバー - lynnshen</title>
  <スタイル タイプ="text/css">
    * {
      マージン: 0;
      パディング: 0;
    }

    .scolltable {
      幅: 500ピクセル;
      高さ: 300px;
      境界線: 1px 黒一色;
      
      /*水平および垂直の中央揃えを実現する*/
      位置: 絶対;
      左: 50%;
      上位: 50%;
      左マージン: -250px;
      上マージン: -150px;

      オーバーフロー: スクロール;
      
      スクロールバーの表面の色:緑黄色;
      スクロールバー矢印の色:ゴールデンロッド;
      スクロールバーの影の色:赤;
      スクロールバートラックの色:ピンク;
    }

    。コンテンツ {
      /*.scolltable より広くする必要があります*/
      幅: 600ピクセル;
    }
    
  </スタイル>
  
</head>

<本文>
  <div class="scolltable">
    <div class="content">
      : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
  </div>
</本文>

</html>

結果:

IE

3. まとめ

この記事では主に、Webkit ベースのブラウザと IE でスクロール バーのスタイルをカスタマイズする方法を記録し、それぞれ 2 つのデモを提供します。ご質問がございましたら、お気軽にご指摘ください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  Vueの子コンポーネントと親コンポーネントの詳細な分析

>>:  Dockerイメージ構築原理の分析(Dockerをインストールしなくてもイメージを構築できる)

推薦する

NodeはMySQLに接続し、追加、削除、変更、チェックのための実装コードをカプセル化します。

目次ノードはMysqlに接続しますMySQLモジュールをインストールするMySQLに接続するよく使わ...

MySQL パフォーマンス ストレス ベンチマーク ツール sysbench の使い方の紹介

目次1. sysbenchの紹介#プロジェクトダウンロードアドレス: 2. Sysbenchのインス...

MYSQL開発パフォーマンス調査:バッチデータ挿入の最適化方法

1. どのような問題に直面しましたか?標準 SQL では、通常、次の SQL 挿入ステートメントを記...

Clickhouse Docker クラスターの展開と構成を例を使って説明します

目次前面に書かれた環境の展開Zookeeper クラスタの展開Clickhouse クラスターの展開...

Apache SkyWalking アラーム設定ガイドの詳細な説明

アパッチ スカイウォーキングApache SkyWalking は、マイクロサービス、クラウド ネイ...

Win10 64ビットMySQL8.0のダウンロードとインストールのチュートリアル図

公式サイトから MySQL をダウンロードしてインストールし、クライアントにログインするにはどうすれ...

Tencent Cloud Server Tomcat ポートにアクセスできない場合の解決策

最近、Tencent Cloudを使用してサーバーを設定しました。使用中に、tomcatポートにアク...

Mysql テーブルで利用可能な最小 ID 値を照会する方法

今日、研究室のプロジェクトを見ていたとき、私にとって「難しい」問題に遭遇しました。実は、それは私があ...

Vueはボタン切り替え画像を実装します

この記事では、ボタン切り替え画像を実現するためのVueの具体的なコードを例として紹介します。具体的な...

CSS3 テキストシャドウ text-shadow プロパティの詳細な説明

テキストシャドウ text-shadow プロパティの効果: 1. 右下隅の影、左下隅の影、左上隅の...

IE ブラウザの HTML ハック タグの概要

コードをコピーコードは次のとおりです。 <!--[if !IE]><!-->...

1 つの記事で Apache Avro データを解析する

概要: この記事では、Avro データをシリアル化して生成し、FlinkSQL を使用して解析する方...

UbuntuでGRUBの起動時間を変更する

grubの起動時間を変更するためのオンライン検索は基本的に/etc/default/grubを変更す...

CSS でのフィルタープロパティの使用に関する詳細な説明

フィルター属性は要素の視覚効果を定義しますぼかし画像にガウスぼかしを適用します。 「半径」の値は、ガ...