Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Spesifikasi HTML yang anda mesti tahu (tersusun dan dikongsi)
Artikel ini membawa anda pengetahuan tentang spesifikasi HTML, sebagai bahasa penanda hiperteks yang menerangkan struktur halaman web, sentiasa digunakan secara meluas. Matlamat dokumen ini adalah untuk menjadikan gaya kod HTML konsisten dalam pembangunan dalaman, menjadikan projek lebih mudah difahami dan diselenggara. Semoga ia membantu semua orang.
Spesifikasi HTML
1 Prakata
HTML, sebagai bahasa penanda hiperteks yang menerangkan struktur halaman web, sentiasa digunakan secara meluas. Matlamat dokumen ini adalah untuk menjadikan gaya kod HTML konsisten dalam pembangunan dalaman, menjadikan projek lebih mudah difahami dan diselenggara.
2 Gaya kod
2.1 Indentasi dan pemisah baris
[Mandatori] Gunakan 4 Ruang berfungsi sebagai tahap lekukan dan 2 ruang atau aksara tab tidak dibenarkan.
Contoh:
<ul> <li>first</li> <li>second</li> </ul>
[Disyorkan] Maksimum 120 aksara setiap baris.
Penjelasan:
Kod yang terlalu panjang tidak mudah dibaca dan diselenggara. Walau bagaimanapun, memandangkan keistimewaan HTML, tiada keperluan yang sukar.
2.2 Penamaan
Kelas [Mandatori] mesti mempunyai semua huruf kecil dan perkataan mesti dipisahkan dengan -.
Kelas [Mandatori] mesti mewakili kandungan atau fungsi modul atau komponen yang sepadan dan tidak boleh dinamakan dengan maklumat gaya.
Contoh:
<!-- good --> <div></div> <!-- bad --> <div></div>
[Mandatori] Id elemen mestilah unik pada halaman.
Penjelasan:
Dalam halaman yang sama, elemen berbeza mengandungi id yang sama, yang tidak menepati makna atribut id. Dan menggunakan document.getElementById boleh membawa kepada masalah yang sukar dikesan.
[Mandatori] Adalah disyorkan bahawa semua perkataan dalam id ditulis dengan huruf kecil dan dipisahkan dengan -. Gaya mesti konsisten untuk projek yang sama.
[Cadangan] Nama id dan kelas hendaklah sesingkat mungkin sambil mengelakkan konflik dan menerangkan dengan jelas.
Contoh:
<!-- good --> <div id="nav"></div> <!-- bad --> <div id="navigation"></div> <!-- good --> <p></p> <!-- bad --> <p></p> <!-- good --> <span></span> <!-- bad --> <span></span>
[Mandatori] Dilarang membuat kelas tanpa maklumat gaya untuk skrip cangkuk.
Penjelasan:
Kelas tidak dibenarkan hanya digunakan untuk membenarkan JavaScript memilih elemen tertentu harus mempunyai semantik dan gaya yang jelas. Jika tidak, ia akan membawa kepada percambahan kelas CSS dengan mudah.
Menggunakan pemilihan id dan atribut sebagai cangkuk ialah cara yang lebih baik.
[Mandatori] Elakkan menggunakan nama dan id yang sama pada halaman yang sama.
Penjelasan:
Pelayar IE akan mengelirukan id dan atribut nama elemen, dan document.getElementById mungkin memperoleh unsur yang tidak dijangka. Oleh itu, anda perlu berhati-hati apabila menamakan atribut id dan nama elemen.
Amalan yang baik ialah menggunakan tatanama yang berbeza untuk id dan nama.
Contoh:
<input name="foo"> <div id="foo"></div> <script> // IE6 将显示 INPUT alert(document.getElementById('foo').tagName); </script>
2.3 Teg
[Mandatori] Nama teg mesti menggunakan huruf kecil.
Contoh:
<!-- good --> <p>Hello StyleGuide!</p> <!-- bad --> <P>Hello StyleGuide!</P>
[Mandatori] Penutupan sendiri tidak dibenarkan untuk label yang tidak perlu ditutup sendiri.
Penjelasan:
Teg biasa yang tidak memerlukan penutupan sendiri termasuk input, br, img, hr, dsb.
Contoh:
<!-- good --> <input type="text" name="title"> <!-- bad --> <input type="text" name="title" />
[Mandatori] Untuk teg penutup yang dibenarkan untuk ditinggalkan dalam HTML5, peninggalan teg penutup tidak dibenarkan.
Penjelasan:
Pengecualian boleh dibuat dalam senario dengan keperluan saiz kod yang sangat ketat. Contohnya: sistem penghantaran yang digunakan oleh halaman pihak ketiga.
Contoh:
<ul> <li>first</li> <li>second</li> </ul>
[Mandatori] Penggunaan teg mesti mematuhi peraturan sarang teg.
Penjelasan:
Sebagai contoh, div tidak boleh diletakkan dalam p, dan tbody mesti diletakkan dalam jadual.
Untuk peraturan sarang teg terperinci, sila rujuk bahagian definisi Elemen dalam HTML DTD.
[Cadangan] Penggunaan teg HTML hendaklah mengikut semantik teg tersebut.
Penjelasan:
Berikut ialah semantik teg biasa
p - Perenggan
h1,h2 , h3,h4,h5,h6 - tajuk hierarki
kuat, em - penekanan
in - sisipan
del - padam
abbr - singkatan
kod - pengenalan kod
petikan - tajuk karya dari mana petikan dipetik
q - petikan
petikan blok - perenggan atau petikan panjang
ul - senarai tidak tersusun
ol - senarai tertib
dl,dt,dd - senarai definisi
Contoh:
<!-- good --> <p>Esprima serves as an important <strong>building block</strong> for some JavaScript language tools.</p> <!-- bad --> <div>Esprima serves as an important <span>building block</span> for some JavaScript language tools.</div>
[Cadangan] Jadual tidak boleh digunakan untuk reka letak apabila CSS boleh mencapai keperluan yang sama.
Penjelasan:
Ketepatan semantik harus dikekalkan sebaik mungkin apabila keserasian membenarkan. Pengecualian dibenarkan untuk senario dengan keperluan ketat pada penjajaran grid dan kebolehan regangan, seperti bentuk kompleks dengan berbilang lajur.
[Cadangan] Penggunaan teg hendaklah sesingkat mungkin dan mengurangkan teg yang tidak diperlukan.
Contoh:
<!-- good --> <img src="image.png"> <!-- bad --> <span> <img src="image.png"> </span>
2.4 Atribut
[Mandatori] Nama atribut mesti menggunakan huruf kecil.
Contoh:
<!-- good --> <table cellspacing="0">...</table> <!-- bad --> <table cellSpacing="0">...</table>
[Mandatori] Nilai atribut mesti dikelilingi oleh petikan berganda (tidak termasuk perpustakaan komponen seperti iView dan elemen).
Penjelasan:
Petikan tunggal tidak dibenarkan dan tiada petikan tidak dibenarkan.
Contoh:
<!-- good --> <script src="esl.js"></script> <!-- bad --> <script src='esl.js'></script> <script src=esl.js></script>
[Pengesyoran] Untuk atribut jenis Boolean, adalah disyorkan untuk tidak menambah nilai atribut.
Contoh:
<input type="text" disabled> <input type="checkbox" value="1" checked>
[Pengesyoran] Atribut tersuai disyorkan supaya diawali dengan xxx- dan data- disyorkan.
Penjelasan:
Menggunakan awalan membantu membezakan sifat tersuai daripada sifat yang ditetapkan standard.
Contoh:
<ol data-ui-type="Select"></ol>
3 Generik
3.1 DOCTYPE
[强制] 使用 HTML5 的 doctype 来启用标准模式,建议使用大写的 DOCTYPE。
示例:
<!DOCTYPE html>
[建议] 启用 IE Edge 模式。
示例:
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
[建议] 在 html 标签上设置正确的 lang 属性。
解释:
有助于提高页面的可访问性,如:让语音合成工具确定其所应该采用的发音,令翻译工具确定其翻译语言等。
示例:
<html>
3.2 编码
[强制] 页面必须使用精简形式,明确指定字符编码。指定字符编码的 meta 必须是 head 的第一个直接子元素。
解释:
见 HTML5 Charset能用吗 一文。
示例:
<html> ...... ......