2012-05-11 7 views
4

私は自分のサイトをモバイルフレンドリーにしようとしています。レスポンシブルウェブデザインのブラウザ幅を聞く?

ブラウザウィンドウのサイズを知りたいので、728pxよりも狭いときは何かしてください。

これは、PCのウィンドウのサイズ変更と、電話機のポートレートモードからランドスケープモードへの変更を考慮する必要があります。

どうすればいいですか?

+3

[CSS3 Media Queries](http://www.w3.org/TR/css3-mediaqueries/) – m90

+0

CSSグリッドシステムまたは適応グリッドまたはレスポンシブデザインについての検索を// exapmle [960グリッドシステム](http://960.gs/) –

+0

おそらく、レスポンシブルデザインのための_幅管理ツール_ https://github.com/pyrsmk/W –

答えて

8

m90が示唆するように、あなたがやりたいことがスタイルを修正するだけならば、media queriesを見てください。ただし、スタイルを変更する以外にも、JavaScriptを使用する必要があります。

平野のJavaScript

問題は、それがブラウザの間で変化し、それはウィンドウの幅を取得するために、完全にまっすぐではないということです。だから、(未テスト)このような何かをする関数を作成する必要があります:

var width = 0; 
function updateWindowSize() { 
    if (document.body && document.body.offsetWidth) { 
     width = document.body.offsetWidth; 
    } 
    if (document.compatMode=='CSS1Compat' && 
     document.documentElement && 
     document.documentElement.offsetWidth) { 
     width = document.documentElement.offsetWidth; 
    } 
    if (window.innerWidth) { 
     width = window.innerWidth; 
    } 
} 

次にあなたはさらにonResizeイベントウィンドウのために耳を傾け、毎回ウィンドウの変更を新しいウィンドウサイズを取得するための関数を呼び出すことができます。

window.onresize = function(event) { 
    updateWindowSize(); 
} 

あなたはjQueryのを使用した場合、これはjQueryの舞台裏あなたのためのクロスブラウザサポートの世話をするよう、少し短く行うことができます

のjQuery:

var width; 
$(window).resize(function() { 
    width = $(window).width(); 
}); 
+1

奇妙なことに、バニラJSを使用しなければならず、jQueryが戻ってきた私はMac OS X、Chromeバージョン35.0.1916.114で間違った幅を持っています。 –

1

警告として、IE8以下はメディアクエリやCSS3をサポートしていません。あなたがIE8を気にしないなら、それに行きなさい。 Respond.js、ModernizrなどがIE6-8をサポートするのに役立ちますが、完璧とはほど遠いものです。