ホームページ > 記事 > ウェブフロントエンド > HTML ドキュメント mode_html/css_WEB-ITnose に関する簡単な説明
HTML コードを書くときに考えたことがあるかどうかはわかりません 8b05045a5be5764f313ed5b9168a17e6 または、理解できないこの長いリスト 4667f5dc9a1e48e2ce8716229a5933b5 宣言は、HTML ドキュメントの最初の行、100db36a723c770d327fc0aef2ce13b1 の前になければなりません。
ドキュメント タイプ DOCTYPE の構文:
最上位要素の可用性 "Registration // Organization // Type Tag Definition // Language" "URL"
DTD (文書型定義):
DTD標準とは、HTMLやXMLの表示効果が崩れないようにタグの入れ子のルールを規定した構文と理解できます。異なる DTD ファイルは、異なる標準 DTD を記述します。
詳細な説明:
ドキュメントの先頭にドキュメント タイプ宣言が見つからない場合、すべてのブラウザはデフォルトでプロミスキャス モードをオンにします。このモードでの動作は、ブラウザによって大きく異なります。特定のハックを使用する 技術的には、ブラウザ間で動作に一貫性がありません。(1). 混合モード: ドキュメントのレンダリングに大きな影響を与えるドキュメント タイプ定義を参照しません。
(2). 標準モード: 次のドキュメント タイプのいずれかを使用してオンにし、厳格なドキュメントを使用してトリガーできます。
//html<br />该DTD包含所有HTML元素和属性,但不包含展示性的和弃用的元素(比如font),不允许框架集(Framesets)<!-- HTML 4.01 严格型 --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><!-- HTML5 --><!DOCTYPE html>//xhtml<br />该DTD包含所有HTML元素和属性,但不包含展示性的和弃用的元素(比如font),不允许框架集(Framesets)。必须以格式正确的XML来编写标记<br /><!-- XHTML 1.0严格型 --><br /><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
(3). 準標準モード: トリガーに移行ドキュメントまたはフレームセット ドキュメントを使用します。
すごいです
すべての HTML5/HTML 4.01/XHTML 要素と、それらが表示されるドキュメント タイプ (DTD) については、「HTML 要素と有効な DTD」を参照してください。
移行 DTD を使用すると、プレゼンテーション層の識別子、要素、属性 (組版用のテーブル、背景色の識別子など、プレゼンテーションを制御するために純粋に使用されるタグを指します) を使用できるようになり、W3C コード検証に合格することが容易になります。ただし、HTML5 では、構造を表現するために HTML タグが使用され、プレゼンテーションを実現するために CSS が使用されること、つまりデータとプレゼンテーションが分離されることが強調されているため、トランジショナル タイプやフレーム タイプは使用しないようにしてください。
ブラウザが混合モードになった場合:
css に影響する状況
主に IE ブラウザ、その他の Chrome、FF、IE 上位バージョンのブラウザは、ディスプレイのどのモードであっても正常に動作します
JavaScript への影響
以下に紹介するプロパティの値はすべて整数であり、計算時に小数点以下は四捨五入されることに注意してください。ブラウザで。IE9+、FF、Safari、Opera、Chrome はすべて、このために innerWidth、innerHeight、outerWidth、outerHeight の 4 つのプロパティを提供します。
(2)但在IE6中这些属性必须在标准模式下才有效,如果在混杂模式就必须通过document.body.clientWidth和document.body.clientHeight取得相同信息。这里模拟了一下IE5文档模式,可见在混杂模式下只有document.body可用,而且获取的值还不一定正确。模拟IE7在标准模式下是优先选择document.documentELement的,但是获取的值也不一定正确。高版本的IE表现正常。
(3)标准模式下的Chrome46.0.2490.80 ,要优先选择document.documentElement计算视口,而document.body.clientWidth和clientHeight默认是body元素所包含内容的总宽高,这里我设置body的width为200px了。
混杂模式下的Chrome,无论通过document.documentElement还是document.body中的clientWidth和clientHeight属性都可取得视口大小。
//获取页面可见视口宽高,向后兼容function visualViewport(){ var visualobj={}; visualobj.pageWidth=window.innerWidth, visualobj.pageHeight=window.innerHeight; //<=IE8不支持上面两种属性 if(typeof visualobj.pageWidth!="number"){ if(document.compatMode=="CSS1Compat"){ visualobj.pageWidth=window.documentElement.clientWidth; visualobj.pageHeight=window.documentElement.clientHeight; }else{ //兼容三大主流浏览器的混杂模式(因为FF在混杂模式下document.documentElement的两个属性表现不正常,所以集中用document.body) visualobj.pageWidth=window.body.clientWidth; visualobj.pageHeight=window.body.clinetHeight; } } return visualobj; }
参考:
《JavaScript高级程序设计》
HTML1a309583e26acea4f04ca31122d8c535标签
怎么看网页是使用哪个HTML版本编写的?
DOCTYPE作用及用法详解
怪异模式(Quirks Mode)对 HTML 页面的影响