banner
Zein

Zein

x_id

css3

内容とスタイルの分離を実現するために、CSS を使用してページのレイアウト、要素の色やサイズを調整し、背景画像やボーダーを追加し、アニメーション効果を作成します。

image.png

selector {
    property: value;
}

/* タグセレクタ: このCSSルールはHTML文書内のすべてのh1要素に適用され、これらのh1要素の文字色を青にし、フォントサイズを24ピクセルにします */
h1 {
    color: blue;
    font-size: 24px;
}

/* クラスセレクタ */
/* <div class="block1"> 赤色に変わる </div> */
.block1 {
    color: red;
}

/* IDセレクタ */
/* <p id="id1"> 赤色に変わる </p> */
#id1 {
    color: red;
}

/* ワイルドカードセレクタ: すべての要素タグの内外のマージンをクリアします */
* {
   margin: 0;
   padding: 0;
}

/* 属性セレクタ */
/* css2から */
[attribute] { property: value; } /* attribute属性を持つすべての要素にマッチ */
[attribute="value"] { property: value; } /**/
[attribute^="value"] { property: value; } /* attribute属性値が "value" で始まるすべての要素にマッチ */
[attribute|="value"] { property: value; } /* attribute属性値が "value" または "value-" で始まる要素にマッチ */
/* css3 */
[attribute$="value"] { property: value; } /* attribute属性値が "value" で終わるすべての要素にマッチ */
[attribute*="value"] { property: value; } /* attribute属性値に "value" という文字列が含まれるすべての要素にマッチ */
[attribute~="value"] { property: value; } /* attribute属性値に "value" という単語が含まれる要素にマッチ */

1)selector は CSS ルールが適用される要素を指定します;selector にはタグセレクタ、クラスセレクタ、ID セレクタ、ワイルドカードセレクタが含まれます。
2)property: value;:一組の CSS 宣言。

複合セレクタ#

和集合セレクタ#

複数の基本セレクタをカンマで区切ります。

p, b, i, span { /* すべての <p>、<b>、<i>、<span> 要素を選択し、color: red; を設定します */
    color: red;
}

積集合セレクタ#

div.class { /* divタグであり、かつclassクラスである */
    color: red;
}

子孫セレクタ#

子孫セレクタは、特定の要素内のすべての子孫要素を選択し、これらの子孫要素の階層の深さには関係ありません。

p b { /* すべての <p> 要素内の <b> 要素を選択し、<b> が <p> 内でどれだけ深くネストされていても */
    color: red;
}

セレクタ#

特定の要素の直接の子要素を選択します。

ul > li {
    border: 1px solid red;
}

隣接兄弟セレクタ#

別の要素の直後にある兄弟要素を選択します。

p + b { /* <p> 要素の直後の最初の <b> 要素を選択します */
    color: red;
}

一般的な兄弟 ** セレクタ#

特定の要素の後にあるすべての兄弟要素を選択します。

p ~ b { /* <p> 要素の後にあるすべての <b> 要素を選択します。必ずしも <p> の直後である必要はなく、同じレベルのDOMツリー内にあればよい */
    color: red;
}

擬似クラスセレクタ#

擬似クラスセレクタ説明
親要素の最初の子要素にマッチ
親要素の最後の子要素にマッチ
(n)親要素内の n 番目の子要素にマッチ;n は増加する自然数で、定数や odd、even も書ける
(n)親要素の n 番目の同じタイプの子要素にマッチ
親要素内の最初の同じタイプの子要素にマッチ
親要素の最後の同じタイプの子要素にマッチ
すべての未訪問リンクにマッチ
すべての訪問済みリンクにマッチ
マウスがその上にある要素にマッチ
クリックされたリンクにマッチ(例:マウスを押している状態)
選択されている状態の 要素にマッチ
すべての無効な 要素にマッチ
子要素がない

要素にマッチ

すべての有効な 要素にマッチ
フォーカスを持つ 要素にマッチ
指定された値の範囲を持つ 要素にマッチ
無効な値を持つすべての 要素にマッチ
(language)lang 属性値が "it" で始まるすべての

要素にマッチ

(selector)すべての非

要素にマッチ

(n)親要素の倒数第 n の子要素にマッチ
(n)親要素の倒数第 n の子要素にマッチ
親要素内の唯一の

要素にマッチ

親要素内の唯一の子要素にマッチ
"required" 属性を持たない 要素にマッチ
指定された範囲外の値を持つ 要素にマッチ
"readonly" 属性が指定された 要素にマッチ
"readonly" 属性を持たない 要素にマッチ
"required" 属性が指定された 要素にマッチ
要素のルート要素にマッチ。HTML では、ルート要素は常に HTML です
現在アクティブな #news 要素にマッチ(そのアンカー名を含む URL をクリック)
有効な値を持つすべての 要素にマッチ

擬似要素セレクタ#

要素の一部(例:最初の文字、最初の行のテキストなど)にマッチします。

擬似要素例の説明css
::after要素の後にコンテンツを挿入2
::before要素の前にコンテンツを挿入2
::first-letterブロック要素の内容の最初の文字にマッチ
::first-lineブロック要素の内容の最初の行にマッチ
::selectionユーザーが選択した要素にマッチ
::placeholderフォームコントロールのプレースホルダーテキスト(例:)にマッチ;テキストスタイルをカスタマイズするために使用
<p>strick</p>
<input type="text" placeholder="入力してください"/>
p::first-letter {
  font-size: 200%;
}
p::first-line {
  font-weight: bold;
}
input::placeholder {
  color: red;
}
p::selection {
  color: red;
}

p::before {
  content: "I "<!--画像url('./smiley.gif');-->
}
p::after {
  content: " Strick"
}

css のインポート#

複数のスタイルシートが同じ要素に影響を与える場合、ブラウザは衝突スタイルのカスケード優先度ルールに基づいて適用されるスタイルを決定します:!importantマーク > 要素内埋め込み > ドキュメント内埋め込み > 外部リンクスタイル > ブラウザのデフォルト指定スタイル;

セレクタの優先度:選定範囲が狭いほど優先されます。

image.png

要素内埋め込み#

要素タグ内の style 属性で CSS スタイルを設定します。シンプルなスタイルを変更するのに適しています;各宣言のキーと値のペアは;で区切ります。

<p style="color:red;font-size:50px;">こんにちは世界</p>

ドキュメント内埋め込み#

内に

外部リンクスタイル#

<link rel="stylesheet" type="text/css" href="style.css">

style.css:

@charset "utf-8";
p {
    color: green;
    font-size: 30px;
}

強制的に最高優先度を設定#

color: green !important;

スタイルの継承#

1)要素が親要素に関連するスタイルを設定していない場合、親要素のスタイルを継承します(text-、font-、line - で始まる属性および color 属性スタイルのみ継承可能で、レイアウトスタイルには適用されません)。
2)レイアウトスタイルを強制的に継承します。

<p style="color:red;">これは<b>HTML5</b>です</p> <!--<b>要素は<p>要素のスタイルを継承しました-->

<p>これは<b>HTML5</b>です</p>
<style type="text/css">
  p {
    border: 1px solid red;<!--borderは非継承スタイル-->
  }
  b {
    border: inherit;
  }
</style>

ボックスモデル#

ウェブページのレイアウトプロセス:
1)各ウェブ要素ボックスのスタイルを設定し、適切な位置に配置します。
2)ボックスにコンテンツを詰め込みます。

content と border の距離は内側の余白です;ボックス間の距離は外側の余白です。

image.png

要素ボックスのタイプ#

ブロック要素#

  1. ブロック要素は 1 行を占有します;
  2. 高さ、幅、外側の余白、内側の余白はすべて制御可能です。
  3. 幅はデフォルトでコンテナ(親の幅)の 100% です。
  4. テキスト要素内にブロック要素を配置することはできません;例えば

    ~#

一般的なブロック要素:

<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>

インライン要素#

  1. 一行に複数のインライン要素を表示できます;
  2. 高さ、幅を直接設定することは無効です。内容の幅に自動的に適応します。
  3. インライン要素はテキストまたは他のインライン要素のみを含むことができます。
  4. リンク内にリンクを配置することはできません;特別な場合にはリンク内にブロック要素を配置できますが、ブロックモードに変換するのが最も安全です。

一般的なインライン要素:

<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>

インラインブロック要素#

  1. 一行に複数のインラインブロック要素を表示できますが、間に空白の隙間があります;
  2. デフォルトの幅は内容の幅に自動的に適応します;高さ、行の高さ、外側の余白、内側の余白はすべて制御可能です。

一般的なインラインブロック要素:

<img />、<input />、<td>

タイプ変換#

span { /* ブロック要素に変換 */
  display: block;
}

div { /* インライン要素に変換 */
  display: inline;
}

div { /* インライン-ブロック要素に変換 */
  display: inline-block;
}

div { display: none; /* 要素を隠して、スペースを占有しない */ }

要素ボックスのサイズを設定#

属性説明CSS バージョン
widthauto、長さ値またはパーセンテージ要素の幅を設定1
heightauto、長さ値またはパーセンテージ要素の高さを設定1
min-widthauto、長さ値またはパーセンテージ要素の最小幅を設定2
min-heightauto、長さ値またはパーセンテージ要素の最小高さを設定2
max-widthauto、長さ値またはパーセンテージ要素の最大幅を設定2
max-heightauto、長さ値またはパーセンテージ要素の最大高さを設定2
box-sizingcontent-box border-boxデフォルト値、要素の幅と高さはcontentサイズのみを計算し、paddingborderは含まれません。要素の幅と高さは内側の余白paddingとボーダーborderを含むように計算されます。3、各内核の初期に実験機能として、ブラウザのプレフィックスが必要で、後に不要になります。
resizenone both horizontal vertical通常の要素のデフォルト値、クライアントユーザーが要素のサイズを調整できない。フォームタイプの textarea 要素のデフォルト値、クライアントユーザーが要素の幅と高さを調整できる。クライアントユーザーが要素の幅を調整できる。クライアントユーザーが要素の高さを調整できる。
div {
  background-color: purple;

  width: 200px; height: 200px;
  min-width: 100px;
  min-height: 100px;
  max-width: 300px;
  max-height: 300px;

  resize: both;
  overflow: auto; /* この設定により、サイズをドラッグ可能な形状が表示されます。 */

  /*  -webkit-box-sizing: border-box; */  /* Safari と Chrome */
  /*  -moz-box-sizing: border-box;  */   /* Firefox */
  /*  -ms-box-sizing: border-box;   */   /* IE */
  box-sizing: border-box;         /* 標準 */
  padding: 10px; border: 5px solid red;
}

内側の余白 padding を設定#

要素内部の余白の大きさを設定します。

属性説明CSS バージョン
padding-top長さ値またはパーセンテージ上部の内側の余白を設定1
padding-right長さ値またはパーセンテージ右側の内側の余白を設定1
padding-bottom長さ値またはパーセンテージ下部の内側の余白を設定1
padding-left長さ値またはパーセンテージ左側の内側の余白を設定1
padding1 ~ 4 個の長さ値またはパーセンテージ短縮プロパティ1
div {
  padding-top: 10px;
  padding-right: 10px;
  padding-bottom: 10px;
  padding-left: 10px;
}

div {
  padding: 10px 10px 10px 10px;
}

div {
  padding: 10px 20px; /* 上下、左右 */
}

div {
  padding: 10px;
}

外側の余白 margin を設定#

要素外部の余白の大きさを設定します。

属性説明CSS バージョン
margin-top
margin-right
margin-bottom
margin-left
margin長さ値 パーセンテージ auto:外側の余白が自動的にブラウザの幅を占める上部の内側の余白を設定
右側の内側の余白を設定
下部の内側の余白を設定
左側の内側の余白を設定
短縮プロパティ1
div {
  margin-top: 10px;
  margin-right: 10px;
  margin-bottom: 10px;
  margin-left: 10px;
}

div {
  margin: 10px 10px 10px 10px;
}

div {
  margin: 10px 20px;
}

div {
  margin: 10px;
}

/* ボックスの中央揃え */
div {
  margin: 0 auto;
}

/* ボックスの水平方向の中央揃え */
div {
  margin-right: auto;
  margin-left: auto;
}

ボックスの垂直整列時のマージン重複#

垂直に配置された隣接ボックス;実際の間隔は 2 つのボックスの上下のマージンの最大値です;他の状況のマージンの合計ではありません。

ボックス内の要素の垂直整列時のマージン上部の崩壊#

親子タグの中で、子タグにマージン上部を追加すると、親子タグが一緒に下に移動します。

解決策:子タグにマージン上部を追加する動機は、一般的に子タグの親要素内での垂直整列を調整することです。この垂直整列を調整するより良い方法:
1)子要素のマージンをキャンセルし、親要素に padding-top を設定します。
2)親要素に overflowを設定します。
3)親要素に border-top を設定します。

オーバーフローの処理#

属性説明CSS バージョン
overflow - xオーバーフロー値水平方向のオーバーフローを設定3
overflow - yオーバーフロー値垂直方向のオーバーフローを設定3
overflow上記と同じ値:
auto :ブラウザがオーバーフローコンテンツを処理します。オーバーフローコンテンツがある場合はスクロールバーを表示し、そうでない場合は表示しません。
hidden :オーバーフローコンテンツがある場合は直接カットします。
scroll:オーバーフローの有無にかかわらず、常にスクロールバーが表示されます。ただし、異なるプラットフォームやブラウザで表示方法が異なります。
visible :デフォルト値、オーバーフローの有無にかかわらず、常にコンテンツを表示します。短縮プロパティ2
div {
  overflow: auto;
}

要素の可視性を設定#

属性
display
visibilityvisible:デフォルト値、要素がページ上で可視。 hidden:要素が不可視ですが、スペースを占有します collapse:要素が不可視で、テーブルの行と列を隠します。テーブルでない場合は hidden と同じです;Chrome と Opera はサポートしていない可能性があります。
div { visibility: hidden; }

ボックスのデバッグ時の可視性は、ボーダーと背景色を設定することで実現します。

要素の浮動設定#

属性説明
floatleft right none浮動要素を左に寄せる 浮動要素を右に寄せる 浮動を無効にする
clearnone left right both浮動要素が左右の境界にぴったり寄せられる 浮動要素が左の境界にぴったり寄せられない 浮動要素が右の境界にぴったり寄せられない 浮動要素が左右の境界にぴったり寄せられない
#a { /* 浮動要素を左に寄せる */
  background: gray;
  float: left;
  clear: none;
}

#c { /* 浮動要素を右に寄せる */
  background: navy;
  float: right;
  clear: both;
}

#c { /* 浮動を無効にする */
  background: navy;
  float: none;
}

要素の位置設定プロパティ#

位置設定プロパティを設定すると、要素が 1 つの position 層に上昇し、レイアウトが行われます。

属性説明
positionstatic absolute relative fixedデフォルト値、無位置。 絶対位置、文書の流れから外れ、ウィンドウ文書の左上隅 0,0 を起点とします;top、right、bottom、left を使用して相対距離を記述します。 相対位置、top、right、bottom、left を使用して相対距離を記述します。元の位置に対して移動します。ウィンドウ参照位置、top、right、bottom、left を使用して相対距離を記述します。
header { /* 絶対位置:ウィンドウ文書の左上隅0,0を起点とします */
  position: absolute; top: 100px; left: 100px;
}

header { /* ウィンドウ参照位置:スクロールバーに合わせてスクロールし、ウィンドウに対して静止する効果を得ます */
  position: fixed; top: 100px; left: 100px;
}

/* 特定の要素に対して位置を設定:文書の流れから外れません */
body { /* 参照点の親要素を相対に設定し、座標を設定しません */
  position: relative;
}
header { /* 親要素が参照点を設定した場合、子要素の絶対位置はそれを基準にします */
  position: absolute; top: 0px; left: 0px;
}

レイヤーの優先度を設定#

属性説明
z-indexauto 数字デフォルトのレイヤー レイヤーを設定し、数字が大きいほどレイヤーが高くなります。
header {
  z-index: 100;
}

レイアウト#

ドキュメント標準レイアウト#

ボックスのタイプ自体のレイアウト特性 + タイプ変換を使用します;現在、一般的にウェブページ全体の構造は標準フローのレイアウトであり、1 行内の複数の子ブロックは特殊なレイアウトです。

親ボックスに高さがない場合、子ボックスは親ボックスを押し上げます。

テーブルレイアウト#

初期にはテーブルを使用してウェブページの構造を記述し、ブロックスタイルの幅を設定することで table { width: 100% } 常にブラウザウィンドウの 100% になります。次に、子ブロック(セル)の幅を親ブロックのパーセンテージとして設定し、ページがウィンドウサイズに適応します。

image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>レイアウトテーブル</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <table border="0">
        <tr>
            <td colspan="2" class="header">ヘッダー</td>
        </tr>
        <tr>
            <td class="aside">サイドバー</td>
            <td class="section">セクション</td>
        </tr>
        <tr>
            <td colspan="2" class="footer">フッター</td>
        </tr>
    </table>
</body>
</html>

styles.css:

/* ページの基本スタイル */
body {
    margin: 0;
}

/* 流体レイアウトのテーブルスタイル */
table {
    margin: 0 auto;
    width: 100%;  /* テーブルの幅を100%に設定し、ウィンドウの幅に適応させます */
    border-spacing: 0;
}

/* ヘッダースタイル */
.header {
    height: 120px;
    background-color: #2714d1;
    text-align: center;
    font-size: 24px;
}

/* サイドバーのスタイル */
.aside {
    width: 20%; /* 幅を20%に設定 */
    height: 500px;
    background-color: #2e53d0;
    padding: 10px;
    box-sizing: border-box;
}

/* メインコンテンツエリアのスタイル */
.section {
    width: 80%;  /* 幅を80%に設定 */
    height: 500px;
    background-color: #4eb776;
    padding: 10px;
    box-sizing: border-box;
}

/* フッタースタイル */
.footer {
    height: 120px;
    background-color: #f2f2f2;
    text-align: center;
    font-size: 18px;
}

Float~~~~ レイアウト#

1)要素に浮動プロパティを追加すると、要素は文書の標準レイアウトのブロックの上に浮かび上がります;これは float 層でのレイアウトを行うと理解できます;また、親ボックスに高さがない場合、子ボックスはもはや親ボックスを押し上げません。
2)要素はインラインブロック特性を持ちます。
3)要素は上部に揃います。

浮動は画像とテキストの回り込みを実現するのが簡単です:

image.png

image.png

image.png

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>浮動レイアウト - 流体レイアウト</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body class="clearfix">
  <header>ヘッダー</header>
  <aside>サイドバー</aside>
  <section>セクション</section>
  <footer>フッター</footer>
</body>
</html>

styles.css:

/* bodyの幅をautoに設定し、ページの幅がビューポートに自動的に調整されるようにします */
body {
    width: 100%;
    margin: 0;
    color: white;
    background-color: #333;
}

/* ヘッダーの高さを固定します */
header {
    height: 120px;
    background-color: #444;
    text-align: center;
    padding-top: 40px;
    font-size: 24px;
}

/* サイドバーの幅を20%に設定し、浮動させます */
aside {
    width: 20%;
    height: 500px;
    float: left;
    background-color: #555;
    padding: 10px;
    box-sizing: border-box;
}

/* セクションの幅を80%に設定し、浮動させます */
section {
    width: 80%;
    height: 500px;
    float: left;
    background-color: #666;
    padding: 10px;
    box-sizing: border-box;
}

/* フッターを下部に設定し、浮動をクリアします */
footer {
    height: 120px;
    clear: both;
    background-color: #444;
    text-align: center;
    padding-top: 40px;
    font-size: 20px;
}

.clearfix::before, /* 高さを自動調整する親ボックスにはすべてclearfixクラスを追加します */
.clearfix::after {
  content: "";
  display: table;
}
.clearfix::after { /* 親ボックス内に子ボックスを追加し、浮動をクリアする目的は、指定された高さのない親ボックスを押し上げることです */
  clear: both;
}

位置レイアウト#

image.png

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>位置レイアウトの例</title>
    <style>
        body {
            margin: 0;
            padding: 0;
            height: 100vh;
        }

        .container {
            position: relative;
            height: 100%;
            background-color: #f0f0f0;
        }

        .box {
            position: absolute;
            width: 200px;
            height: 100px;
            background-color: #3498db;
            color: white;
            text-align: center;
            line-height: 100px;
        }

        /* 最初のボックスを位置設定:コンテナの左上隅から50px */
        .box1 {
            top: 50px;
            left: 50px;
        }

        /* 2番目のボックスを位置設定:コンテナの右下隅から50px */
        .box2 {
            bottom: 50px;
            right: 50px;
        }

        /* 3番目のボックスを位置設定:コンテナの中心 */
        .box3 {
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }
    </style>
</head>
<body>

<div class="container">
    <div class="box box1">ボックス 1</div>
    <div class="box box2">ボックス 2</div>
    <div class="box box3">ボックス 3</div>
</div>

</body>
</html>

マルチカラムレイアウト#

マルチカラムレイアウトの使用例、例えば横スクロールのページ(小説など)。

属性val説明
column-widthauto:デフォルト値、自動調整 長さ値:列幅を設定各列の列幅を定義
column-countauto :デフォルト値;1 列を表示 数値: 列数を設定列数を定義
columnscolumn-width と column-count の 2 つの属性を統合
column-gap列間の隙間を定義
column-rule column-rule-width column-rule-style column-rule-color列の境界線を定義 column-rule-width :境界線の幅を個別に設定 column-rule-style :境界線のスタイルを個別に設定 column-rule-color:境界線の色を個別に設定 column-rule :短縮形式
column-spannone :デフォルト値;列を跨がない all :列を跨ぐ列を跨ぐ大見出しを設定
column-fill
div {
  column-width: 200px;
  column-count: 4;
  column-gap: 100px;
  column-rule: 2px dashed gray;
  column-span: all;
}

div {
  columns: auto 4;
  column-gap: 100px;
  column-rule: 2px dashed gray;
  column-span: all;
}

Flex レイアウト#

属性説明
displayflex:コンテナボックスモデルをブロックレベルのフレキシブルボックスとして表示 inline-flex:コンテナボックスモデルをインラインレベルのフレキシブルボックスとして表示
flex-directionrow :左から右に配置 row-reverse :右から左に配置 column :上から下に配置 column-reverse:下から上に配置子要素の配置方向、すなわち主軸方向を設定
flex-wrapnowrap :デフォルト値;すべてを 1 行または 1 列に表示し、圧縮されます wrap :フレキシブルプロジェクトが収容できない場合、自動的に折り返します。圧縮されません wrap-reverse:フレキシブルプロジェクトが収容できない場合、自動的に折り返し、方向は wrap と反対です
flex-flow上記の 2 つの短縮形式
justify-contentflex-start :子要素を左揃え、要素間に隙間なし flex-end :子要素を右揃え、要素間に隙間なし center :子要素を中心に揃え、要素間に隙間なし space-between:均等に揃え、残りの空白幅を子要素間の間隔として使用し、両端に隙間なし space-around:均等に揃え、残りの空白幅を子要素間の間隔として使用し、両端に隙間あり space-evenly:均等に揃え、残りの空白幅を子要素間の間隔として使用し、両端に隙間があり、かつマージンが同じ大きさ主軸の整列方法(デフォルトは x 軸)
align-itemsflex-start :上部に揃える flex-end :下部に揃える center:中央に揃える baseline :フレキシブルプロジェクトが基準線に基づいて余分なスペースをクリアします stretch:デフォルト、子要素を引き伸ばして親ボックスの垂直スペースを埋めます。もちろん、前提として子要素に高さが設定されていないことが必要です交差軸の整列方法、1 行と親ボックスに高さがある場合にのみ有効
align-contentflex-start :子要素を上部に揃え、要素間に隙間なし flex-end :子要素を下部に揃え、要素間に隙間なし center :子要素を中心に揃え、要素間に隙間なし space-between:均等に揃え、残りの空白幅を子要素間の間隔として使用し、両端に隙間なし space-around:均等に揃え、残りの空白幅を子要素間の間隔として使用し、両端に隙間あり space-evenly:均等に揃え、残りの空白幅を子要素間の間隔として使用し、両端に隙間があり、かつマージンが同じ大きさ複数行の場合の交差軸の整列方法
align-selfflex-start :上部に揃える flex-end :下部に揃える center:中央に揃える baseline :フレキシブルプロジェクトが基準線に基づいて余分なスペースをクリアします stretch:デフォルト、子要素を引き伸ばして水平親ボックスのスペースを埋めます。もちろん、前提として子要素に高さが設定されていないことが必要です子ボックスのレイアウトを個別に制御
flex整数子要素の主軸上の幅の比率;主軸上のコントロール幅の自動調整を実現
orderフレキシブルプロジェクトの出現順序を制御
<div class="flex-container">
    <p>最初の段落</p>
    <p>2番目の段落</p>
    <p>3番目の段落</p>
</div>

.flex-container {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: space-around;
  /*align-content: ;*/
  align-items: center;
}

/*.flex-container {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-around;
  align-items: center;
  /*align-content: ;*/
}*/

/* 合計5つのスペースを占有し、出現順序231 */
p:nth-child(1) { /* コンテナスペースの1つを占有 */
    flex: 1; /* 主軸幅比1:3:1 */
    order: 2;
    align-self: center; /* 最初の子ボックスを中央に揃える */
}

p:nth-child(2) {
    flex: 3;
    order: 3;
}

p:nth-child(3) {
    flex: 1;
    order: 1;
}

!https://secure2.wostatic.cn/static/sHJpw9ixqsocGYebDGSnX9/image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>個人ホームページ</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="container">
        <header class="header">
            <h1>私の個人ホームページへようこそ</h1>
        </header>
        <nav class="navigation">
            <ul>
                <li><a href="#">ホーム</a></li>
                <li><a href="#">私について</a></li>
                <li><a href="#">私のプロジェクト</a></li>
                <li><a href="#">私に連絡する</a></li>
            </ul>
        </nav>
        <section class="main-content">
            <article class="bio">
                <h2>自己紹介</h2>
                <p>私はWeb開発者で、プログラミングと技術革新が大好きです。</p>
            </article>
            <article class="projects">
                <h2>私のプロジェクト</h2>
                <ul>
                    <li>プロジェクト1</li>
                    <li>プロジェクト2</li>
                    <li>プロジェクト3</li>
                </ul>
            </article>
            <article class="contact">
                <h2>連絡先</h2>
                <p>メール: [email protected]</p>
            </article>
        </section>
        <footer class="footer">
            <p>© 2024 私の個人ホームページ</p>
        </footer>
    </div>
</body>
</html>

style.css:

/* ページの基本スタイルを設定 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* コアコンテナ、flexboxを使用してレイアウト */
.container {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* ヘッダー */
.header {
    background-color: #4CAF50;
    color: white;
    padding: 20px;
    text-align: center;
}

/* ナビゲーションバー、水平に配置し、折り返し */
.navigation {
    display: flex;
    flex-flow: row wrap; /* 折り返しを許可 */
    justify-content: center; /* 中央に揃える */
    background-color: #333;
}

.navigation ul {
    list-style: none;
    display: flex;
    padding: 10px;
}

.navigation li {
    margin: 0 15px;
}

.navigation a {
    color: white;
    text-decoration: none;
}

/* メインコンテンツエリア、flexboxレイアウトを使用 */
.main-content {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; /* 子要素を均等に分布させる */
    padding: 20px;
    gap: 20px;
}

/* 自己紹介エリア */
.bio {
    flex: 1 1 300px; /* 伸縮可能なボックスを設定 */
    background-color: #f4f4f4;
    padding: 15px;
    border-radius: 8px;
}

.projects {
    flex: 2 1 400px; /* 柔軟な比率を設定 */
    background-color: #f9f9f9;
    padding: 15px;
    border-radius: 8px;
}

.contact {
    flex: 1 1 300px; /* 伸縮可能なボックスを設定 */
    background-color: #f4f4f4;
    padding: 15px;
    border-radius: 8px;
}

/* フッター */
.footer {
    background-color: #333;
    color: white;
    padding: 10px;
    text-align: center;
}

/* レイアウトの順序を調整 */
.projects {
    order: -1; /* 「私のプロジェクト」を「自己紹介」の前に配置 */
}

/* レスポンシブ調整 */
@media (max-width: 768px) {
    .navigation {
        flex-direction: column;
    }
    .main-content {
        flex-direction: column;
    }
}

Grid レイアウト#

継承されたスタイル属性#

親要素ボックス内(div)で属性を指定できます;子要素は継承されるため、子要素セレクタを指定する必要はありません;また、大多数の要素にはデフォルトスタイルがあり、スタイルをクリアする必要があるかもしれません。

属性説明css
color色値要素の前景色を設定1
opacity0 ~ 1要素の透明度を設定3
text-align要素をボックス内で水平に整列させるstart と end は CSS3 の新機能ですが、現在 IE と Opera はサポートしていない可能性があります。 left :左揃え・デフォルト right: 右揃え center : 中央揃え justify :内容を両端に揃える start :テキストを終了の境界に配置 end:テキストを終了の境界に配置1,3
// デフォルトスタイルをクリア
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

ボックススタイル#

属性説明css
vertical-align基準線に対する距離の長さ値 / パーセンテージボックスを垂直に整列させる
box-shadowhoffset :影の X 軸のオフセット voffset : 影の Y オフセット blur :(オプション) ぼかし半径;長さ値で、値が大きいほどボックスの境界がぼやけます。デフォルト値は 0 で、境界は明確です。 spread :(オプション) 拡散半径;長さ値で、正の値は影がボックスの各方向に拡大し、負の値は影が反対方向に縮小します。 color :(オプション) 影の色を設定します。省略すると、ブラウザが自動的に色を選択します。 inset:(オプション):デフォルトの外影で、内影にするにはこの値を inset に設定します。 複数値、空白で区切りますボックスの影、一般的にインタラクション応答スタイルに使用されます。これは調整が難しいため、直接小米や京東をコピーすることをお勧めします。3
outline-color外周の輪郭の色3
outline-offset輪郭が要素のボーダーの端からのオフセット量3
outline-style輪郭スタイル、border-style と一致3
outline-width輪郭の幅3
outline短縮形式3
cursorauto,default,none,context-menu,help,pointer,progress,wait,cell,crosshair,text,vertical-text,alias,copy,move,no-drop,not-allowed,e-resize,n-resize,ne-resize,nw-resize,s-resize,se-resize,sw-resize,w-resize,ew-resize,ns-resize,nesw-resize,nwse-resize,col-resize,row-resize,all-scrollボックス上のカーソルスタイル、左側の各々を試す1
div span {
  vertical-align: -200px;
  box-shadow: 5px 4px 10px 2px gray; /* 影 */
  /*box-shadow: 5px 4px 10px 2px gray inset;*/ /* 内部影 */
  outline: 10px double red; /* ボックスに輪郭を追加 */
  cursor: move;
}

フォントスタイル#

無題

body { font-size: 50px; } /* 親要素のフォントサイズを設定 */
@font-face { font-family: abc; src: url('BrushScriptStd.otf'); } /* サーバーが提供するabcフォントファイル */
body {
  font-style: ;
  font-weight: ;
  font-variant: ;
  font-size: smaller; /* 親要素のフォントサイズに対する相対サイズを設定 */
  font-family: 楷体, 微软雅黑, 宋体; /* 多くのブラウザシステムのフォントに互換性を持たせるために、いくつかのバックアップフォントを用意することがあります */
  /*font: italic bold normal smaller 楷体; /* 上記の順序で値を指定 */
  color: red;
  opacity: 0.5;
}

テキストスタイル#

属性名説明CSS バージョン
text-decorationテキストの下線none:下線なし underline:テキスト下線 overline:テキスト上線 line-through:取り消し線 blink:テキストを点滅させる・基本的にサポートされていない1
text-transform英文テキストの大文字小文字none :すでに変換された大文字小文字の値をデフォルト状態に戻す capitalize :英語の最初の文字を大文字にする uppercase :英語を大文字に変換 lowercase :英語を小文字に変換1
text-shadowテキストに影を追加4 つの値を記述します。例:5px 5px 3px black 最初の値:水平オフセット; 2 番目の値:垂直オフセット; 3 番目の値:影のぼかし度(オプション); 4 番目の値:影の色(オプション)3
text-alignテキストの整列方法を設定start と end は CSS3 の新機能ですが、現在 IE と Opera はサポートしていない可能性があります。 left :左揃え・デフォルト right: 右揃え center : 中央揃え justify :内容を両端に揃える start :テキストを終了の境界に配置 end:テキストを終了の境界に配置1,3
white-space空白の処理方法normal :デフォルト値、空白文字が圧縮され、テキストが自動的に改行されます。 nowrap :空白文字が圧縮され、テキストが改行されません。 pre :空白文字が保持され、改行文字に出会うと改行されます。 pre-line :空白文字が圧縮され、テキストが満杯になるか改行文字に出会うと改行されます。 pre-wrap:空白文字が保持され、テキストが満杯になるか改行文字に出会うと改行されます。1
letter-spacing文字間隔normal:デフォルトの間隔を設定 長さ値:例えば:"数字"+"px"1
word-spacing単語間隔normal :デフォルトの間隔 長さ値 :例えば:"数字"+"px"1
line-height行の高さ(行間隔)normal :デフォルトの間隔 長さ値 :例えば:"数字"+"px" 数値 :例えば:1,2.3 %:例えば:200%1
word-wrap長すぎる英単語を折り返すnormal :単語を折り返さない break-word:単語を折り返す3
text-indentテキストの最初の行のインデントnormal :デフォルトの間隔 長さ値 :例えば:"数字"+"px"1
vertical-alignsub : テキストの下付き文字を垂直に整列 super: テキストの上付き文字を垂直に整列テキストを垂直に整列させる
p {
  text-decoration: underline;
  text-transform: uppercase;
  text-shadow: 5px 5px 3px black;
  text-align: center;
  white-space: nowrap;
  letter-spacing: 4px;
  word-spacing: 14px;
  line-height: 200%;
  word-wrap: break-word;
  text-indent: 2rem;
  vertical-align: super;
}

行の高さを垂直に中央揃え#

行の高さ = ボックスの高さ

!https://secure2.wostatic.cn/static/xzYi7gmYsYLSrhRywU1mfQ/image.png

<div>中国人</div>
div {
  height: 40px;
  line-height: 40px;
}

ボーダースタイル#

ボーダースタイル border-style は必ず宣言する必要があります;他の 2 つの属性はオプションで、デフォルト値があります。

属性説明css
border-style border-top-style border-middle-style border-left-style border-right-stylenone dashed dotted double groove inset outset ridge solidボーダーなし 破線ボーダー 点線ボーダー 二重線ボーダー 槽線ボーダー 要素の内容に内嵌め効果を持たせるボーダー 要素の内容に外凸効果を持たせるボーダー 脊線ボーダー 実線ボーダー
border-width border-top-width border-middle-width border-left-width border-right-width長さ値 / パーセンテージ thin medium thickボーダーの幅を設定、オプションで、デフォルト値があります
border-color border-top-color border-middle-color border-left-color border-right-color色値ボーダーの色を設定、オプションで、デフォルト値があります
border-radius border-top-left-radius border-top-right-radius border-middle-left-radius border-middle-right-radius長さ値またはパーセンテージ4 つの辺の角の丸みを設定し、丸角コントロールを作成します;border-radius=50%で純粋な円形コントロールを作成します。 左上角 右上角 左下角 右下角3
border-image-source背景画像のアドレスを引き込む3
border-image-slice引き込んだ背景画像を切り取る3
border-image-widthボーダー画像の幅、上右下左の 4 つの値を設定できます。上下 / 左右の 2 つの値3
border-image-outsetボーダー背景を外側に拡張3
border-image-repeatstretch : 引き伸ばして埋める。デフォルト値 repeat:タイル状に埋める・画像が境界にぶつかると、超えた部分が切り取られます。 round :タイル状に埋める・ボーダーサイズに応じて画像サイズを動的に調整し、ボーダーを埋めます。 space:タイル状に埋める・ボーダーサイズに応じて画像間隔を動的に調整し、ボーダーを埋めます。ボーダー背景画像の配置方法3
border-image上記の 5 つの属性の短縮形式3
div { /* 特定の辺を設定するにはプレフィックスを追加するだけで済みます */
  border-width: 2px;
  border-style: solid;
  border-color: red;

  border-radius: 10px 20px 30px 40px;

  border-image-source: url(border.png);
  border-image-slice: 27; /* ちょうど4つの画像 */
  /*border-image-slice: 0 fill;*/
  border-image-width: 81px;
  border-image-outset: 20px;
  border-image-repeat: round;
}

div {
  border: 2px solid red;
  border-radius: 10px;
  /*border-top:*/
  /*border-middle:*/
  /*border-left:*/
  /*border-right:*/
  border-image: url(border.png) 27/27px round;
}

背景スタイル#

属性説明CSS バージョン
background-color色 transparent指定された色で背景色を設定 デフォルト値、透明色で背景色を設定1
background-imagenone urlブロック背景を一括設定し、その中の 1 つが不要な場合は、none で背景をキャンセルできます。 URL を介して背景画像を設定1/3
background-repeatrepeat-x repeat-y repeat no-repeat水平方向に画像をタイル状に配置 垂直方向に画像をタイル状に配置 水平および垂直方向に同時に画像をタイル状に配置 背景画像を 1 つだけ表示し、タイル状に配置しない1/3
background-attachmentscroll fixedデフォルト値、背景は要素に固定され、コンテンツと一緒にスクロールしません。 背景はウィンドウに固定され、コンテンツがスクロールすると背景は動きません。ウォーターマーク効果に使用できます。1/3
background-position長さ値 / パーセンテージ top left right bottom center長さ値を使用して画像の位置をオフセットします。 背景画像を要素の上部に配置します。3
background-size長さ値 / パーセンテージ auto cover containCSS の長さ値、例えば px、em デフォルト値、画像はこのサイズで表示されます。 比率を保ちながら画像をスケーリングし、画像がコンテナを少なくともカバーしますが、コンテナを超える可能性があります。 比率を保ちながら画像をスケーリングし、幅または高さのうち大きい方がコンテナの横または縦に重なるようにします。3
background-originborder-box padding-box content-box要素ボックス内に背景を描画します。 内側の余白ボックス内に背景を描画します。 内容ボックス内に背景を描画します。3
background-clipborder-box padding-box content-box要素ボックス内で背景をクリップします。 内側の余白ボックス内で背景をクリップします。 内容ボックス内で背景をクリップします。3
background背景画像の短縮形式1
div {
  background-color: silver;
  background-image: url(loading.gif);
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-position: top left; /* 20px 20px; */
  background-size: auto;
  background-origin: content-box;
  background-clip: padding-box;
}

div {
  width: 400px;
  height: 300px;
  border: 10px dashed red;
  padding: 50px;
  background: silver url(img.png) no-repeat scroll left top/100% border-box content-box;
}

テーブルスタイル#

属性説明バージョン
border - collapseseparate : デフォルト値、セルの境界が独立 collapse : 隣接するセルの境界が統合されます2
border - spacing長さ値隣接するセルの境界間の距離;border-collapse: separateの時に有効です。境界が独立していることが前提です2
caption - sidetop:デフォルト値、タイトルが上に配置されます bottom:タイトルが下に配置されますテーブルタイトルの位置2
empty - cellsshow :デフォルト値、境界を表示 hide :境界を表示しない空のセルが境界を表示するかどうか2
table - layoutauto :デフォルト値、内容が長すぎる場合、全体のセルを引き伸ばします。 fixed:内容が長すぎる場合、全体のセルを引き伸ばしませんテーブルのレイアウトスタイルを指定します2
vertical-alignbaseline : 内容オブジェクトを基準線に揃える top : middle : bottom:内の
セルは、HTML テキストタグの text-align 属性を使用して水平方向に整列できます;垂直整列は CSS スタイル属性 vertical-align を使用して実現できます。1
table {
  border-collapse: separate;
  border-spacing: 10px;
  caption-side: top;
  empty-cells: hide;
  table-layout: fixed;
  vertical-align: bottom;
}

リストスタイル#

属性説明CSS バージョン
list - style - typenone : マークなし disc : 実心円 circle : 空心円 square : 実心四角 decimal : アラビア数字 lower-roman : 小文字のローマ数字 upper-roman : 大文字のローマ数字 lower-alpha : 小文字の英字 upper-roman: 大文字の英字リスト項目の前のスタイル1/2
list - style - positionoutside :デフォルト値、マークが内容ボックスの外部にあります inside :マークが内容ボックスの内部にあります配列の相対位置1
list - style - imagenone : 画像を使用しない url: 画像を使用する画像をリストの前に配置1
list - style短縮属性リストの短縮形式1
ul {
  list-style-type: square;
  list-style-position: inside;
  /*list-style-image: url(bullet.png);*/
}

ul {
  list-style: lower-alpha inside url(bullet.png);
}

変形効果#

要素のインタラクションアニメーションを作成するために使用できます。例えば、マウスを上に置くと、要素が変形してフィードバックを返します。

2 次元変換#

属性値説明
transformtranslate (x,y):平行移動、y は省略可能で、垂直方向に移動しない translateX (x):要素を水平方向に移動 x translateY (y):要素を垂直方向に移動 ** y rotate (angle):時計回りに angle 度回転 scale (x,y):要素を水平方向に x の比率でスケーリングし、垂直方向に y の比率でスケーリングします。y を省略すると、y と x の比率が同じになります scaleX (x):要素を水平方向に x の比率でスケーリング scaleY (y):要素を垂直方向に y の比率でスケーリング skew (angleX angleY):要素を x 軸方向に angleX 度傾け、y 軸方向に angleY 度傾けます。angleY は省略可能で、y 軸方向に傾けないことを示します skewX (angleX):要素を x 軸方向に angleX 度傾けます。 skewY (angleY):要素を y 軸方向に angleY 度傾けます。 **matrix (a,b,c,d,e,f):**2D 変換の短縮形式**x y 値は長さ単位またはパーセンテージで指定できます; **angle の単位は通常 deg で、1 deg = 1 度 x y の値は数字で、デフォルト値は 1 です。1 より大きい場合は拡大し、1 より小さい場合は縮小します
div {
  transform: translate(20px,30px); /* 要素の水平方向と垂直方向のオフセットを設定 */
}

div {
  transform: rotate(45deg); /* 要素を時計回りに45度回転させます */
}

div {
  transform: scale(2,1); /* 要素を水平方向に2の比率でスケーリングし、垂直方向には1の比率でスケーリングします */
}

div {
  transform: skewX(30deg); /* 要素をx軸に沿って傾けます */
}

div {
  transform: matrix(a,b,c,d,e,f);
}

3 次元変換#

属性属性値説明
transformtranslate3d (x,y,z):3D 方式で要素を平行移動し、x、y、z 軸を設定 translateZ (z):3D 方式で要素を z 軸に沿って平行移動します。 scale3d (x,y,z):3D 方式で要素をスケーリングします。 scaleZ (z):3D 方式で要素を z 軸に沿ってスケーリングします。 rotate3d (x,y,z,a):3D 回転、a は角度を示し、xyz は 0 または 1 の間の数値です。 rotateX (a):3D 方式で要素を x、y、z 軸に沿って回転させます。 rotateY (a): rotateZ (a): perspective (長さ値):透視投影行列を設定します。 matrix3d (複数の値):定義された行列要素内で透視の値を設定する perspective (長さ値) ですが、親要素に設定するのとは若干異なります。親要素全体が透視として機能し、要素自身が透視として機能するため、異なる結果が得られます。
transform-styleflat : デフォルト値;すべての子要素が 2D 平面に表示されます。 preserve-3d: 子要素が 3D 空間に表示されます。
perspectivenone :デフォルト値;無限の角度から 3D オブジェクトを見ますが、見た目は平面です。 長さ値 :0 より大きい長さ単位を受け入れ、値はパーセンテージではありません。値が大きいほど、角度が遠くなり、物体が遠くに見えます。値が小さいほど、逆になります。見る位置を設定し、可視コンテンツを透視投影し、次に 2D 平面に投影します。透視が理解できない場合は、
perspective-originパーセンテージ値:要素の x 軸または y 軸の起点を指定します。長さ値:距離を指定します。 left:x 軸の位置を指定します center right top:y 軸の位置を指定します center bottom参照点
<div id="father">
    <img id="son" src="img.png" alt="" />
</div>

#father {
  transform-style: preserve-3d; /* 3D変換要素の親要素を設定します */
  perspective: 1000px; /* 見る距離の位置を設定し、通常は要
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。