2012-02-08 10 views
0

私はウェブサイト上で作業していますが、オンラインで解決策が見つからない問題が発生しました。メニューが画面外になりますが、ページはスクロールできません

私はドロップダウンメニューを設計しましたが、これは問題です。ページが拡大表示されている場合は、2行に分割されます(ドロップダウンメニューでは望ましくありません)。メニューの最小幅。位置が絶対に設定されているため、右にスクロールできず、メニューが画面から消えます。 bodyタグの最小幅を設定しても、私はボディをスクロールできますが、メニューはそのままになりません。

ポジションを絶対に保つ必要があります。そうでなければ、私はそれを一番上に置いておきたいと思いますので、助けていただければ幸いです。スマートフォンのように画面が実際にズームインされます。

ここにはメニューコードがあります(あまりにも長いので、全体の一部ではありませんが、主要な部分です。詳細は、尋ねるか、ページを訪れ、ソースコードを参照してください)。

ウェブサイト:http://newfutureuniversity.org/

HTML:

... 
<body> 
    <div id="container"> 
     <div class="menu" > 
      <ul> 
       <li><a href="http://newfutureuniversity.org/">New Future</a></li> 
       <li><a href="http://newfutureuniversity.org/learn/degree/">Learn</a> 
       <ul class="bottom"> 
       ... 
       </ul> 
       </li> 
... 

CSS:

body    /* Changes the style for the whole body */ 
    { 
    position:absolute; 
    margin:0px;   /* Avoids margin in the whole page */ 
    padding:0px; 
    border:0px; 
    background-color: #EEEEEE; /* Default background color, light grey */ 
    height:100%;   /* Vertically complete */ 
    width:100%; 
    min-width:400px; 
    min-height: 100%; 
    color: #333;   /* Letters color */ 
    } 

#container   /* The container has the header, main and footer inside */ 
    { 
    position:relative; 
    margin:0px; 
    padding:0px; 
    min-height: 100%;  /* Avoids the footer to go up */ 
    height: auto !important; 
    height: 100%; 
    margin: 0px auto -51px; 
    } 
.menu 
    { 
    position: fixed; 
    top:0px; 
    left:0px; 
    opacity:0.3; 
    filter:alpha(opacity=30); /* For IE8 and earlier */ 
    width:100%; 
    min-width:400px; 
    border:none; 
    border-bottom:1px solid gray; 
    margin:0px; 
    padding:0px; 
    font-size:18px; 
    z-index:3; 
    } 

.menu ul 
    { 
    background:#DDD; 
    height:26px; 
    list-style:none; 
    margin:0px; 
    padding:0px; 
    z-index:3; 
    } 
    .menu li{ 
     width:24.5%; 
     min-width:93px; 
     float:left; 
     padding:0px; 
     margin: 2px 0px 2px 0.5%; 
     } 
... 

EDIT: あなたがunmaximizeすると、デスクトップのブラウザで問題を見るためにズームする必要があります。

+0

私が最大化して300%にズームしても、Windows 7とIE9でそれが起こっているのを見ないでください。あなたは問題の写真を投稿できますか? – Jawad

+0

ここに追加された問題の画像:http://oi40.tinypic.com/2eqc104.jpg –

答えて

0

私は、あなたが2行に分割することによって何を意味するかは特に分かりません。私はFirefox、Chrome、IE、Opera、iPhoneであなたのサイトを見てきましたが、問題を再現できませんでした。メニューは単にスクリーンからオーバーフローし、最終アイテム "Get In"のために表示されません。私はあなたが設計上の問題を抱えているかもしれないことを恐れる。私はあなたに「ワンサイトフォーオール」を構築することを勧めませんが、視聴者をターゲットにしています。

あなたの希望する解決策は、あなたのメニューデザインでは比較的困難です。固定/絶対位置で作業し、ウィンドウ/スクリーンビューに相対的に配置します。あなたが画面をズームすると、Webページ上で「浮動小数点数」が表示されますが、絶対配置されたオブジェクトの位置は画面(ページではない)に相対的であり、移動しません。

スケールに基づいたポジショニングの変更を可能にするjsスクリプトでこれを解決できますが、私はそれに反対します。私は同様の問題を解決しようとしていましたが、これはすぐにデバイス固有のデバッグになったのは悪夢であり、今日私たちが苦労しているブラウザの悪夢です。

ソリューションに関しては、いくつかの異なるフレームワークを調べることを強くお勧めします。最初はCSSソリューション、lessframeworkです。これは、jsを掘り下げることなく、マルチデバイス互換のレイアウトに使用する簡単なフレームワークを提供します。一方、JavaScriptが問題チェックアウトでない場合jQuery Mobile。素敵なトランジションエフェクトを使用して、作成したものと非常によく似たドロップダウンメニューを簡単に作成できます。

+0

最小高さを維持または削除すると2つの異なるエラーが発生する可能性があります。あなたが本当に他の方法でそれをチェックしたいなら、今私はそれを削除して、私が意味していたものを見ることができます。 私はlessframeworkをチェックしますが、この問題はデスクトップブラウザで最大化されずに実際にズームインされている場合にのみ発生するため、おそらくデバイスごとに分かれることになります。あなたの精巧な答えをありがとう! 編集:F5キーを押してstyle.cssを更新することを忘れないでください! –

+0

ほとんどの場合、デスクトップ版を作成し、モバイル版のみを作成する方が最適です。個々のモバイルデバイスを手助けするためには、[tera-wurfl](http://dbapi.scientiamobile.com/wiki/index.php/Main_Page)をご覧ください。これは、ディスプレイの幅や高さなどの情報を提供するのに役立ちます。 –

+0

もう一度ありがとう、それは間違いなく私に多くを助ける –