CSSは5つの一般的な2D変換を実装します

CSSは5つの一般的な2D変換を実装します

CSS の 2D 変換を使用すると、移動、回転、拡大縮小、変形などの基本的な変換操作を 2 次元空間で実行できます。変換された要素は絶対配置された要素に似ており、周囲の要素には影響しませんが、周囲の要素と重なることができます。違いは、変換された要素がページ内の変換前のスペースを引き続き占有することです。

2D 変換は、CSS の transform プロパティと次の変換関数を使用して実現できます。

  1. matrix(): 6 つの値 (a、b、c、d、e、f) を含む変換行列の形式で 2D 変換を指定します。これは、[a、b、c、d、e、f] の変換行列を直接適用することと同じです。
  2. translate(): オブジェクトを X 軸と Y 軸に沿って移動します。この関数には 1 ~ 2 個のパラメータが必要です。最初のパラメータは X 軸に対応し、2 番目のパラメータは Y 軸に対応します。2 番目のパラメータが指定されていない場合、デフォルト値は 0 です。
  3. translatex(): オブジェクトを X 軸に沿って (水平に) 移動します。
  4. translatey(): オブジェクトを Y 軸 (垂直方向) に沿って移動します。
  5. rotate(): 指定されたオブジェクトを回転します。回転角度は関数パラメータで指定できます。
  6. scale(): オブジェクトを拡大縮小します。この関数には 1 ~ 2 個のパラメータが必要です。最初のパラメータは X 軸に対応し、2 番目のパラメータは Y 軸に対応します。2 番目のパラメータが指定されていない場合は、最初のパラメータの値がデフォルトで使用されます。
  7. scalex(): オブジェクトを拡大縮小します(要素の幅を変更します)。
  8. scaley(): オブジェクトを拡大縮小します(要素の高さを変更します)。
  9. skew(): オブジェクトを X 軸と Y 軸に沿って傾けたり歪ませたりします。この関数には 1 ~ 2 個のパラメータが必要です。最初のパラメータは X 軸に対応し、2 番目のパラメータは Y 軸に対応します。 2 番目の引数が指定されていない場合、デフォルト値は 0 になります。
  10. skewx(): オブジェクトを X 軸に沿って (水平に) 歪ませます。
  11. skewy(): オブジェクトを Y 軸 (垂直方向) に沿って歪ませます。

1. 翻訳()

translate() 関数は、指定されたパラメータに従って要素を水平方向 (X 軸) または垂直方向 (Y 軸) に移動するために使用されます。関数の構文は次のとおりです。

翻訳(tx, ty)

ここで、tx は要素が水平 (X 軸) 方向に移動する距離に対応し、ty は要素が垂直 (Y 軸) 方向に移動する距離に対応します。パラメータ ty は無視することができ (デフォルトは 0)、両方のパラメータを負の値にすることができます。

[例] translate() 関数を使用して、指定した要素を移動します。

<!DOCTYPE html>
<html>
<ヘッド>
    <スタイル>
        div {
            幅: 100ピクセル;
            高さ: 100px;
            背景色: #CCC;
            変換: translate(100px, 10px);
        }
    </スタイル>
</head>
<本文>
    <div></div>
</本文>
</html>

実行結果は下の図に示されています。

図: translate() 関数のデモンストレーション

要素を水平方向または垂直方向に移動したいだけの場合は、translateX() (要素を水平方向に移動) または translateY() (要素を垂直方向に移動) を使用することもできます。translateX() 関数と translateY() 関数はどちらも、1 つのパラメータのみを指定する必要があります。例:

translateX(100px); /* translate(100px, 0px); と同等 */
translateY(10px); /* translate(0px, 10px); と同等 */

2. 回転()

rotate() 関数は、要素を指定された角度で回転させるために使用されます。関数の構文は次のとおりです。

回転する(a)

パラメータ a は、要素を回転する角度を示します。a が正の値の場合は時計回りの回転を示し、a が負の値の場合は反時計回りの回転を示します。

[例] rotate() 関数を使用して要素を回転します。

<!DOCTYPE html>
<html>
<ヘッド>
    <スタイル>
        div {
            幅: 100ピクセル;
            高さ: 100px;
            背景色: #CCC;
            マージン: 20px 0px 0px 20px;
            変換: 回転(45度);
        }
    </スタイル>
</head>
<本文>
    <div></div>
</本文>
</html>

実行結果は下の図に示されています。

図: rotate() 関数のデモンストレーション

3. スケール()

scale() 関数は、指定された要素を拡大または縮小するために使用されます。関数の構文形式は次のとおりです。

スケール(sx, sy)

ここで、sx は水平スケーリング比を表し、sy は垂直スケーリング比を表します。さらに、パラメータ sy は省略可能で、そのデフォルト値は sx と等しくなります。

[例] 指定された要素を拡大縮小するには、scale() 関数を使用します。

<!DOCTYPE html>
<html>
<ヘッド>
    <スタイル>
        div {
            幅: 100ピクセル;
            高さ: 100px;
            背景色: #CCC;
            変換: スケール(0.7);
        }
    </スタイル>
</head>
<本文>
    <div></div>
</本文>
</html>

実行結果は下の図に示されています。

図: scale() 関数のデモンストレーション

ヒント: scale() で指定されたパラメータ値が -1 ~ 1 の範囲外の場合、要素は拡大されます。パラメータ値が -1 ~ 1 の範囲内の場合、要素は縮小されます。

translate() 関数と同様に、要素のサイズを水平方向のみ、または垂直方向のみに拡大縮小する場合は、scaleX() (要素を水平方向に拡大縮小) 関数と scaleY() (要素を垂直方向に拡大縮小) 関数を使用することもできます。 scaleX() 関数と scaleY() 関数には 1 つの引数のみが必要です。次に例を示します。

scaleX(0.5); /* scale(0.5, 1); と同等 */
scaleY(0.5); /* scale(1, 0.5); と同等 */

4. スキュー()

skew() 関数は、要素を水平方向 (X 軸) と垂直方向 (Y 軸) に傾けて歪ませるために使用されます。関数の構文は次のとおりです。

skew(ax, ay)

パラメータ ax は要素の水平歪み角度を表し、パラメータ ay は要素の垂直歪み角度を表します。また、パラメータ ay は省略可能です。パラメータ ay を省略した場合、デフォルト値は 0 になります。

[例] skew() 関数を使用して、指定した要素を歪めます。

<!DOCTYPE html>
<html>
<ヘッド>
    <スタイル>
        div {
            幅: 100ピクセル;
            高さ: 100px;
            背景色: #CCC;
            マージン: 20px 0px 0px 10px;
            変換: skew(-15度, 20度);
        }
    </スタイル>
</head>
<本文>
    <div></div>
</本文>
</html>

実行結果は下の図に示されています。

図: skew() 関数のデモンストレーション

また、要素を水平方向のみ、または垂直方向のみに歪ませたい場合は、skewX() (要素を水平方向に拡大縮小) 関数と skewY() (要素を垂直方向に拡大縮小) 関数を使用して完了することもできます。 skewX() 関数と skewY() 関数には 1 つの引数のみが必要です。次に例を示します。

skewX(15deg); /* skew(15deg, 0deg); と同等 */
skewY(15deg); /* skew(0deg, 15deg); と同等 */

5. 行列()

matrix() 関数は、skew()、scale()、rotate()、translate() 関数の省略形として考えることができます。すべての 2D 変換操作は、matrix() 関数を通じて同時に定義できます。関数の構文形式は次のとおりです。

行列(a, b, c, d, tx, ty)

matrix() 関数の 6 つのパラメータは、scaleX()、skewY()、skewX()、scaleY()、translateX()、および translateY() 関数に対応します。matrix() を使用して、次のようなさまざまな 2D 変換操作を実装できます。

  • translate(tx, ty) = matrix(1, 0, 0, 1, tx, ty);: ここで、tx と ty は水平方向と垂直方向の移動値です。
  • rotate(a) = matrix(cos(a), sin(a), -sin(a), cos(a), 0, 0);: ここで、a は次数の値です。 sin(a) と -sin(a) の値を入れ替えると逆回転を実行できます。
  • scale(sx, sy) = matrix(sx, 0, 0, sy, 0 ,0);: ここで、sx と sy は水平方向と垂直方向のスケーリング値です。
  • skew(ax, ay) = matrix(1, tan(ay), tan(ay), 1, 0 ,0);: ここで、axとayは度単位の水平値と垂直値です。

[例] matrix() 関数を使用して、要素に対して 2D 変換操作を実行します。

<!DOCTYPE html>
<html>
<ヘッド>
    <スタイル>
        div {
            幅: 100ピクセル;
            高さ: 100px;
            背景色: #CCC;
            マージン: 20px 0px 0px 10px;
            フロート: 左;
        }
        。1つ {
            変換: 行列(0.866, 0.5, -0.5, 0.866, 0, 0);
        }
        。二 {
            左マージン: 35px;
            変換: 行列(0.586, 0.8, -0.8, 0.686, 0, 0);
        }
        。三つ {
            左マージン: 40px;
            上マージン: 25px;
            変換: 行列(0.586, 0.8, -0.8, 0.866, 0, 0);
        }
        .4 {
            変換: 行列(0.586, 0.8, -0.8, 0.586, 40, 30);
        }
    </スタイル>
</head>
<本文>
    <div class="one"></div>
    <div class="two"></div>
    <div class="three"></div>
    <div class="4"></div>
</本文>
</html>

実行結果は下の図に示されています。

図: matrix() 関数のデモンストレーション 

これで、CSS で実装される 5 つの一般的な 2D 変換に関するこの記事は終了です。CSS 2D 変換の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  MySQL トランザクションと分離レベルの基本原理の簡単な分析

>>:  HTML から PDF への変換事例の概要 (複数の画像を推奨)

推薦する

Vue el-date-picker 動的制限時間範囲ケースの詳細な説明

2つの状況がある1. 開始時間と終了時間が同じボックス内にあります(今月のみ限定) 2. 開始時間と...

MySQL で 2 つのテーブルをクエリする場合の from と join の違いの概要

序文MySQL では、複数テーブル結合クエリは非常に一般的な要件です。複数テーブルクエリを使用する場...

IE をフリーズさせる HTML コード

任意のテキスト エディターを開き、次のコードをコピーして、たとえば SomeFilename.htm...

Vue はアップロードされた画像に透かしを追加する機能を実装します

この記事では、Vueでアップロードされた画像に透かしを追加する具体的な実装コードを参考までに共有しま...

Docker を使用してフロントエンド アプリケーションをデプロイする方法

Dockerはますます普及しています。環境を軽量かつ柔軟に分離し、容量を拡張し、運用保守管理を容易に...

検証コード干渉を実装する js (動的)

この記事の例では、検証コードの動的干渉を実装するためのjsの具体的なコードを共有しています。具体的な...

Dockerイメージの作成、保存、読み込み方法

イメージを作成する方法は 3 つあります。既存のイメージに基づいてコンテナを作成する、ローカル テン...

特定の MySQL テーブルの完全データと増分データをメッセージ キューに同期する - ソリューション

目次1. 当初の需要2. 解決策3. 運河の導入と設置運河の仕組み建築インストール4. 検証1. 当...

Ubuntu 18.04.4 に MySQL をインストールするプロセスの詳細な説明

Ubuntu 18.04.4 に MySQL をインストールするプロセスを見てみましょう。内容は次の...

AngularJSにおける括弧の役割の詳細な説明

1. 括弧の役割1.1 角括弧 [ ]属性名が角括弧で囲まれている場合、右側には式の値が割り当てられ...

Vueはパーセンテージバー効果を実現します

この記事では、パーセンテージバーを実現するためのVueの具体的なコードを参考までに共有します。具体的...

VUEウォッチリスナーの基本的な使い方の詳しい説明

目次1. 次のコードはwatchの簡単な使用法です2. 即時監視3. ハンドラメソッド4. 深い属性...

Linux システムで複数のバージョンの PHP を共存させるソリューション (超シンプル)

PHP7が出たので、最新バージョンのファンとしては、早速アップグレードして体験してみました。しかし...

JSを使用して簡単な計算機を実装する

JSを使用して、参考用の簡単な計算機を完成させます。具体的な内容は次のとおりです。要件: 入力値は数...

vue+elementui+vuex+sessionStorage を使用して履歴タグ メニューを実装するためのサンプル コード

一般的には、左側にメニューがあった後、ページの上部に履歴タブ メニューを追加する必要があります。他の...