CSS3 タイムラインアニメーション

CSS3 タイムラインアニメーション

成果を達成する

html

<h2>CSS3 タイムライン</h2>
<p>水平バージョンを表示するには、$vertical 変数を false に設定してください。</p>
<ul id='タイムライン'>
  <li class='仕事'>
    <input class='radio' id='work5' name='works' type='radio' チェック済み>
    <div class="相対">
      <label for='work5'>Lorem ipsum dolor sit amet</label>
      <span class='date'>2013 年 5 月 12 日</span>
      <span class='circle'></span>
    </div>
    <div クラス = 'コンテンツ'>
      <p>
        私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。
      </p>
    </div>
  </li>
  <li class='仕事'>
    <input class='radio' id='work4' name='works' type='radio'>
    <div class="相対">
      <label for='work4'>Lorem ipsum dolor sit amet</label>
      <span class='date'>2013 年 5 月 11 日</span>
      <span class='circle'></span>
    </div>
    <div クラス = 'コンテンツ'>
      <p>
        私は忍耐のない男ですが、彼が全く忍耐のない男であることも知っています! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です!
      </p>
    </div>
  </li>
  <li class='仕事'>
    <input class='radio' id='work3' name='works' type='radio'>
    <div class="相対">
      <label for='work3'>Lorem ipsum dolor sit amet</label>
      <span class='date'>2013 年 5 月 10 日</span>
      <span class='circle'></span>
    </div>
    <div クラス = 'コンテンツ'>
      <p>
        私は忍耐のない男ですが、彼が全く忍耐のない男であることも知っています! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です! 私は全く忍耐のない男です!
      </p>
    </div>
  </li>
  <li class='仕事'>
    <input class='radio' id='work2' name='works' type='radio'>
    <div class="相対">
      <label for='work2'>Lorem ipsum dolor sit amet</label>
      <span class='date'>2013 年 5 月 9 日</span>
      <span class='circle'></span>
    </div>
    <div クラス = 'コンテンツ'>
      <p>
        私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。
      </p>
    </div>
  </li>
  <li class='仕事'>
    <input class='radio' id='work1' name='works' type='radio'>
    <div class="相対">
      <label for='work1'>Lorem ipsum dolor sit amet</label>
      <span class='date'>2013 年 5 月 8 日</span>
      <span class='circle'></span>
    </div>
    <div クラス = 'コンテンツ'>
      <p>
        私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。私は忍耐のない男だが、忍耐のない男だ。
      </p>
    </div>
  </li>
</ul>

CS

/* -------------------------------------
 * 横向きの場合は、
 * $vertical変数をfalseにする
 * ------------------------------------- */
/* -------------------------------------
 * 一般的なスタイル
 * ------------------------------------- */
url をインポートします(https://fonts.googleapis.com/css?family=Noto+Sans);
体 {
  最大幅: 1200px;
  マージン: 0 自動;
  パディング: 0 5%;
  フォントサイズ: 100%;
  フォントファミリ: "Noto Sans"、サンセリフ;
  色: #eee9dc;
  背景: #48b379;
}

h2 {
  マージン: 3em 0 0 0;
  フォントサイズ: 1.5em;
  文字間隔: 2px;
  テキスト変換:大文字;
}

/* -------------------------------------
 * タイムライン
 * ------------------------------------- */
#タイムライン {
  リストスタイル: なし;
  マージン: 50px 0 30px 120px;
  左パディング: 30px;
  左境界線: 8px 実線 #eee9dc;
}
#タイムライン li {
  マージン: 40px 0;
  位置: 相対的;
}
#タイムライン p {
  マージン: 0 0 15px;
}

。日付 {
  上マージン: -10px;
  上位: 50%;
  左: -158px;
  フォントサイズ: 0.95em;
  行の高さ: 20px;
  位置: 絶対;
}

。丸 {
  上マージン: -10px;
  上位: 50%;
  左: -44px;
  幅: 10px;
  高さ: 10px;
  背景: #48b379;
  境界線: 5px 実線 #eee9dc;
  境界線の半径: 50%;
  表示: ブロック;
  位置: 絶対;
}

。コンテンツ {
  最大高さ: 20px;
  パディング: 50px 20px 0;
  境界線の色: 透明;
  境界線の幅: 2px;
  境界線のスタイル: solid;
  境界線の半径: 0.5em;
  位置: 相対的;
}
.content:before、.content:after {
  コンテンツ: "";
  幅: 0;
  高さ: 0;
  境界線: 透明な実線;
  位置: 絶対;
  ポインタイベント: なし;
  右: 100%;
}
.content:before {
  右境界線の色: 継承;
  境界線の幅: 20px;
  上位: 50%;
  上マージン: -20px;
}
.content:after {
  右境界線の色: #48b379;
  境界線の幅: 17px;
  上位: 50%;
  上マージン: -17px;
}
.content p {
  最大高さ: 0;
  色: 透明;
  テキスト配置: 両端揃え;
  単語区切り: 単語区切り;
  ハイフン: 自動;
  オーバーフロー: 非表示;
}

ラベル {
  フォントサイズ: 1.3em;
  位置: 絶対;
  zインデックス: 100;
  カーソル: ポインタ;
  上: 20px;
  遷移: 0.2 秒の線形変換。
}

.ラジオ{
  表示: なし;
}

.radio:checked + .relative ラベル {
  カーソル: 自動;
  変換: translateX(42px);
}
.radio:checked + .relative .circle {
  背景: #f98262;
}
.radio:checked ~ .content {
  最大高さ: 180px;
  境界線の色: #eee9dc;
  右マージン: 20px;
  変換: translateX(20px);
  遷移: max-height 0.4 秒線形、border-color 0.5 秒線形、transform 0.2 秒線形。
}
.radio:checked ~ .content p {
  最大高さ: 200px;
  色: #eee9dc;
  遷移: カラー 0.3 秒、線形 0.3 秒。
}

/* -------------------------------------
 * 携帯電話(縦型のみ)
 * ------------------------------------- */
@media スクリーンと (最大幅: 767px) {
  #タイムライン {
    左マージン: 0;
    左パディング: 0;
    左境界線: なし;
  }
  #タイムライン li {
    マージン: 50px 0;
  }

  ラベル {
    幅: 85%;
    フォントサイズ: 1.1em;
    空白: ラップなし;
    テキストオーバーフロー: 省略記号;
    オーバーフロー: 非表示;
    表示: ブロック;
    変換: translateX(18px);
  }

  。コンテンツ {
    パディング上部: 45px;
    境界線の色: #eee9dc;
  }
  .content:before、.content:after {
    境界線: 透明な実線;
    下部: 100%;
  }
  .content:before {
    境界線の下部の色: 継承;
    境界線の幅: 17px;
    上: -16px;
    左: 50px;
    左マージン: -17px;
  }
  .content:after {
    境界線下部の色: #48b379;
    境界線の幅: 20px;
    上: -20px;
    左: 50px;
    左マージン: -20px;
  }
  .content p {
    フォントサイズ: 0.9em;
    行の高さ: 1.4;
  }

  .circle、.date {
    表示: なし;
  }
}

以上がCSS3でタイムラインアニメーションを実装する方法の詳細です。CSS3タイムラインの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

<<:  Linuxにおけるumaskコマンドの使用原理と計算方法の詳しい解説

>>:  Vue はカスタム「モーダル ポップアップ ウィンドウ」コンポーネントのサンプル コードを実装します

推薦する

JavaScript を使用して userAgent を通じていくつかの一般的なブラウザを判別する方法

序文通常、h5 ページを作成するときは、WeChat、QQ、Weibo などのエコシステム内でトラフ...

CSS オーバーフローラップの新しいプロパティ値をどこでも使用

1.まず、overflow-wrap属性を理解する CSS のoverflow-wrapプロパティは...

MySQLデータベースインデックスの左端一致原則

目次1. 共同インデックスの説明2. ac はインデックスを使用できますか? 3. 考える4. 最左...

Portainer を使用して Docker のビジュアル インターフェースを構築する方法

ポーテナーの紹介Portainer は、ステータス表示パネル、アプリケーション テンプレートの迅速な...

Windows 10 と MySQL 5.5 のインストールとインストールなしの使用の詳細なチュートリアル (画像とテキスト)

この記事では、Windows 10環境でのMySQL 5.5のインストールと使用方法を紹介します。リ...

フォーム入力ボックスに関するWebデザインのヒント

1. キャンセル ボタンが押されたときの破線ボックス<br /> 入力に属性値 hide...

スライド効果を実現するためのネイティブJavaScript

ページ、特にホームページを作成するときは、通常、Web サイト全体の他のメイン ページにリンクできる...

ウェブサイトのデザインでは色の階層感覚に注意を払う必要があります

最近、私はデザインには階層感覚が必要だと言っています。この階層感覚には、色の重ね合わせや要素の重ね合...

Nginx 仮想ホストを構成する 3 つの方法 (ドメイン名に基づく)

Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮...

div間のギャップの解決策

HTMLのdivブロックを使用していて、ブロックの中央をしっかりと接続できず、解決できない場合1. ...

テキストエリアの使用に関する注意事項

なぜテキストエリアについて具体的に言及するのでしょうか?なぜなら、textarea ノードは実際には...

Linuxで同一ファイルを見つける方法

コンピュータを使用すると、システム内に大量のゴミが生成されます。最も一般的なケースは、同じファイルが...

HTML フォームを送信するいくつかの方法_PowerNode Java Academy

方法1: 送信ボタンから送信する <!DOCTYPE html> <html>...

Linux でコマンドまたはプロセスの実行時間を調べる方法

Unix ライクなシステムでは、コマンドまたはプロセスの実行がいつ開始されたか、またプロセスがどのく...

Linux で開いているファイルが多すぎる問題を解決する方法

原因は、プロセスが特定の時点でシステム制限を超える数のファイルと通信リンクを開くことです。 システム...