2017-12-22 32 views
1

レスポンシブなWebサイトでは、HTML & CSSでコードを記述しています。私はBootstrapperフレームワークを使用します。CSSビューポートの問題:vh vs. 100%

私の問題:バックグラウンドイメージに100%を使用すると、デスクトップの画面でページの最後に到達しません(100%の高さでスケーリングされたイメージがモニタの結果よりも小さいためです)。 iPhone(Safari)では見た目が良くなります。フッターは画像の下にあります。

私はデスクトップ画面上のビューポート値100VHに結果を使用します(画像は背景を塗りつぶします)素敵に見えますが、モバイルデバイス(iPhone)に、テキストがフッターに重ならます。恐ろしいですね。

私は以下のようなソリューションを探しています:デスクトップでの使用100vh、モバイルでの使用100%。それは可能ですか?

HTML-コード:

 <section id="myid"> 
 
       <div class="myclass"> 
 
       <div class="container"> 
 
        <div class="row"> 
 
         <div class="col-md-8 opaline"> 
 
          <div class="row"> 
 
           <div class="col-md-10 col-md-offset-1"> 
 
\t \t \t \t \t \t \t \t <p>Great Content</p> 
 
\t \t \t \t \t \t \t \t </div> 
 
           </div> 
 
          </div> 
 
         </div> 
 
        </div> 
 
       </div> 
 
      </div> 
 
     </section> 
 
     
 
     <footer> 
 
      <div class="container"> 
 
       <div class="row"> 
 
        <div class="col-md-10"> 
 
\t \t \t \t \t 
 
         <p>Great Footer Content</p> 
 
        </div> 
 
       </div> 
 
      </div> 
 
     </footer>

CSS:(モバイル・ブラウザ上のOK-結果)

.myclass { 
 
    /* The image used */ 
 
    background: linear-gradient(rgba(33, 37, 43, 0.6), rgba(33, 37, 43, 0.1)), url(/images/image.jpg); 
 
    background-position: center; 
 
    background-repeat: no-repeat; 
 
    background-size: cover; 
 
    height: 100%; 
 
    padding-top: 36px; 
 
}

CSS:(デスクトップブラウザ上のOK-結果)

.myclass { 
 
    /* The image used */ 
 
    background: linear-gradient(rgba(33, 37, 43, 0.6), rgba(33, 37, 43, 0.1)), url(/images/image.jpg); 
 
    background-position: center; 
 
    background-repeat: no-repeat; 
 
    background-size: cover; 
 
    height: 100vh; 
 
    padding-top: 36px; 
 
}

私もCALC機能を果たした - ノー成功を収めて:

height: calc(100vh - 000px);
000 =フッターの高さ

+0

は両方で100%を使用し、MIN-高さ、それを作る:100VHを、結果が得られます欲しいです? –

答えて

0

私は次のようなソリューションを探しています:デスクトップでの使用100vh、モバイルでの使用100%。それは可能ですか?

ザッツあなたが探しているものを、あなたが使用できるかどうか - の規則@media CSSが1の結果に基づいてスタイルを適用するために使用することができ

- で-ルールを@media CSSをあなたのケースでは、画面サイズ以上のメディアクエリ。

はよりmdn doc

w3schools exemples are nice

編集をお読みください。私はあなたがコードを提供されているコードのCSSトリックであったものを適用css-tricks

関連するかもしれない何かを見つけ

@media only screen 
 
and (min-device-width: 1000px) 
 
and (max-device-width: 1600px) 
 
and (-webkit-min-device-pixel-ratio: 1) { 
 

 
    .myclass { 
 
     /* The image used */ 
 
     background: linear-gradient(rgba(33, 37, 43, 0.6), rgba(33, 37, 43, 0.1)); 
 
     background-position: center; 
 
     background-repeat: no-repeat; 
 
     background-size: cover; 
 
     height: 100vh; 
 
     padding-top: 36px; 
 
    } 
 
} 
 

 
@media only screen 
 
and (min-device-width: 375px) 
 
and (max-device-width: 667px) 
 
and (-webkit-min-device-pixel-ratio: 2) { 
 
    .myclass { 
 
     /* The image used */ 
 
     background: linear-gradient(rgba(33, 37, 43, 0.6), rgba(33, 37, 43, 0.1)); 
 
     background-position: center; 
 
     background-repeat: no-repeat; 
 
     background-size: cover; 
 
     height: 100%; 
 
     padding-top: 36px; 
 
    } 
 

 
}
<section id="myid"> 
 
    <div class="myclass"> 
 
     <div class="container"> 
 
      <div class="row"> 
 
       <div class="col-md-8 opaline"> 
 
        <div class="row"> 
 
         <div class="col-md-10 col-md-offset-1"> 
 
          <p>Great Content</p> 
 
         </div> 
 
        </div> 
 
       </div> 
 
      </div> 
 
     </div> 
 
    </div> 
 

 
</section> 
 

 
<footer> 
 
    <div class="container"> 
 
     <div class="row"> 
 
      <div class="col-md-10"> 
 

 
       <p>Great Footer Content</p> 
 
      </div> 
 
     </div> 
 
    </div> 
 
</footer>



編集-2-:あなたは再生の答えから

デスクトップ画面(1920x1200px resultion)

とコードで、あなたが

を使用投稿
@media only screen 
and (min-device-width: 1000px) 
and (max-device-width: 1600px)` 

試して希望resultionに '最大デバイス幅' クエリ値を変更する - 1920px(最大)


編集-3-:あなたは自分の溶液中で答えたよう

、デスクトップビューはデフォルトのものなので、解像度のピクセル範囲をデスクトップのメディアクエリから完全に取り除くと、トリックを行う可能性があります。

0

感謝をヒントが@mediaするため

私はこの "スイッチ"を作ります。 iPhone 6Sではうまく動作しますが、デスクトップ画面(1920x1200pxの結果)ではスタイルはまったく表示されません。私のミスはどこですか?

/* Mobile Device */ 
 
    @media only screen 
 
     and (min-device-width: 375px) 
 
     and (max-device-width: 667px) 
 
     and (-webkit-min-device-pixel-ratio: 2) 
 
     and (orientation: portrait) { 
 
    
 
      .myclass { 
 
       /* The image used */ 
 
       background: linear-gradient(rgba(33, 37, 43, 0.6), rgba(33, 37, 43, 0.1)), url(/images/image.jpg); 
 
       background-position: center; 
 
       background-repeat: no-repeat; 
 
       background-size: cover; 
 
       height: 100%; 
 
       padding-top: 36px; 
 
      } 
 
     } 
 

 
/* Desktop Screen */ 
 
    @media only screen 
 
     and (min-device-width: 1000px) 
 
     and (max-device-width: 1600px) 
 
     and (-webkit-min-device-pixel-ratio: 1) { 
 
    
 
      .myclass { 
 
       /* The image used */ 
 
       background: linear-gradient(rgba(33, 37, 43, 0.6), rgba(33, 37, 43, 0.1)), url(/images/image.jpg); 
 
       background-position: center; 
 
       background-repeat: no-repeat; 
 
       background-size: cover; 
 
       height: 100vh; 
 
       padding-top: 36px; 
 
      } 
 
     }

0

はこのようにそれを解決:

/* Mobile Devices */ 
 
    @media only screen 
 
     and (min-device-width: 375px) 
 
     and (max-device-width: 667px) 
 
     and (-webkit-min-device-pixel-ratio: 2) 
 
     { 
 
    \t    .myclass { 
 
       /* The image used */ 
 
       background: linear-gradient(rgba(33, 37, 43, 0.6), rgba(33, 37, 43, 0.1)), url(/images/image.jpg); 
 
       background-position: center; 
 
       background-repeat: no-repeat; 
 
       background-size: cover; 
 
       height: 100%; 
 
       padding-top: 36px; 
 
      } 
 
     } 
 

 
/* Desktop Screen */ 
 
/* Mobile Devices */ 
 
    @media only screen 
 
     { 
 
    \t    .myclass { 
 
       /* The image used */ 
 
       background: linear-gradient(rgba(33, 37, 43, 0.6), rgba(33, 37, 43, 0.1)), url(/images/image.jpg); 
 
       background-position: center; 
 
       background-repeat: no-repeat; 
 
       background-size: cover; 
 
       height: 100vh; 
 
       padding-top: 36px; 
 
      } 
 
     }

関連する問題