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

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

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

背景位置: 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 コンポーネントはどのように解析され、レンダリングされるのでしょうか?

序文この記事では、Vue コンポーネントがどのように解析され、レンダリングされるかを説明します。 V...

シェルを使用して複数のサーバーでバッチ操作を実行する方法

目次SSHプロトコルパスワード接続プロセスsshツールssh公開鍵ログインバッチ操作複数サーバーファ...

ウェブフロントエンドエンジニアにおすすめのヒント

まず、Webフロントエンドエンジニアの価値についてお話ししましょう。現在、Web製品のインタラクショ...

親要素を基準にCSSの位置を絶対的に設定する方法についての簡単な説明

ご存知のとおり、CSS の絶対位置はデフォルトでドキュメントに応じて設定されます。たとえば、posi...

Vue+Element UI でサマリーポップアップウィンドウを実装するプロセス全体

シナリオ: 検査文書には n 個の検査詳細があり、検査詳細には n 個の検査項目があります。実装効果...

MySQL の Like の概念と使用法の説明

Like は中国語で「好き」を意味しますが、MySQL データベースに適用される場合、Like は、...

Docker デプロイメント MySQL8 クラスター (マスター 1 台とスレーブ 2 台) の実装手順

目次1. CentOS 7.9 20にDockerをインストールする2. MySQL クラスターをデ...

さまざまなネットワーク画像形式におけるPNGの利点の詳細な説明

BMP は、ハードウェア デバイスに依存せず、広く使用されている画像ファイル形式です。ビットマップ保...

ウェブページで Enter キーを押すと自動的にフォームを送信し、他のページにジャンプするソリューション

ウェブページでEnterキーを押すと、フォームは自動的に送信され、他のページに移動します。クエリフォ...

JS配列の一般的な方法とテクニックを学び、マスターになりましょう

目次splice() メソッドjoin() メソッド逆() メソッドevery() メソッド削減()...

HTML テキストエスケープのヒント

今日、CSDN で HTML テキスト エスケープのちょっとしたトリックを見ましたが、とても簡単です...

サーバーの購入と初期構築方法

しばらくサーバーいじってなかったけど、やることがなくなったのでモバイルワークスに行って海外サーバーを...

テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加によく使用される MySQL の SQL 文の概要

この記事では、テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加を行う一般的な ...

LinuxのバックグラウンドでPythonプログラムを実行するいくつかの方法

1. 最初の方法は、unhup コマンドを直接使用してプログラムをバックグラウンドで実行することです...

MySQL準備原理の詳細な説明

準備のメリットPrepare SQL が生成される理由。まず、MySQL サーバー上で SQL を実...