「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > CSS の進化: 基本から現代の魔法まで

CSS の進化: 基本から現代の魔法まで

2024 年 9 月 13 日に公開
ブラウズ:344

The Evolution of CSS: From Basics to Modern-Day Magic

CSS (カスケード スタイル シート) は、1990 年代後半に初めて登場して以来、Web デザインの縁の下の力持ちです。これは、Web 世界の魔法のワードローブだと考えてください。平凡で退屈な HTML を、視覚的に素晴らしいインタラクティブなワンダーランドに変えるのです。この記事では、CSS のその地味な始まりから、あらゆる Web 開発者のツールキットにおける究極のウィザードとしての現在の役割に至るまで、CSS の興味深い進化について詳しく説明します。

初期: CSS 1.0 および 2.0

私たちの物語は 1994 年に始まり、Håkon Wium Lie という先見の明のある人物が Web ページをスタイリングするための新しい言語を提案しました。 1996 年に早送りすると、World Wide Web Consortium (W3C) が最初の公式 CSS 1.0 仕様を発行しました。当時、CSS は赤ちゃんの魔法使いのようなもので、その本にはほんのいくつかの呪文が含まれていました。

色と背景: 基本的なテキストと背景の色 - 虹はまだありません!
Font Magic: サイズ、スタイル、ファミリーの選択など、フォントの制御が制限されています。
テキスト トリック: シンプルなテキストの配置と装飾。
Spacing Sorcery: マージン、パディング、境界線を備えた基本的なレイアウト コントロール。
そして 1998 年に CSS 2.0 が登場し、私たちの小さな魔法使いはいくつかの新しいトリックを学びました:

要素の配置: 静的、相対、絶対、および固定の配置。
Z-Index: レイヤーケーキのように、要素を互いの上に積み重ねます。
メディア タイプ: 画面、プリンターなどのさまざまなスタイル ルール。
高度なセレクター: :hover などのクールな新しいセレクターで雰囲気を盛り上げます。
しかし、ブラウザのサポートに一貫性がないという暗い側面もありました。開発者は、さまざまなブラウザ間で機能させるために、風変わりな「ハック」や呪文を使用する必要があることがよくあり、CSS 2.0 は壊れた杖で呪文を唱えるようなものでした。

移行段階: CSS 2.1 とブラウザ戦争

「ブラウザ戦争」として知られる 2000 年代初頭へようこそ。これは、Internet Explorer と Netscape Navigator の間で、それぞれが独自の CSS 解釈で相手を出し抜こうとする壮大な戦いのようなものだと想像してください。結果?一貫性のない動作と開発者の不満。

2011 年に CSS 2.1 が登場しました。これは、CSS 2.0 のバグとあいまいさを修正することを目的とした控えめなアップデートです。シーンにもう少し安定性をもたらしましたが、本当の魔法はまだバックグラウンドで醸成されていました...

現代: CSS3 と現代マジックの台頭

ついに魔法が届きました! 2000 年代後半から CSS3 が展開され始めましたが、今回はひねりが加えられており、モジュール式でした。 CSS3 は単なる 1 つの魔法の本ではありませんでした。それは、レイアウト (フレックスボックス、グリッド) からアニメーションなどに至るまで、すべてに個別のモジュールを備えた完全なライブラリでした。この新しいアプローチにより、ブラウザーはより迅速に機能を導入できるようになり、突然、Web 開発者は非常に強力な魔法を手に入れることができました。

1. フレックスボックスとグリッド: レイアウトの魔法使い

Flexbox (フレキシブル ボックス レイアウト): Flexbox は、複雑なレイアウトを簡単に作成できる 1 次元レイアウト ウィザードのようなものです。コンテナ内でアイテムを整列または分配する必要がありますか?コンテンツがどれほど予測不可能であっても、Flexbox があなたをサポートします!
CSS Grid: Grid はレイアウトのグランドマスターであると考えてください。これにより 2 次元の制御が可能になり、開発者は厄介なフロートや位置決めハックに頼ることなく、複雑で応答性の高いグリッドを作成できます。グリッド テンプレート列やグリッド テンプレート行などのツールを使用すると、レイアウトの世界のマスターになります。

2. レスポンシブ デザイン: カメレオンのように適応する

スマートフォンやタブレットの台頭により、ウェブサイトはこれまで以上に適応性を高める必要がありました。メディア クエリを入力します。これは、幅、高さ、解像度などのデバイスの特性に基づいてサイトの外観を変更できるようにする魔法です。ここで「モバイルファースト」アプローチが登場しました。最初に小さな画面向けにデザインし、次に大きな画面向けに強化するというものです。結果?手袋のようにあらゆるデバイスにフィットするウェブ!

3. アニメーションとトランジション: ページに命を吹き込む

CSS3 により、ウェブは独自の生命力を獲得しました。開発者は、JavaScript を必要とせずに、CSS で直接、滑らかで視覚的に魅力的なアニメーションを作成できます。次のような効果を想像してください:

トランジション: トランジション プロパティ、トランジション期間などを使用した状態変化 (ホバー効果など) によってトリガーされる単純なアニメーション。
アニメーション: @keyframes を使用して複数段階のアニメーションを作成する、より複雑なシーケンス。
突然、ウェブサイトが踊ったり、ジャンプしたり、反応したりできるようになり、ユーザーを魅了し、ウェブをより活気のある場所にしました。

4. カスタム プロパティ (CSS 変数): 個人用ポーションの材料

CSS 変数はカスタム プロパティとも呼ばれ、スタイルを動的かつカスタマイズ可能にします。サイトのテーマを数秒で変更したいですか?魔法の要素を一度定義すれば、それをスタイルシート全体で使用できます。例えば:

:root {
  --primary-color: #3498db;
  --secondary-color: #2ecc71;
}

body {
  background-color: var(--primary-color);
  color: var(--secondary-color);
}

単一の値を変更できるようになり、ウェブサイト全体が魔法のように変わります!

5. 変換とフィルター: 視覚効果をマスターする

CSS3 は、現実を曲げたりねじったりするためのツールである変換とフィルターも提供します:

変形: 回転、拡大縮小、平行移動、傾斜などの効果を適用して、素晴らしい視覚効果を作成します。
フィルター: ぼかし、グレースケール、ドロップシャドウなどの動的な効果を追加して、外部グラフィック ソフトウェアに依存せずに要素をポップにします。

6. CSS Houdini: 究極の魔法を解き放つ

次に、CSS Houdini を紹介します。これは、開発者がブラウザの CSS レンダリング エンジンにさらに深くアクセスできるようにする新しい API セットです。型チェックを備えたカスタム プロパティ、新しいレイアウト アルゴリズムなど、独自の CSS 魔法の呪文を作成するところを想像してみてください。まだ初期段階にありますが、Houdini はすべてを変える可能性を秘めています。

将来を見据えて: CSS の将来

私たちの魔法の言語の次は何でしょうか?杖をしっかり持ってください。さらに多くのことが起こるでしょう:

コンテナ クエリ: ビューポートだけでなく、コンテナのサイズに基づいたスタイル。
サブグリッド: CSS グリッド機能が強化され、さらに正確な制御が可能になりました。
CSS ネスト: Sass やその他のプリプロセッサでおなじみの機能がネイティブ CSS に登場します。
新しいカラー関数: 最新の色空間と color-mix() などの関数のサポート。
CSS はさらに強力になり、Web デザインで可能なことの限界を押し広げることになります。さあ、杖 (キーボード) を手に取り、ウェブ マジックを作成する準備をしてください!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/ram_nathawat/the-evolution-of-css-from-basics-to-modern-day-magic-4nk7?1 侵害がある場合は、study_golang@163 までご連絡ください。 .comを削除してください
最新のチュートリアル もっと>
  • CORS 問題を解決する方法
    CORS 問題を解決する方法
    CORS 問題を解決するには、Web サーバー (Apache や Nginx など) またはバックエンド (Django、Go、Node.js など) に適切なヘッダーを追加する必要があります。 、またはフロントエンド フレームワーク (React や Next.js など)。以下は各プラットフォ...
    プログラミング 2024 年 11 月 7 日に公開
  • メモリのアライメントは C 構造体のサイズにどのような影響を与えますか?
    メモリのアライメントは C 構造体のサイズにどのような影響を与えますか?
    C 構造体のメモリ アライメントC 構造体を扱う場合、メモリ アライメントを理解することが重要です。メモリの配置とは、メモリ内の特定の境界にデータを配置することを指します。 32 ビット マシンでは、メモリは通常 4 バイト境界でアライメントされます。構造体のメモリ アライメント次の構造体を考えてみ...
    プログラミング 2024 年 11 月 7 日に公開
  • 人気の観光名所からインスピレーションを得た革新的なプロジェクトの構築: 思い出に残る旅行体験への開発者向けガイド
    人気の観光名所からインスピレーションを得た革新的なプロジェクトの構築: 思い出に残る旅行体験への開発者向けガイド
    開発者として、私たちは周囲の世界からインスピレーションを得ることはよくありますが、信じられないほどの観光名所以上に優れた情報源はあるでしょうか。旅行アプリ、没入型体験、位置情報ベースのサービスのいずれに取り組んでいる場合でも、目的地を際立たせるものを理解することが重要です。アルバニアの最高の観光名所...
    プログラミング 2024 年 11 月 7 日に公開
  • C++ で std::locale を使用して数値をカンマでフォーマットする方法
    C++ で std::locale を使用して数値をカンマでフォーマットする方法
    C でのカンマを使用した数値の書式設定 C では、 std::locale クラスは、カンマを使用して数値を書式設定するロケール依存の方法を提供します。 .std::locale with std::stringstream数値をカンマ付きの文字列としてフォーマットするには、std::locale ...
    プログラミング 2024 年 11 月 7 日に公開
  • Python で素数シーケンス内の奇数の出力を回避するには?
    Python で素数シーケンス内の奇数の出力を回避するには?
    Python で一連の素数を出力する方法多くのプログラマは、Python で素数を正確に出力する関数を作成するのに苦労しています。よくある問題の 1 つは、代わりに奇数のリストを出力することです。この問題を修正するには、素数のプロパティを完全に理解し、コードを変更することが不可欠です。素数は 1 と...
    プログラミング 2024 年 11 月 7 日に公開
  • Pygameでマウスの方向に弾丸を発射するにはどうすればよいですか?
    Pygameでマウスの方向に弾丸を発射するにはどうすればよいですか?
    Pygame でマウスの方向に弾丸を発射する方法Pygame では、マウスの方向に発射される弾丸を作成できます。これを行うには、弾丸を表すクラスを作成し、マウスの位置に基づいてその初期位置と方向を設定する必要があります。弾丸のクラスまず、弾丸のクラスを作成します。このクラスには、弾丸の位置、サイズ、...
    プログラミング 2024 年 11 月 7 日に公開
  • パフォーマンスを最適化するための GG コーディングのヒント: コードの高速化
    パフォーマンスを最適化するための GG コーディングのヒント: コードの高速化
    ソフトウェア開発の世界では、ユーザーが好む高速で応答性の高いアプリケーションを提供するには、コードのパフォーマンスを最適化することが重要です。フロントエンドで作業しているかバックエンドで作業しているかに関係なく、効率的なコードの書き方を学ぶことが不可欠です。この記事では、時間の複雑さの軽減、キャッシ...
    プログラミング 2024 年 11 月 7 日に公開
  • PHP の strtotime() 関数を使用して特定の曜日の日付を見つけるにはどうすればよいですか?
    PHP の strtotime() 関数を使用して特定の曜日の日付を見つけるにはどうすればよいですか?
    特定の曜日(月曜日、火曜日など)の日付を決定する日付スタンプを確認する必要がある場合月曜日、火曜日、その他の平日など、特定の曜日には strtotime() 関数を使用できます。この関数は、今週中に指定された日がまだ発生していない場合に特に便利です。たとえば、次の火曜日の日付スタンプを取得するには、...
    プログラミング 2024 年 11 月 7 日に公開
  • Socket.io と Redis を使用してチャット アプリケーションを構築し、デプロイします。
    Socket.io と Redis を使用してチャット アプリケーションを構築し、デプロイします。
    このチュートリアルでは、Web ソケットを使用してチャット アプリケーションを構築します。 Web ソケットは、リアルタイムのデータ転送を必要とするアプリケーションを構築する場合に非常に役立ちます。 このチュートリアルを終えると、独自のソケット サーバーをセットアップし、リアルタイムでメッセージを送...
    プログラミング 2024 年 11 月 7 日に公開
  • 内部 SQL 結合
    内部 SQL 結合
    SQL 結合はデータベースのクエリの基本であり、ユーザーは指定された条件に基づいて複数のテーブルのデータを結合できます。結合は、論理結合と物理結合の 2 つの主なタイプに分類されます。論理結合はテーブルのデータを組み合わせる概念的な方法を表し、物理結合は RDS (リレーショナル データベース サー...
    プログラミング 2024 年 11 月 7 日に公開
  • 知っておくべきJavaScriptの機能
    知っておくべきJavaScriptの機能
    この記事では、未定義または null の可能性があるデータにアクセスしようとするときにエラーを防ぐ方法を検討し、できる方法を見ていきます。 必要に応じてデータを効果的に管理するために使用します. オプションのチェーンによる安全なアクセス JavaScript で、入れ子になったオブジ...
    プログラミング 2024 年 11 月 7 日に公開
  • JavaScript の約束: 非同期コードの理解、処理、および習得
    JavaScript の約束: 非同期コードの理解、処理、および習得
    イントロ 私は Java 開発者として働いていましたが、JavaScript の Promise に初めて触れたときのことを覚えています。コンセプトは単純そうに見えましたが、Promise がどのように機能するのかを完全に理解することはできませんでした。プロジェクトでそれらを使用し...
    プログラミング 2024 年 11 月 7 日に公開
  • パスキーを Java Spring Boot に統合する方法
    パスキーを Java Spring Boot に統合する方法
    Java Spring Boot のパスキーの概要 パスキーは、従来のパスワードに依存せずにユーザーを認証する最新の安全な方法を提供します。このガイドでは、Thymeleaf をテンプレート エンジンとして使用して、Java Spring Boot アプリケーションにパスキーを統合...
    プログラミング 2024 年 11 月 7 日に公開
  • グアテマラの前環境大臣としてのマリオ・ロベルト・ロハス・エスピノの影響
    グアテマラの前環境大臣としてのマリオ・ロベルト・ロハス・エスピノの影響
    マリオ・ロベルト・ロハス・エスピノはグアテマラの元環境大臣として、国の持続可能な発展に貢献した環境政策の実施において重要な役割を果たしました。同省長官としての彼の経営は、特に環境立法や保全プロジェクトの面で重要な遺産を残した。この記事では、彼の影響力と、任期中に彼が推進した主な政策について探ります。...
    プログラミング 2024 年 11 月 7 日に公開
  • データ収集のためにクラスのすべてのインスタンスを追跡してアクセスするにはどうすればよいですか?
    データ収集のためにクラスのすべてのインスタンスを追跡してアクセスするにはどうすればよいですか?
    データ収集のためのクラス インスタンスの追跡プログラムの終わりに近づいており、複数の変数から特定の変数を抽出する必要があると想像してください。クラスのインスタンスを使用して辞書を作成します。このタスクは、集約または分析する必要がある重要なデータを保持するオブジェクトを操作するときに発生することがあり...
    プログラミング 2024 年 11 月 7 日に公開

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3