背景位置パーセンテージ原則の詳細な説明

背景位置パーセンテージ原則の詳細な説明

今日、誰かがコードを調整するのを手伝っていたとき、次のようなスタイルを見つけました。

背景位置: 50% 0;
背景サイズ: 100% 自動;

background-size:100% auto の場合、背景画像の幅は要素の幅 * 100% になり、高さは比例して拡大縮小されます。詳細については、css3 の背景を参照してください。

background-position のパーセンテージは親要素の幅に基づいて計算されると考えるのが自然ですが、background-position は実際にはそうではありません。独自の原則があります。以下に詳しい紹介をさせていただきます。

1. 同等の書き方

さまざまなチュートリアルを読んでみると、次のような同等の書き方があります。

  • 左上、左上は 0% 0% に相当します。
  • top、top center、center top は 50% 0% に相当します。
  • 右上、右上は 100% 0% に相当します。
  • left、left center、center left は 0% 50% に相当します。
  • center、center centerは50% 50%に相当します。
  • 右、右中央、中央右は 100% 50% に相当します。
  • 左下、左下は 0% 100% に相当します。
  • 下、下中央、中央下は 50% 100% に相当します。
  • 右下、右下は 100% 100% に相当します。

では、なぜ左上が 0% 0% に相当し、右下が 100% 100% に相当するのでしょうか?

2. 背景位置パーセンテージ計算式

背景位置:xy;
x: {コンテナの幅 - 背景画像の幅}*x パーセンテージ、余分な部分は非表示になります。
y: {コンテナの高さ - 背景画像の高さ}*y パーセンテージ、余分な部分は非表示になります。

この式により、100% の書き方が分かりやすくなり、また、上で述べた各種の同等の書き方も計算で分かりやすくなります。

3. 例

1. background-position:center centerはbackground-position:50%と同等です。50%はbackground-position:?px ?pxと同等です。

例で使用されている背景画像は次のとおりです[サイズ: 200px*200px]。

背景画像はコンテナ内の中央に配置されます。

<スタイル タイプ="text/css">
。包む{
    幅: 300ピクセル;
    高さ: 300px;
    border:1px 緑一色;
    背景画像: url(img/image.png);
    背景繰り返し: 繰り返しなし;
/* 背景位置: 50% 50%;*/
    背景の位置: 中央 中央;
}
</スタイル>
<div class="wrap">
</div>

背景画像を中央に配置する効果があります

前述の通り、パーセンテージとキーワードを設定することで背景画像を中央に配置することができます。特定の値を設定して画像を中央に配置したい場合は、何を設定すればよいでしょうか?

上記の式によれば、

x=(コンテナの幅-背景画像の幅)*x パーセンテージ=(300px-200px)*50%=50px;

y=(コンテナの高さ-背景画像の高さ)*yパーセンテージ=(300px-200px)*50%=50px;

つまり、 background-postion:50px 50px;を設定します。

テストしてみましょう:

<スタイル タイプ="text/css">
。包む{
    幅: 300ピクセル;
    高さ: 300px;
    border:1px 緑一色;
    背景画像: url(img/image.png);
    背景繰り返し: 繰り返しなし;
/* 背景位置: 50% 50%;*/
/* 背景位置: 中央 中央;*/
    背景の位置: 50px 50px;
}
</スタイル>
<div class="wrap">
</div>

効果も中心にあります。

背景位置パーセンテージの原則についての詳しい説明はこれで終わりです。背景位置パーセンテージに関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  ハードコーディングに別れを告げ、フロントエンドテーブルがインスタンスコードを自動的に計算できるようにします。

>>:  html-webpack-plugin の使用方法の詳細な説明

推薦する

Vue は Axios リクエスト フロントエンドのクロスドメイン問題をどのように解決するのか

目次序文1. クロスドメインの問題はなぜ発生するのでしょうか? 2. 解決策クロスオリジンリソース共...

MySQL 5.7 インストール MySQL サービスを開始できませんが、サービスはエラーを報告しません

MySQL 5.7 をインストールするには 2 つの方法があります。1 つはインストーラをダウンロー...

VueのID認証管理とテナント管理の詳細な説明

目次概要ボタンレベルの権限アイデンティティ認証管理R/U 権限権限の更新テナント管理テナント切り替え...

LinuxシステムにDockerをインストールするプロセス

このブログでは、Docker をインストールするプロセスを簡単な手順で説明します。Docker のイ...

Div はフラッシュを覆います。フラッシュ透過方式により、フラッシュ上に DIV レイヤーを配置できます。

2つのタイプがあります: (異なるブラウザ) 1. IEブラウザで利用可能コードをコピーコードは次の...

nginx proxy_cache バッチキャッシュクリアスクリプトの紹介

前書き: 以前、公式の nginx proxy_cache を CDN 静的キャッシュとして使用して...

Linux LVM 論理ボリューム構成プロセス (作成、増加、削減、削除、アンインストール) の詳細な説明

Linux LVM論理ボリューム構成プロセスの詳細な説明多くの Linux ユーザーは、オペレーティ...

アコーディオン効果を実現するネイティブ js

実際のWebページ開発でも、アコーディオンは頻繁に登場します。簡単なアコーディオンを作ったのですが、...

VMware 仮想マシンに CentOS と Qt をインストールするチュートリアル図

VMware のインストールパッケージのインストールダウンロードアドレス: https://www....

React で遅延読み込みを使用して最初の画面の読み込み時間を短縮する方法

目次使用インストールルーティングでどのように使用しますか?読み込み速度の比較最近、中間およびバックエ...

JS は複数のタブを切り替えるカルーセルを実装します

カルーセルアニメーションは、ページの外観とインタラクティブなパフォーマンスを向上させることができます...

Chrome デベロッパー ツールの詳細な紹介 - タイムライン

1. 概要ユーザーは、アクセスする Web アプリケーションがインタラクティブでスムーズに実行される...

hasLayout によって発生する CSS バグの一覧

IE には長い間問題がありました。誰もがテストを受けたとき、誰もが笑顔でしたが、それはただのニヤニヤ...

Linuxのファイル操作の知識ポイントを詳しく解説

ファイル操作に関連するシステムコール作成するint creat(const char *ファイル名,...

Vueでデータを読み取るためにこれを悪用しないでください

目次序文1. これを使用してデータ内のデータを読み取るプロセス2. Dep.target はいつ存在...