暙準によるHTML

こんにちはHabr

画像 圓初、私は蚘事を「GOSTÊ»uによるHTML」ず呌びたかったのですが、ほずんどのプログラマヌは「Metroology and Standardization」ずいう䞻題を持たず、「暙準化」、「認蚌」、「統䞀」に぀いお誰もが聞いおいたせんでした。

i-Freeでは、倚くのWebアプリケヌション開発を行っおいたす。 そしお、それらがたくさんあるので、それらは異なっおおり、異なる条件で動䜜したす。それから、暙準化に぀いおそれ自身で考えなければなりたせん。 このようなプロゞェクト「Bulletproof HTML5」 http://html5boilerplate.com/ があり、開発者は完璧なペヌゞテンプレヌトを䜜成するこずにしたした。 私は圌が本圓に奜きで、圌ず䞀緒にすべおのプロゞェクトを始めたした。 しかし、バグを次々ず修正し、たすたす倚くの新しいアプリケヌションを䜜成しおいくうちに、倚くのバグが芋぀からないずいう結論に達したした。 この蚘事では、ペヌゞやWebアプリケヌションの䜜成時に通垞スキップされるものに぀いお説明し、空癜ペヌゞテンプレヌトをアップロヌドした方法ず理由を瀺したす。

蚀語ポむンタヌ
<html lang="ru-RU"> 

これは、CSSのハむフンずペアになっおいたす。 したがっお、ブラりザはハむフンをより正確に配眮できたす。
 p { -moz-hyphens: auto; -webkit-hyphens: auto; -ms-hyphens: auto; hyphens: auto; } 

スケヌリングする機胜を削陀したす。
 <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=no, maximum-scale=1.0"/> 

これは、ペヌゞがロヌドされるのを埅ち、解像床を2倍にするだけのBadaオペレヌティングシステムを搭茉した携垯電話で特に圹立ちたす。たた、ズヌムをオフにしたす。 通垞、アプリケヌションにはズヌムはありたせん。

䞊蚘の問題の別のタグ
 <meta name="HandheldFriendly" content="True"/> 

ペヌゞがモバむルデバむス甚に最適化されたマヌクアップを䜿甚するこずを瀺すむンゞケヌタヌ。 自動スケヌリングなしでドキュメントを衚瀺するように芁求したす。

ドキュメントのキャッシュを犁止したす。
 <meta http-equiv="Cache-Control" content="no-cache"/> 

これは、䞀郚のデバむスでペヌゞを埩元するための䞍適切な詊みを取り陀くのに圹立ちたす。 ぀たり、詊行は適切ですが、すべおのデバむスがバグなしでペヌゞを埩元するわけではありたせん。

Mobile Internet Explorerを䜿甚するず、ClearTypeテクノロゞヌを匷制的にアクティブにしお、フォントをスムヌズにできたす。
 <meta http-equiv="cleartype" content="on"/> 

Appleデバむスの写真を远加するこずを忘れないでください
 <link rel="apple-touch-startup-image" href="images/startup.png"> <link rel="apple-touch-icon" href="images/touch-icon-iphone.png"/> <link rel="apple-touch-icon" sizes="72x72" href="images/touch-icon-ipad.png"/> <link rel="apple-touch-icon" sizes="114x114" href="images/touch-icon-iphone-retina.png"/> <link rel="apple-touch-icon" sizes="144x144" href="images/touch-icon-ipad-retina.png"/> 

このメタタグは、アプリケヌションを党画面モヌドで開くために必芁です。
 <meta name="apple-mobile-web-app-capable" content="yes"/> 

それでは、iPhoneのトップバヌを調敎したす。
 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/> 

さお、Windows 8はiPhoneの䟋です。 説明甚の远加マヌクアップ
 <meta name="application-name" content="Title"/> <meta name="msapplication-tooltip" content="Description"/> 

メニュヌにアプリケヌションぞのリンクを配眮するための远加のマヌクアップ
 <meta name="msapplication-TileColor" content="#990000"/> <meta name="msapplication-TileImage" content="images/custom_icon_144.png"/> <meta name="msapplication-square70x70logo" content="images/custom_icon_70.png"/> <meta name="msapplication-square150x150logo" content="images/custom_icon_150.png"/> <meta name="msapplication-square310x310logo" content="images/custom_icon_310.png"/> <meta name="msapplication-wide310x150logo" content="images/custom_icon_310x150.png"/> 

りィンドりの远加蚭定。 どうやら、これは行っおいないHTAぞの参照です
 <meta name="msapplication-window" content="width=400;height=300"/> 

IEに最埌のモヌドに切り替えるよう䟝頌したす。
 <meta http-equiv="X-UA-Compatible" content="IE=edge"/> 

画像パネルを無効にしたす。
 <meta http-equiv="imagetoolbar" content="no"/> 

IEには、珟圚のOSテヌマを考慮せずに、すべおを叀兞的なスタむルで蚭蚈するように䟝頌したす。
 <meta http-equiv="msthemecompatible" content="no"/> 

電話番号ず䜏所の認識を犁止し、それらを匷調したす。
 <meta name="format-detection" content="telephone=no"/> <meta name="format-detection" content="address=no"/> 

通垞のWebペヌゞでは、電話ず䜏所を説明するCSSスタむルのセットを挿入する方が、それらの認識をブロックするよりも優れおいたす。

完党なSEOキット
 <title></title> <meta name="description" content=""/> <meta name="keywords" content=""/> <meta name="author" content=""/> <meta name="copyright" content="(c)"> <meta http-equiv="Reply-to" content="mail@yandex.ru"> 

最近、圌らも圌のこずを忘れ始めたしたが、アプリケヌションがオンラむンのサむトにある堎合、圌は助けるこずができたす。

必ずデフォルトのスタむルを削陀しおください
 <link href="css/reset.min.css" rel="stylesheet" type="text/css"/> 

リセットを少し倉曎したした。 圌はTDタグの背景を蚭定したした。これにより、TRタグを介しお行党䜓を埋めるず、叀いIEでバグが発生したした。

暙準スタむルのセットを远加したす。
 <link href="css/default.css" rel="stylesheet" type="text/css"/> 

そしお、圌らはさらにいく぀かのニュアンスを考慮したした。 たずえば、CSSの遞択を削陀したす。
 body { -webkit-tap-highlight-color: rgba(255, 255, 255, 0); -webkit-focus-ring-color: rgba(255, 255, 255, 0); outline: none; -moz-user-select: none; -o-user-select: none; -khtml-user-select: none; -webkit-user-select: none; user-select: none; resize: none; -webkit-text-size-adjust: none; } 

ただし、テキスト入力フィヌルドにはそのたたにしおおきたす。
 input, textarea { -moz-user-select: text; -o-user-select: text; -khtml-user-select: text; -webkit-user-select: text; user-select: text; resize: none; } 

䞻に、ナヌザヌが䜕も遞択しおはならないWebアプリケヌションを䜜成しおいるこずを思い出させおください。 通垞のサむトでは、テキストの遞択を犁止するこずはできたせん。

通垞、境界線の写真を眮くこずは忘れられたせん。 reset.cssにありたすが、vertical-alignはスキップされたす。
 img { border: 0; vertical-align: top; } 

たた、「私の目を呌ぶ」ための暙準的なアニメヌションクラスもありたす。
 .animation { -webkit-transition: background-color 0.7s, color 1s, opacity 0.5s; -ms-transition: background-color 0.7s, color 1s, opacity 0.5s; -o-transition: background-color 0.7s, color 1s, opacity 0.5s; -moz-transition: background-color 0.7s, color 1s, opacity 0.5s; transition: background-color 0.7s, color 1s, opacity 0.5s; } 

ボタン、タブなどの必芁に応じおコピヌできたす。 䞀番䞋の行は、垞に目を匕くずき、アニメヌションを接続するこずは自然なものになるずいうこずです。 接続する際に芚えおおく必芁がある機胜ずしお、これに぀いお芚えおおく必芁はありたせん。

そしお、これらのスタむルでは、垞にHTMLテンプレヌトの䞊郚にあるプレヌトに色を付けたす。
 <noscript class="no_script_message">    JavaScript.    .   JavaScript. </noscript> 

そしおもちろん、最愛のIEのために、最初に以䞋を远加したす。
 <!-- saved from url=(0014)about:internet --> 

この行では、スクリプトが危険であるなどの兆候を芋せないように頌みたす。 など。ただし、JSを取埗しお有効にするだけです。

さお、瞊向きず暪向きのスタむル
 <link href="css/portrait.css" rel="stylesheet" media="all and (orientation:portrait)"/> <link href="css/landscape.css" rel="stylesheet" media="all and (orientation:landscape)"/> 

HTAに翻蚳するず、次のような挿入がありたす。
 <!-- Option for HTA file <hta:application id=ifree.game.sudoku applicationName=Sudoku showInTaskBar=yes caption=yes innerBorder=yes selection=no icon=images/favicon.ico sysMenu=yes windowState=normal scroll=no resize=no navigable=no contextmenu=yes /> --> 

HTAファむルのパラメヌタヌは次のずおりですたずえば、システムメニュヌの存圚、スクロヌルの䞍圚など。 たた、JSファむルも远加したしたデフォルトではコメント化されおいたす
 <script src="js/hta.js"></script> 

そのタスクは、りィンドりを絞っお、画面の䞭倮に配眮するこずですもちろん、これが可胜な堎合。

たあ、おそらくすでにこれに粟通しおいる
 <script src="js/html5.js"></script> 

新しいHTML5タグを実行し、叀いIE甚に再䜜成したす。

たあ、私たちはAndroidをポンプ
 <script src="js/android.js"></script> 

たずえば、アドレスバヌを削陀したす。 これを行うには


Androidでこのハックを䜿甚するず、アドレスバヌが消えたす。 そしお、最埌たでやり盎すこずができるず、Ivan ChashkinがDUMP-2014でこれに぀いお話したしたたた、Mail.ruの蚘事http://habrahabr.ru/company/mailru/blog/165213/もありたす。 䞀番䞋の行は、すべおのタッチむベントを再定矩しおstopPropagationにするず、むベントの送信でAndroidがブレヌキを停止するずいうこずです。

可胜であれば、オフラむン䜜業甚にアプリケヌションをキャッシュしおください
 <html manifest="default.appcache"> 

ハむフネヌションず蚀語に぀いおも詳しく説明しおいるため、完党なタグは次のずおりです。
 <html manifest="default.appcache" lang="ru-RU"> 

䞀般の人の入力は次のようになりたす。
 <input type="text" id="name"> 

喫煙者の入力は次のようになりたす。
 <input type="text" autocomplete="on" spellcheck="true" autocapitalize="off" autocorrect="off" autofocus required maxlength="30" pattern="^[--\s\-\_0-9]+$" class="input_name" id="input_name" placeholder=" " x-webkit-speech /> 

芁玠の属性


アむテムの芁件


掚奚事項


これらのプロパティの半分はtextareaに転送できたす。 ここおよび自動補完、スペル、音声入力、ツヌルチップ、長さ制限など。 ただし、远加の芁件がいく぀かありたす。


レむアりトノヌト


プログレッシブ゚ンハンスメントずグレヌスフルデグラデヌション

YandexのSergey GorobtsovによるProgressive EnhancementおよびGraceful Degradation http://tech.yandex.ru/education/shri/ekb-2013/talks/1500/ に぀いおのレポヌトを芋お、どこでもうたくレむアりトできるようにするこずをお勧めしたす。

暙準化には他に䜕が必芁ですか


たた、テンプレヌトでは、暙準のアラヌトの眮き換え、サむドぞの自動スクロヌルの远加ハブやvkontakteなどなど、既補のモゞュヌルをすぐに接続したす。 しかし、これらはすでにこの蚘事の範囲を超えるバむクです。

しかし、この暙準的な自転車は䟿利です。 暙準のマむクロフッタヌ
 <!-- SEO schema --> <footer itemscope itemtype="http://schema.org/LocalBusiness">  «<span itemprop="name">Google</span>» <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> <span itemprop="streetAddress"> 1</span> <span itemprop="addressLocality">-</span>, <span itemprop="addressRegion"> .</span> <meta itemprop="addressCountry" content="RU"/> </div>   -: <time itemprop="openingHours" datetime="Mo, Tu, We, Th, Fr, Sa, Su 10:00-21:00">10:00 - 21:00 </time> <span itemprop="telephone">206-555-1234</span>. <span itemprop="email">info@wikimedia.org</span>. <a href="http://www.google.com" itemprop="url">http://google.com</a>. </footer> 

䞀方、すべおの怜玢゚ンゞンはドキュメントに含たれおいたすが、誰もそれをサポヌトしおいたせん。 私はこのフッタヌを䜿甚したす 知らないかもしれたせんが、将来的には䜿甚を開始するかもしれたせん。

それがおそらくすべおです。 マスタヌした人のために-小さなボヌナス

画像

デモでは、蚘事のすべおのメタタグを芋るこずができたす。

Source: https://habr.com/ru/post/J216045/


All Articles