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.use() の原理と基本的な使用法

目次序文1. 例で理解する2. ソースコードを分析する3. まとめ要約する序文他の人のコンポーネント...

Docker を使用して pypi プライベート リポジトリを構築する方法

1. 建設1. htpasswd.txtファイルを準備するファイルには、パッケージを倉庫にアップロー...

Windows 上で Nginx+Tomcat クラスタを実装するプロセスの分析

導入: Nginx (エンジン エックスと同じ発音) は、BSD のようなプロトコルに基づいてリリー...

Vueはファイルのアップロードとダウンロードを実装します

この記事では、参考までにVueのファイルのアップロードとダウンロードの具体的なコードを紹介します。具...

Vue で CSS カスタム変数を使用する方法

目次CSS カスタム変数機能は古くから存在していますが、実際の開発ではあまり使用されていません。その...

vue+echartsチャートの使用に関する問題記録

序文echarts は私が最もよく使用するチャート作成ツールであり、非常に完全なエコシステムとコンテ...

WeChatミニプログラムでトークンの有効期限を処理する方法

目次まず結論から質問解決Promiseを使用してコールバック関数をカプセル化する要約するまず結論から...

携帯電話に GreasyFork js スクリプトをインストールするチュートリアル

目次序文1. Iceraven ブラウザ (Firefox) (Android) 2. (アンドロイ...

MySQL カーソルの定義と使用法

カーソルの作成まず、MySql でデータ テーブルを作成します。 存在しない場合はテーブルを作成 `...

HTMLでカメラを読み込む方法

効果図: 全体的な効果: ビデオ読み込み中: 写真:ステップ1: HTML要素を作成するまず、HTM...

JavaScript コードを省略する一般的な方法の概要

目次序文矢印関数一般的な配列操作をマスターするスプレッド演算子オブジェクトの省略形構造化割り当てデー...

VUE+Express+MongoDBのフロントエンドとバックエンドの分離によるノートウォールの実現

付箋紙の壁シリーズを実現しようと思っています。シンプルなものはシンプル、複雑なものは多機能です。開発...

2008 年の Web デザインにおける 10 の経験

<br />インターネットは絶えず変化しており、BusinessWeek.com は専門...

フロントエンドフレームワーク Vue における親子コンポーネントデータの双方向バインディングの実装

目次1. 親コンポーネントと子コンポーネント間の一方向の値転送1. 親から子への値の受け渡し2. 子...