私はしばらくの間プロジェクトに取り組んでおり、emを使用していると、長さを表現すると、事実上のユニットとなりました。CSSメディアでEMを使用する方法JavaScriptイベントと一致するクエリ?
普段進行方法は、所望のPXサイズと1EMに他のすべての要素に体とHTML要素を設定することです。その後、残りはすべてemにあります。今朝までこれは良い計画のように思えました。のメディアクエリは、ベースのボディとhtmlpxの値を考慮していないようです。実際には、ブラウザのデフォルトのフォントサイズを使用するように見えますが、これは非常に奇妙な動作です。私もこれを確認していると思われるthis articleが見つかりました。
私は、まさにこの挙動を示している小さなJsFiddle例行っている:実験はシンプルで、デフォルトではテーブルが50emまで「」の値を示して
https://jsfiddle.net/5dq3kq2t/2/
html, body {
font-size: 20px;
}
* {
font-size: 1em;
}
#divOf50Em {
width: 50em;
border: solid 1px red;
}
#cell2 {
display: none;
}
@media screen and (min-width: 50em) { /* 1000px, in theory (50 * 20px) */
#cell1 {
display: none;
}
#cell2 {
display: table-cell;
}
}
を分の幅メディアサイズが満たされています。値「」が表示されます。また、サイズが50emのdivを配置し、動作をトリガーするタイミングを示し、CSSがメディアクエリーの外で動作することを確認しました。
あなたは、この実験の出力のサイズを変更する場合は、2つの値の間のずれが50em * 20ピクセルある1000px値で起こるが、それは、それはで行わないことを期待します800px50em * 16px(デフォルトのブラウザfont-size - これがデフォルトのサイズの場合は)。
私ははっきりとこれがなぜ起こるかがわからないんだけど、私は二つの質問があります。
- をこれを回避する方法があります(たとえば、CSSの観点から、デフォルトのブラウザのフォントサイズ を上書き)
- ない場合JavaScriptのブラウザのデフォルトの フォントサイズにアクセスする方法はありますか?私はこの情報を見つけることができませんでした。
それ以外の場合は、メディアの幅とEM Sを使用した場合、我々は、ブラウザのフォントサイズは、常にに16pxになることを頼ることができないので、いくつかの行動のためのメディアクエリで整列されるだろうスクリプトが不可能であるように見えます。
これが当てはまる場合、私の最後の質問は、メディアクエリとJavaScriptをピクセルに戻さずに整列させる方法でしょうか?私は静的なピクセルより相対的な単位を好む、彼らは通常、スタイリングをはるかに簡単にします。より多くの研究の後
Questiオンです? '1em'は' 16px'と同じです – guest271314
@ guest271314あなたが上書きしない場合、私のJsFiddleをチェックしてください。 CSSの観点から16pxを上書きできますが、ブラウザの設定の観点からも上書きできます。 –
問題点は何ですか? – guest271314