HTML/CSS の基礎 - HTML コード記述におけるいくつかの注意事項 (必読)

HTML/CSS の基礎 - HTML コード記述におけるいくつかの注意事項 (必読)

この記事の警告事項は、ブラウザの互換性とはまったく関係ありません。主に、プロジェクトで遭遇したいくつかの小さな問題の要約です。問題は小さいものですが、時には非常に厄介なこともあります。ここで記録し、後でそのような問題が発生した場合には、ここに追加していきます。

1. インラインタグ間のスペース

通常、HTMLコードを書くときには、改行やインデントなどの習慣があります。

XML/HTML コードコンテンツをクリップボードにコピー
  1. <ヘッド>   
  2.      <メタ 文字セット= "utf-8" >   
  3.      <スタイル>   
  4. html、body、div、dl、dt、dd、ul、ol、li、h1、h2、h3、h4、h5、h6、pre、code、form、fieldset、legend、input、button、textarea、p、blockquote、th、td{
  5. マージン: 0;
  6. パディング:0;
  7. }
  8. #私のDIV {
  9. 幅: 200ピクセル;
  10. 高さ: 200px;
  11. 背景色: #ff0;
  12. }
  13. #myDIV > div{
  14. 幅: 50px;
  15. 高さ: 50px;
  16. 表示: インラインブロック;
  17. 背景色: #f00;
  18. }
  19.      </スタイル>   
  20.   
  21.    </ヘッド>   
  22.    <本文>   
  23.      < div   id = "myDIV" >   
  24.        <div> div1 </div>   
  25.        <div> div2 </div>   
  26.      </div>   
  27.    </本文>   

表示効果は

真ん中に空白があります。その理由は、2 つのインライン タグの間に連続したスペース、復帰、または改行がある場合 (または display: inline または inline-block が設定されている場合)、これらの記号はデフォルトでスペース記号として扱われるためです。

たとえば、2 つの div タグの間に「ddd dd d」を追加すると、効果は次のようになります。連続する空白文字がいくつあっても、最終的な効果は 1 つのスペース文字のみになります。

これは、インライン要素に文字を直接書き込むのに似ています。

ただし、インライン要素では先頭と末尾の空白が削除されます

したがって、注意すべき点は次のとおりです。

インライン要素を配置するときに、タグ間の空白を避ける必要がある場合は、タグを近づけておく必要があります。

インライン要素のコンテンツを入力するときは、.innerText または .textContent を使用するようにしてください (Firefox は innerText をサポートしていませんが、このプロパティはサポートしています)。

HTML コード内に空白を記述する必要がある場合は、HTML のスペース表現方法を使用してください。

この時点で、インライン要素について誤解している人もいると思います。いわゆるインラインは、いわゆる「ブロック」の反対です。インライン要素はブロックを形成しません。障害物の周りを流れる水のように感じられます。例えばソースコード

XML/HTML コードコンテンツをクリップボードにコピー
  1. < div   id = "myDIV" >   
  2.        < div > div1 </ div > ddd dd d < div > div2 </ div >   
  3.        < span > d dd d </ span >   
  4.      </div>   

表示効果

span 内のコンテンツは 2 つのセクションに分割されており、完全なブロックではなくなりました。

2. bodyタグのデフォルトの余白境界

これについては何も言うことはありません。最新のブラウザ (CSS3 をサポート) と IE8 には、デフォルトの CSS スタイル マージン (本体に 8px) があります。他のタグも同様なので、ここでは例は挙げません。多くの場合、これは必要なく、一般的なプロジェクト スタイルの開始時に同様の設定が必要になります。

XML/HTML コードコンテンツをクリップボードにコピー
  1. html、body、div、dl、dt、dd、ul、ol、li、h1、h2、h3、h4、h5、h6、pre、code、form、fieldset、legend、input、button、textarea、p、blockquote、th、td{
  2. マージン: 0;
  3. パディング:0;
  4. }

3. 特殊な空白文字により表示異常が発生する

例えば、次のソースコードには問題はないようです

XML/HTML コードコンテンツをクリップボードにコピー
  1. <!DOCTYPE html >   
  2. <html>   
  3.    <ヘッド>   
  4.      <メタ 文字セット= "utf-8" >   
  5.      <スタイル>   
  6. html、body、div、dl、dt、dd、ul、ol、li、h1、h2、h3、h4、h5、h6、pre、code、form、fieldset、legend、input、button、textarea、p、blockquote、th、td{
  7. マージン: 0;
  8. パディング:0;
  9. }
  10. *{
  11. -webkit-box-sizing: 境界線ボックス;
  12. -moz-box-sizing: 境界線ボックス;
  13. ボックスのサイズ: 境界線ボックス;
  14. }
  15. #私のDIV {
  16. 幅: 200ピクセル;
  17. 高さ: 40px;
  18. 背景色: #ff0;
  19. }
  20. #myDIV{
  21. フロート: 左;
  22. 幅: 200ピクセル;
  23. 背景色: #f00;
  24. }
  25.      </スタイル>   
  26.   
  27.    </ヘッド>   
  28.    <本文>   
  29.      < div  クラス= "タブ可能"   id = "タブ"  スタイル= "border:none;" >   
  30.        <!-- ページタグリスト -->   
  31.        < div   id = "myDIV"  スタイル= "" >   
  32.        <  データトグル= "タブ"   href = "#タブコンテンツ0"   >テスト0 </ a >   
  33.        </div>   
  34.      </div>   
  35.    </本文>   
  36. </html>   

実際には、aタグの前に異常な空白文字があり、表示効果は次のようになります。

a の幅と #myDIV の幅は同じであるはずなのに、a はフローティングになっているのに、表示効果がラップされています。これはあまりにもクレイジーですよね。

通常の表示効果は

この異常な空白が何なのか見てみましょう。

最初のものは異常なスペースであり、そのURIコンポーネントは「%E3%80%80」としてエンコードされます。

2番目は通常のスペースで、URIコンポーネントは「%20」としてエンコードされます。

3 番目は通常の Tab キーで、URI コンポーネントは「%20%20%20%20」としてエンコードされます。これは実際には 4 つのスペースです。

見えますよ。そのため、ウェブサイトにコピーされたコードの実行に異常が生じるのは、この理由による場合もあります。

続く。あとで他の点が思いついたら追加します。また、関連する点をいくつか挙げていただければ、必ず追加させていただきます。

上記記事「HTML/CSS 基礎 - HTML コード作成プロセスにおけるいくつかの注意点 (必読)」は、編集者が皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

オリジナル URL: http://www.cnblogs.com/chuaWeb/p/5053644.html

<<:  LinuxでIPアドレスが表示されない問題の解決方法

>>:  有名ウェブサイトのロゴにおすすめのフォント40選

推薦する

Vueバスの簡単な使い方

Vueバスの簡単な使い方シナリオの説明:コンポーネント A にはコンポーネント B と C が含まれ...

Centos7.4 サーバーへの Apache のインストールとインストール プロセス中に発生した問題の解決策

この記事では、CentOS 7.4 サーバーに Apache をインストールする方法と、インストール...

CSS3 のボックス サイズ設定 (コンテンツ ボックスとボーダー ボックス) の詳細な説明

CSS3 のボックス サイズ設定 (content-box と border-box) CSS3 の...

WeChatアプレットがSMSログインを実装

目次1. インターフェース効果のプレビュー2.uViewのインストール3.uViewの設定3.1 m...

VUE 応答性原理の詳細な説明

目次1. 応答原理の基盤2. コアオブジェクト: Dep と Watcher 3. 依存関係を収集し...

MySQLは2つの日付間の日数、月数、年数を計算します

MySQL 組み込みの日付関数 TIMESTAMPDIFF は、2 つの日付間の秒数、分数、時間数、...

Jupyter Notebook で JavaScript を実行する方法

その後、VSC で Jupyter Notebook を使用する方法も追加しました...アナコンダを...

MySQL Strict Modeの知識ポイントの詳細な説明

I. 厳密モードの説明MySQL 5.0 以降の厳密モード (STRICT_TRANS_TABLES...

Alibaba Cloud イメージリポジトリを使用して外部 Docker イメージを構築する方法の詳細な説明

Alibaba Cloud Image Repositoryを使用して外部イメージをダウンロードする...

CSS3で実装されたスライドメニュー

結果:実装コード: <!DOCTYPE html><html class=&quo...

1つのSQL文でMySQLの重複排除が完了し、1つが保持されます。

数日前、ある要件に取り組んでいたとき、MySQL で重複レコードをクリーンアップする必要がありました...

Docker コンテナで ASP.NET Core を実行する手順

最近は学ぶべき知識が多すぎて、どれを先に学べばいいのかわかりません。このブログはもともとxamari...

純粋なCSSを使用してスイッチ効果を実現する

まずアイデアはこの効果を実現するには、 <input type="checkbox&...

VirtualBox に CentOS、JDK、Hadoop をインストールする詳細なチュートリアル

目次1. 前提条件1.1 サポートされているプラ​​ットフォーム1.2 jdk および hadoop...

Linuxはデータディスクがアンインストールされ、新しいカスタムイメージを作成できることを確認します。

カスタムイメージに関するよくある質問データディスクを表示するにはどうすればいいですか? df コマン...