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

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

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

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

  1. 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;
}

aside {
    width: 20%;
    height: 500px;
    float: left;
    background-color: #555;
    padding: 10px;
    box-sizing: border-box;
}

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-itmes: center;
}

/*.flex-container {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-around;
  align-itmes: 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: 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 が省略されると x と y が同じスケール比になります 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 (複数の値):行列を定義要素内で透視の値を設定するが、親要素に設定するのとは異なる。親要素全体が透視として機能し、要素自身が透視として機能するため、異なる結果になる。
transform-styleflat : デフォルト値;すべての子要素が 2D 平面で表示されます preserve-3d: 子要素が 3D 空間で表示されます
perspectivenone :デフォルト値;無限の角度から 3D オブジェクトを見るが、見た目は平面です 長さの値 :0 より大きい長さの単位を受け入れ、パーセンテージは不可。値が大きいほど、角度が遠くなり、物体が遠くに見えます。値が小さいほど、逆になります。見る位置を設定し、可視内容を透視錐体にマッピングし、それを 2D 平面に投影します;透視を理解するのは難しい。
perspective-originパーセンテージ値:要素の x 軸または y 軸の起点を指定 長さの値:距離を指定 left:x 軸の位置を指定 center right top:y 軸の位置を指定 center bottom参照点
<div id="fathe">
    <img id="son" src="img.png" alt="" />
</div>

#father {
  transform-style: preserve-3d; /* 3D変換要素の親要素を設定 */
  perspective: 1000px; /* 見る位置を設定し、通常は要素の親要素に設定します。次に、後の機能属性と変形設定を組み合わせることで、効果を確認できます。 */
}

#son {
  transform: translate3d(300px,100px,240px);
  transform: scale3d(1,1,1.5) rotateX(45deg);
  transform: rotate3d(1,0,0,45deg);
  /* transform: perspective(1000px) rotateY(45deg); */
  perspective-origin: top right; /* 右上に設定 */
}

遷移効果#

遷移スタイル属性スタイルタイプ
background-colorcolor (色)
background-imageonly gradients (グラデーション)
background-positionpercentage, length (パーセン
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。