ページデザインにおけるテーブルとdivの適切な適用についての簡単な説明

ページデザインにおけるテーブルとdivの適切な適用についての簡単な説明
この記事の冒頭で、以前書いた入門記事の間違いを訂正したいと思います。初心者を再び誤解させないように、まずはより公式な声明を引用したいと思います。

<!DOCTYPE> 宣言は、HTML5 ドキュメントの最初の行、<html> タグの前に配置する必要があります。このタグは、ドキュメントがどの HTML 仕様を使用しているかをブラウザに伝えます。

doctype 宣言は HTML タグではなく、ページの作成に使用するマークアップのバージョンをブラウザに指示する命令です。

ブラウザがどのようなタイプのドキュメントを期待するかを認識できるように、すべての HTML ドキュメントで doctype を指定することが非常に重要です。

HTML 4.01 は SGML に基づいているため、HTML 4.01 の doctype には DTD への参照が必要です。 HTML 5 は SGML に基づいていないため、DTD を参照する必要はありませんが、ブラウザーの動作を規制するために doctype が必要です (ブラウザーが適切に動作できるようにするため)。

HTML 4.01 では 3 つの異なるドキュメント タイプがありましたが、HTML 5 では 1 つのみになります。

<!DOCTYPE HTML>

ドキュメント タイプを宣言する HTML5 タグは下位互換性があるため、HTML で HTML5 タグを使用していない場合でも、この宣言方法を使用できます。ただし、ページにいくつかの非互換性が生じるため、実際の状況に基づいて修正する必要があります。 <!doctype html> を使用すると、ブラウザはタイプ dtd を指定せずにページを厳密モード (標準モード) でレンダリングできます。

今日のメイントピックであるテーブルとdivの適切な適用についてお話ししましょう。

テーブルは初期のページデザインで広く使用されていましたが、インターネットの発展とともに、テーブルは徐々に廃止されました。現在、インターネット上の少数の古いウェブサイト(変更する必要のない有名なものがたくさんあります)だけが、依然としてテーブルを使用してページをレイアウトしています。現在、新しいウェブサイトは基本的にdiv + cssを使用してページをレイアウトしていますが、Webフロントエンドに不慣れな多くの友人は、テーブルを使用するとページが検索エンジンに不親切になるという幻想を抱いているため、リストを設計するときに常にdtやulなどのタグを使用します。これにより、ページ スタイルの設計に多くの時間を費やすことになりますが、検索エンジン最適化に対する実際の効果は非常に弱くなります。

多数のテーブルを使用することの主なデメリットは、検索エンジンに優しくないこと、そしてプログラマーにとっても非常に不親切であることです。ネストされたテーブルが多数あると、人々は混乱してしまいます。しかし、div と一緒に使用すると効果が得られ、その効果は dt や ul よりも優れている可能性があります。

別の問題は、多くのテーブルがあなたのページのセマンティクスを非常に悪いものにします。ページレイアウトは、スタイルを書く際に非常に正式な化場であることがわかります。テーブルのスタイルに記載されているように見えますが、ナビゲーションパーツを見ると、ページのスタイルが分離されている場合、CSSファイルを削除することができないことがわかります。

そこで、提案があります。ページをデザインした後、CSS スタイルを追加せずにデフォルトのスタイル レイアウトを直接記述し、ページに応じて CSS カスタム スタイルを追加します。この方が効率的ではないでしょうか? ハハ、試したことはないですが、そう思うだけです。

セマンティクスについては多くのコンテンツがあるので、ここではあまり多くは語りません。セマンティクスを非常にわかりやすく紹介している「高品質なコードの書き方 - Webフロントエンド開発の実践法」という非常に優れた本をお勧めします。ページレイアウトは経験を積むプロセスです。良いウェブサイトを見ると、そのページレイアウトから学ぶことができます。悪いウェブサイトを見ると、それを最適化する方法についても考えることができ、ウェブフロントエンドの道をより速く進むことができます。

不完全な詳細がある場合は、修正してください。ありがとうございます。

<<:  MySQL 8.0 WITH クエリの詳細

>>:  Dockerイメージを構築する2つの方法

推薦する

MySQL で誤って削除したテーブル データを回復する方法 (必読)

バックアップがあれば、非常に簡単です。最新のバックアップ データを生成し、mysqlbinlog を...

この記事はJavaScriptの変数とデータ型を理解するのに役立ちます

目次序文:親切なヒント:変数1. 免責事項2. 譲渡3. 2つの小さな文法上の詳細変数の命名規則なぜ...

Nginx に lua-nginx-module モジュールをインストールする方法

ngx_lua_module は、lua パーサーを nginx に埋め込み、lua 言語で記述され...

HTMLのimgタグで画像の中心部分だけを表示する方法(3つの方法)

HTML の img タグで画像の中心を表示する方法は、現在 3 つあります。ここで記録しておきま...

システム エラー 1067 のため、MySQL 5.6 解凍バージョン サービスを開始できません

今日午後ずっと私を悩ませたバグを記録する半月前から始めましょう。それから.................

MySQL 8.0 の降順インデックス

序文インデックスが順序付けられていることは誰もが知っていると思いますが、MySQL の以前のバージョ...

Vue3 Vue イベント処理ガイド

目次1. 基本的なイベント処理2. 親コンポーネントにカスタムイベントを送信するマウス修飾子4. キ...

Nginx_geo モジュールを使用して CDN スケジュールを設定する方法

NginxのGeoモジュールの紹介geo ディレクティブは、ngx_http_geo_module ...

入力ボックスのプレースホルダーアニメーションと入力検証を実現する純粋なCSS

さらに興味深いコンテンツについては、https://github.com/abc-club/free...

MySQL テーブルとデータベース シャーディングのアプリケーション シナリオと設計方法

多くの友人がフォーラムやメッセージエリアで、どのような状況で MySQL をシャーディングする必要が...

MySQLでNULL値を判定する際の落とし穴事例

目次序文Mysql の case when 構文:事例実践:要約:序文今日、プログラムを開発している...

MySQLからデータをインポートする際の不正なフォーマット、インポートの遅延、データ損失などの問題を迅速に解決します。

遅い問題を完全に解決したい場合は、MySQL を MySQL 8.0 にアップグレードすることをお勧...

MySQL データベースの大文字と小文字の区別の問題

MySQL では、データベースはデータ ディレクトリ内のディレクトリに対応します。データベース内の各...