2017-08-08 4 views
-2

これは私が欲しいものです@mediaの画面単位はピクセルではないので、それは何ですか?

ブラウザが900pxより大きい場合は、ボックスを700pxにします。 ブラウザの幅が900pxより小さくなったら、ボックスを600pxにします。

@media screen and (min-width : 750px) and (max-width : 900px) { 
    .multiSelect .checkboxLayer { 
     width: 600px; 
    } 
} 
@media screen and (min-width: 900px) { 
    .multiSelect .checkboxLayer { 
     width: 700px; 
    } 
} 

私の質問は、ブラウザの幅が900pxではなく932pxでどのように分割されるのですか。 ピクセルでない場合、これらの単位は何ですか?

enter image description here

私はちょうどPhotoshopのブラウザ幅を測定しようとしましたが、それは正確に975ピクセルに分割します。

CSSは900 pxと言っていますが、Chromeは932 pxと言います。フォトショップは975 pxと言います これは本当に混乱していますか?

+0

[mcve] – Rob

+0

こんにちはRob - 通常はそうですが、 '.multiSelect .checkboxLayer'を構築するために使用したCSSは大量ですが、あまりにも多すぎますここに投稿してください。しかし、もっと簡単な例を作って他の人のために実行してデバッグするのが簡単かどうか試してみることにします。 – torbenrudgaard

+0

私たちが援助する唯一の方法です。そうでなければ、それはすべて野生の推測です。 – Rob

答えて

1

短い答え:

あなたは、親コンテナのbox-sizingプロパティをリセットしていません。


長い答え:

はこの考えてみましょう:CSSで

を、デフォルトでは、あなたが要素に割り当てる幅と高さが唯一の要素のコンテンツボックスに適用されます。要素にボーダーやパディングがある場合は、これを幅と高さに加えて、スクリーン上にレンダリングされるボックスのサイズにします。

あり、あなたが知っておくべきbox-sizingにおける二つの値について

  1. コンテンツ・ボックス

    [...]デフォルトであり、そしてあなたのデフォルトのCSSボックスを提供しますサイズの挙動。 要素の幅を100ピクセルに設定すると、要素のコンテンツボックス は100ピクセル幅になり、境界線またはパディングの幅は最終レンダリング幅に になります。

  2. ボーダーボックス

    は、[...]あなたは、幅と高さを指定する 価値のボーダーとパディングを考慮して、ブラウザに指示します。要素の幅を に100ピクセルに設定すると、その100ピクセルには境界線または埋め込みが追加され、 が追加され、その余分な幅を吸収するためにコンテンツボックスが縮小されます。 これは通常、要素のサイズをもっと簡単にします。

私は通常あり、このようなnormalize.cssなどのデフォルトプロパティの多くをリセットする多くのフレームワークであるが、私は頻繁にありません

* { 
    box-sizing: border-box; 
    padding: 0; 
    margin: 0 
} 

、このような問題を回避するために、以下で任意のCSSシートを開始それらを使用する必要性。


以下にデモを設定しました。 2つのdiv要素があります。メディアクエリもあります。

widthpxに固定されています。唯一の違いは、border-boxに設定されているbox-sizing

最初の値であり、第二は、異なるサイズでレンダリングする方法content-box

div { 
 
    width: 400px; 
 
    height: 400px; 
 
    margin: 3em; 
 
    text-align: center; 
 
    background: darkred; 
 
    border: 20px solid #131418 
 
} 
 

 
@media (max-width: 800px) { 
 
    div { 
 
    background: darkgreen; 
 
    width: 300px; 
 
    } 
 
} 
 

 
.first { 
 
    box-sizing: border-box 
 
} 
 

 
.second { 
 
    box-sizing: content-box 
 
}
<div class="first"></div> 
 
<div class="second"></div>

お知らせに設定されている場合でもwidthどちらも同じですか?

+0

私はそれを知りませんでした! - 非常に面白い - 何か新しいCoder Catを教えてくれてありがとう:-) – torbenrudgaard

+0

問題はありません@torbenrudgaard私は助けてくれることを嬉しく思っています。ありがとう! –

0

ほとんどのブラウザでスクロールバーの幅は17pxで、画面の幅には影響しません。開発ツールでFirefoxのレスポンシブデザインモードを試してみてください。

+0

どのような形、形または形であってもよい。 – Rob

+0

@Rob前にボートを見たことがないと思っていますが、ある日あなたは海岸に立っていて、遠くに浮かんでいます。あなたはあなたのバディに "前に鯨を見たことがありますか?彼は "ボートは水に浮かぶのに慣れている"と伝えています。彼はあなたの質問に答えましたか? – frattaro

+0

あなたのコメントはあなたの答えより多くの援助ではありません。 1年後にこの質問に来る人が、同じ質問で答えを探していると想像してください。 – Rob

関連する問題