2016-10-14 9 views
-2

は、私は次のマークアップがあるとします。現代のブラウザはどのようにビューポートタグを扱いますか?そして私は本当にそれが必要ですか?

<!DOCTYPE html> 
<html style="background: yellow; padding: 0; margin: 0; width: 1100px;"> 
<head> 
<!-- 
    <meta name="viewport" content="width=2200, initial-scale=1">   
--> 
</head> 
<body> 

    <div class="container" style="width: 400px; background: red;"> 
     <div style="background: green; width: 300px; height: 200px;"> 

      Here goes my text Here goes my text Here goes my text Here goes my text Here goes my text Here goes my text Here goes my text Here goes my text Here goes my text Here goes my text Here goes my text Here goes my text Here goes my text Here goes 
     </div> 
    </div> 

</body> 
</html> 

を私は固定幅に1100pxhtmlに要素を設定しています。今度はGoogle Chromeのレスポンスデバイスツールバーでこのドキュメントを開き、画面の幅を小さくしようとすると、その後1100px以下になると、ウェブサイト全体がに絞り込まれます。私はこの

<meta name="viewport" content="width=2200, initial-scale=1">

を行う場合は、ウェブサイトに関係なくhtmlと他のelementsの幅の、2200px以下でsquuezing開始します。 width=2200viewport tagの場合、ブラウザではタグの幅が2200pxであると考えるようになるため、2200pxで絞り込みを開始する必要がありますか?

+0

私はより具体的な質問をしました。 * "viewportタグのwidth = 2200はブラウザにhtmlタグの幅が2200pxだと考えるようにするので、2200px以下ではじき始める必要がありますか?" * – user31782

答えて

0

今回のように私の理解は正しいようです。

すべてのブラウザはすべてのウェブページをビューポートにレンダリングします。デスクトップ画面では、ビューポートはブラウザウィンドウと同じです。しかし、モバイルビューポートでは、幅と高さがブラウザの幅と高さとそれぞれ異なります。

HTMLドキュメントの幅は800個のCSSピクセルである:は、私たちがiPhone5の上、このWebページを開きたいとします。それはそう最初のケースを考えている理由を詳しく説明するために、 iPhone 5の幅は320 cssピクセルです。今では800pxの幅のウェブページを表示するために、最初は仮想デスクトップの画面のように980 css pxの幅で動作します。この仮想スクリーン上に800ピクセル幅のページをレンダリングします。この想像上の画面をビューポートとしましょう。今度はiPhone 5がこの仮想スクリーンを320/980の倍率で縮小します。つまり、divの幅490 cssピクセルは、490 * (320/980) = 160pxのdivのように動作します。これはiPhoneの画面の半分です。 divのテキストのフォントサイズだけでなく、同じ要素によって減少されます。次のケースに移りましょう。

htmlドキュメントの幅は1170 cssピクセルです:再度このWebページをiPhone5で開きたいとします。今回、iPhoneは980 css pxのワイドビューポートでWebページをレンダリングできません。一般に、ウェブページは980 css pxよりも大きいので、iPhoneはウェブページと同じ幅の仮想スクリーン上にページをレンダリングします。だから今度はiPhoneがビューポート1170のcss pxを作成します。その後、ビューポートを320/1170だけ縮小し、このページを画面にレンダリングします。フォントサイズを含むすべての要素が同じ要素によって削減されます。

ここで、質問で特定の質問に戻ってみましょう。

ビューポートタグの幅= 2200はブラウザにhtmlタグの幅が2200pxだと考えるようにしますので、2200px以下で圧縮を開始する必要がありますか?

いいえ、それは、ビューポートの最小幅が広い 2200のCSSピクセルであることを考えるようにモバイル(タブレット)ブラウザを強制します。 2200pxより広いGoogle Chromeのレスポンスツールバーを作成すると、2400pxと表示され、ビューポートも2400pxになります。応答ツールバーが2200pxより広いと、ウェブページが縮小されません。ツールバーが2200を下回ると、ビューポートの最小幅が2200pxなので、vieportのスクイーズが開始されます。

-2

驚くべきことに、実際にどのようなビューポートタグが実際に達成したかは、ウェブページ上のメディアクエリを可能にすることです。私は小枝に沿ってメディアクエリを使用してビューポートタグ次のメディアクエリを使用していた場合:それからwepageが画面に絞るません

@media (max-width: 800px) { 
      * { 
       width: 200px !important; 
      } 
     } 

を800ピクセル未満のサイズ。 viewportタグのないメディアクエリは800px以下で何もしません。ブラウザが通常行うことは、ウェブページの幅がビューポートの幅よりも大きい場合、ウェブページを圧迫するということです。ビューポートタグはブラウザの内部機能を停止することは想定されていませんが、何らかの理由でブラウザがブラウザ下で980pxに絞られるのを止め、ビューポートの幅がウェブページの幅よりも小さくなった場合にのみスクイーズさせます。それによって異なる幅をさまざまな要素に織り込むことができます。また、ユーザがuser-scalabiltyによってズームイン/アウトすることを禁止するなど、他の機能も提供します。

関連する問題