検索

効率的な​​HTMLの書き方

個人翻訳、転載大歓迎!
英語の原文: https://samdutton.wordpress.com/2015/04/02/high-performance-html/
海外のブログ投稿を翻訳するのは初めてです。コメントや提案は大歓迎です。

どうすれば Web ページのパフォーマンスを向上させることができますか?

この質問を見たとき、ほとんどの開発者は画像の最適化、JavaScript の最適化、サーバー構成のアップグレード、ファイル圧縮、さらには CSS 圧縮を思い浮かべるでしょう。しかし、Web ページの中核言語である HTML は無視されてきました。

現在、HTML の負担はますます重くなっており、世界のトップ 100 の Web サイトの各ページの HTML コードの平均サイズは約 40k で、そのうち Amazon と Yahoo の HTML コードは平均数千行です。 Youtube ホーム ページには 3500 の HTML 要素もあります。ページごとの HTML の複雑さを軽減し、要素の数を減らしても、ページの読み込み時間は大幅に改善されませんが、適切な HTML コーディングの習慣は、Web ページの読み込み速度を向上させるための重要な基盤です。私がこの記事を書いた理由は、多くのデバイスで Web ページをすばやく読み込んで正常に実行できるように、クリーンで整然とした HTML コードを記述する方法を説明することです。その過程で、保守とデバッグが簡単な Web サイトとアプリを構築する方法を学ぶことができます。

コード、特に HTML を記述する方法はたくさんあります。この記事は、私たちの経験に基づいて比較的最適な提案を行っているだけであり、すべての提案がどのような状況でも効果を達成できることを意味するものではありません。

はじめに

    全員が自分の義務を果たします。CSS でスタイルを制御するだけで十分です。希望のスタイルを強制的に取得するために HTML 要素を使用しないでください。
  • 細心の注意: 開発プロセス中に必ずコード検証ツールを追加してください。コードに文法的および論理的なエラーがないことを確認します。
  • 整理整頓: コードの構造と形式の一貫性を維持するために自動組版ツールを使用します。
  • 言語に堪能であること: すべての要素の使用法を理解している必要があります。 HTML 要素でより多くのセマンティクスを使用します。
  • 全員を平等に扱います。バックアップ計画は重要であり、Web サイトが確実に機能するように、特別なグループに対してのみ ARIA (Accessible Rich Internet Application) を使用する必要があります。スクリーン リーダーまたはプレーン テキストでアクセスして表示できます。
  • 包括的なテスト: さまざまなツールを使用して、さまざまなデバイスや画面サイズで Web サイトのパフォーマンスをテストします。
ウェブの三人の友人

HTML の意味についてはあまり説明する必要はありません。百度百科を使用してください。

最初に言いたいのは、HTML と CSS の 2 つの兄弟は互いに情熱を持っていますが、その関係を複雑にしすぎてはいけないということです。HTML 要素を使用してスタイルを強制的に取得しないでください。テキストを大きくするためだけに

のタイトル タグを使用しないでください。また、テキストをインデントするためだけに
タグを使用しないでください。
Chrome、Firefox、Internet Explorer、Opera にはそれぞれ独自のデフォルト スタイル シートがあり、HTML 要素のデフォルトの表示モードはこれらのデフォルト スタイル シートによって決まります。たとえば、Chrome の

のデフォルトのスタイルは 32 ピクセルの太字で、フォントは Times です。

友達の 3 つの原則: HTML は構造の確立に使用され、CSS はスタイルのレンダリングに使用され、JavaScript は動作を制御するために使用されます
  • まず HTML の設計を完了し、次にスタイルの要件に従って CSS を設計し、最後に本当に必要な場合に JavaScript を設計します
  • CSS ファイルと JavaScript ファイルを HTML ファイルとは別にアーカイブします (これはページのキャッシュに役立つだけでなく、必要に応じて、CSS と JavaScript を HTML にリンクして、CSS と JavaScript コードを圧縮および暗号化することもできます。
  • 構造の構築

    HTML の構造を構築するときは次の点に注意する必要があります:

    HTML5 標準を採用する場合は、次のように先頭に を追加する必要があります:
  • <!DOCTYPE html><html>    <head>         <title>Recipes: pesto</title>    </head>    <body>          <h1 id="Pesto">Pesto</h1>          <p>Pesto is good!</p>    </body></html>

  • CSS は、ブラウザが HTML を出力する前に CSS 情報を取得できるように、head タグ ファイルに導入する必要があります。
  • <head>    <title>My pesto recipe</title>    <link rel="/css/global.css">    <link rel="css/local.css"></head>

  • タグの最後に JavaScript ファイルを導入します。ページの表示後にコンパイルして、ページの読み取りを高速化することもできます。次のように、JavaScript がページ上の要素を操作するのにも役立ちます。
  • <body>      ...      <script src="/js/global.js">      <script src="js/local.js"></body>

  • 要素の操作は、HTML ではなく JavaScript コードに追加する必要があります。それは間違っており、後で維持するのが困難になります。
    • 比如这样写就不太好:
      index.html
    <head>    ...     <script src="js/local.js"></head><body onload="init()">    ...     <button onclick="handleFoo()">Foo</button>    ...</body>
    • 这样写就好多了:
      index.html
    <head>    ...</head><body>     ...    <button id="foo">Foo</button>    ...     <script src="js/local.js"></body>
    ***js/local.js***
    javascriptinit(); var fooButton =  document.querySelector('#foo');fooButton.onclick = handleFoo();
  • 代码校验

    虽然现在浏览器的容错力越来越高,但这不能成为代码粗制滥造的借口。不管什么时候,正确的HTML代码都更易于debug、体积更小、运行更快、渲染时消耗资源更少,而错误的HTML代码只会使页面的最终设计难以实现想要的效果。特别是在使用模板来开发时,正确有效的HTML就更显得尤为重要,也许一个正常运行的模块会在其他环境中出现可怕的异常。
    如何才能提高HTML的正确性呢?可以有这些方式:

  • 在项目中加入校验过程:可以在代码编辑器中使用HTMLHint、SublimeLinter这类代码校验插件,也可以在build的时候使用HTMLHint with Grunt这类校验工具,还可以通过W3C HTML validator等网站来在线检测代码;
  • 尽量采用HTML5标准;
  • 确保正确的HTML层级:嵌套元素时确保元素首尾完整,在一个有大量内容的元素的结束标签后应添加注释,这样有助于后期debug,特别是在使用模板的时候,如下所示:

    <div id="foobar">    ...</div> <!-- foobar ends -->
  • 在所有不能自动结束的元素末尾添加结束标签;

    • 比如这个例子,这样写也可以可以正常运行:
    <p>Pesto is good to eat...<p>...and pesto is easy to make.
    • 不过还是下面这样比较不容易出错:
    <p>Pesto is good to eat...</p><p>...and pesto is easy to make.</p>
  • 结束标签不是必须的,所以有些人认为可以不写,这可以接受,但是和标签一定要加:
    <ul>      <li>Basil      <li>Pine nuts      <li>Garlic</ul>
  • <video>和

    <!-- 这样写不好 --><video src="foo.webm" /><!-- 还是这样写吧 --><video src="foo.webm">      <p>Video element not supported.</p></video>
  • 另一方面,要去掉冗余代码:

  • 効率的なHTML_html/css_WEB-ITnoseの書き方这一类元素可以不加结束标签;
  • 布尔型的属性可以不赋值,只要该属性出现,值就为true;

    • 下面这样是可以运行的(没有加autoplay和controls):
    <video>
    • 这样就不能运行,因为这两个属性值必须是true:
    <video src="foo.webm" autoplay="false" controls="false">
    • 这样改一下就可以运行了:
    <video src="foo.webm" autoplay="true" controls="true">
    • 这样写会更易读:
    <video src="foo.webm" autoplay controls>
  • CSS和 JavaScript链接不需要type属性,他们就是他们;
  • 外部链接可以省略协议部分(如http,ftp),这样可以避免内容太长而引起问题。像这样写是可以的:

    <a href="//en.wikipedia.org/wiki/Tag_soup">Tag soup</a>
  • 良好的代码排版

    保持一致的代码排版可以使HTML代码更易于理解、优化和debug,要做到良好的代码排版应注意以下这几点:

  • 在项目中保持统一的HTML代码风格;
  • 使用代码编辑器来帮助你自动排版,比如在Sublime Text中可以使用自带的Reindent,也可以找一些自动排版插件来帮助你。同样也可以使用一些在线工具比如CSS Beautifier和JS Beautifier;
  • 在HTML中用缩进来分层更易于阅读,如果代码编辑器没有自动缩进功能的话可以自行修改相应的设置。当你发现你的HTML层级过深的时候,那就表示你需要重构一下你的HTML了;
  • 缩进可以通过空格或者Tab来实现,但一定不要两者同时使用;
  • 用更直接易读的方式写HTML代码,比如这句话,就可以很明显的看出这是个标题:

    <h2 id="a-href-contact-Contact-a-h-pre-p-这样写的话就更像是一个链接-p-pre-class-brush-php-toolbar-false-a-href-contact-h-Contact"><a href="/contact">Contact</a><h2>

    这样写的话就更像是一个链接:

    <a href="/contact"><h2>Contact</h2></a>
  • 元素要按常规放置,比如footer元素最好是放在HTML页面的底部,虽然理论上把它放在任何地方都可以正常运行;
  • 统一所有引号的使用规则,不要这里用双引号,那里又单引号;
  • 使用小写字母来写标签和属性,大写字母很不易读,像这样:

    <A HREF="/">Home</A>

    混合式的写法简直就是反人类:

    <h2 id="Pesto">Pesto</h2>
  • 语义化设计

    语义化的意思是从名称一眼就能看出其内容和作用是什么,HTML的标签就是通过使用浅显易懂的元素名和属性名来实现语义化的。HTML5又引进了一些新的语义化元素,比如

    ,

  • 标题使用

    (

    ,

    …),列表使用
      或者

  • 内容中的标题应该从

    开始;

  • 在适当的地方使用HTML5的新元素,比如
    ,
    ,
  • 正文中的文本内容要用

    标签,内容的结构化可以使用HTML5的新元素(或者

    ),不要颠倒;
  • 修改文字样式时,要比更好些,因为前者语义更加明显;
  • 中要包含
  • 不要把文字和元素混合在一起,这样容易导致布局出错,比如这样:

    <div>    Name:     <input type="text"></div>

    这样写会更好些:

    <div>    <label>Name:</label>    <input type="text"></div>
  • 布局

    首先再次强调一遍:

    样式由CSS来控制就够了,不要用HTML元素来强行获取想要的样式。

    布局需要注意的问题有这些:

  • 元素用来放文字,而不是用来布局。在浏览器自身的样式表中默认

    有margin和其他样式;

  • 想实现换行可以使用元素或者CSS的display属性,尽量避免使用
    来换行。文字内容中的换行可以用
    ,但通常也很少这样用,有时在诗文中会把
    作为标点来使用;
  • 避免使用
    ,因为这个元素对语义和结构都没有太大帮助,反而
    极差的灵活性对布局和显示都有很大的影响;
  • 不要滥用
    ,W3C对
    的描述是这样的:当没有其他元素可用时才能使用
    。如果想让効率的なHTML_html/css_WEB-ITnoseの書き方这类元素能够在结尾换行,可以在样式中添加display: block,这样要比把它们放进
    或者使用
    来换行要好得多;
  • 必须知道哪些是块级元素,这样就可以避免把块级元素放到
    里面,比如列表就不需要放到div里面;
  • 是用来放表格数据的,不是用来布局的;
  • Flex box现在越来越流行,学一学没有坏处;
  • 盒模型一定要掌握,必须知道什么时候该用padding,什么时候该用margin;
  • 使用margin的规则:通常情况下,margin都是添加在元素的bottom和right,有时也可以是top或者left。无论如何,尽量避免同时在bottom和top,或者right和left添加margin。可以用last-of-type选择器来去掉最后一个子元素的margin。
  • CSS方面

    这篇文章虽然是讲HTML的,但也有些CSS的注意事项想说一说:

  • 不要将多句CSS写在同一行;
  • 不要重复使用同一个id;
  • 有时候给父元素添加class要比给子元素添加更简洁易维护(class的命名方式可以采用BEM规则),像这样:

    <!-- 这样看着好累>o< --> <ul>      <li class="ingredient">Basil</li>      <li class="ingredient">Pine nuts</li>      <li class="ingredient">Garlic</li> </ul> <!-- 看起来舒服多了^v^ --> <ul class="ingredients">      <li>Basil</li>      <li>Pine nuts</li>      <li>Garlic</li> </ul>
  • 易用性

    要多为用户考虑,不同的设备条件、使用环境以及输入法等都会给你的HTML带来不同的体验:

  • 尽可能的使用语义化元素;
  • 要准备好备用内容:比如给元素添加说明和副标题,给<video>和
  • 链接要加title属性,title必须要有意义,不要只是链接的复述;
  • 元素中要加入type和placeholder;
  • 设计时要尽量加入ARIA (Accessible Rich Internet Application)。
  • 其他建议

  • 符号的转义,比如HTML & JavaScript;
  • 有些符号不需要转义,比如破折号(如:4-5 weeks)还有货币符号(如:¢,?);
  • 在代码中作用不明显的地方适当的添加注释(注释在重构时的作用性举足轻重,优秀的HTML代码,无论多么复杂都可以很好的阅读和理解);
  • 有时全大写的标题会起到吸引注意力的作用,但没必要在HTML中真的输入大写的文字,可以在CSS中通过修改text-transform和font-variant来完成。这样做还有个好处,就是当用户复制这段文字时,他们可能不想要全大写的,像下面的

    ,当用户复制文字内容时,得到的是大小写混合的文字:
    HTML
    <h4>W3C Web Accessibility Initiative ARIA guidance</h4>

    CSS

    h4 {    font-variant: small-caps;}
  • 测试

    重中之重,就是一定要做测试!
    在工作流程、调试工具和部署过程中都可以加入HTML测试。一定要测试你的页面在不同条件的设备,不同大小的屏幕以及不同网速的环境下的读取情况。还要使用纯文字浏览器(如: Lynx)或者屏幕阅读器(如:ChromeVox)来测试页面在特殊环境下的交互性。可以使用Chrome Dev Tools device mode这种仿真器来监视页面的变化。工作流程中可以加入Page Speed, Web Page Test等工具来做自动化测试。

  • 声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    HTML:Webページの構造の構築HTML:Webページの構造の構築Apr 14, 2025 am 12:14 AM

    HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

    テキストからウェブサイトへ:HTMLの力テキストからウェブサイトへ:HTMLの力Apr 13, 2025 am 12:07 AM

    HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

    HTML、CSS、およびJavaScriptの理解:初心者向けガイドHTML、CSS、およびJavaScriptの理解:初心者向けガイドApr 12, 2025 am 12:02 AM

    webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

    HTMLの役割:Webコンテンツの構造HTMLの役割:Webコンテンツの構造Apr 11, 2025 am 12:12 AM

    HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

    HTMLとコード:用語を詳しく見るHTMLとコード:用語を詳しく見るApr 10, 2025 am 09:28 AM

    htmlisaspecifictypeofcodefocuseduructuringwebcontent

    HTML、CSS、およびJavaScript:Web開発者に不可欠なツールHTML、CSS、およびJavaScript:Web開発者に不可欠なツールApr 09, 2025 am 12:12 AM

    HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

    HTML、CSS、およびJavaScriptの役割:コアの責任HTML、CSS、およびJavaScriptの役割:コアの責任Apr 08, 2025 pm 07:05 PM

    HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

    HTMLは初心者のために簡単に学ぶことができますか?HTMLは初心者のために簡単に学ぶことができますか?Apr 07, 2025 am 12:11 AM

    HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

    See all articles

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

    Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

    AtomエディタMac版ダウンロード

    AtomエディタMac版ダウンロード

    最も人気のあるオープンソースエディター

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    強力な PHP 統合開発環境

    VSCode Windows 64 ビットのダウンロード

    VSCode Windows 64 ビットのダウンロード

    Microsoft によって発売された無料で強力な IDE エディター

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境