10

ブラウザのフォントサイズを検出することはできますか? また、ユーザーがメニュー選択からフォント サイズを変更したときに、新しいフォント サイズを無効にすることは可能ですか? みんな助けてくれてどうもありがとう。よろしくお願いします。

4

6 に答える 6

9

ブラウザのフォントサイズを検出することはできますか?

一種ですが、めったに良い考えではありません。<body> にフォント サイズが設定されておらず、干渉するルール (「body div」など) がないと仮定します。

var measure= document.createElement('div');
measure.style.height= '10em';
document.body.appendChild(measure);
var size= measure.offsetHeight/10;
document.body.removeChild(measure);

サイズは 1em のピクセル単位で表示されます。

また、ユーザーがメニュー選択からフォント サイズを変更したときに、新しいフォント サイズを無効にすることは可能ですか?

直接ではありませんが、上記のようなメジャー関数を頻繁にポーリングできます。IE では、CSS 式 () のチェックをオフにすることができます。これは、フォント サイズが変更されたときに再計算されるためです (他の多くの場合)。 )とにかく非推奨です)。

于 2009-04-11T13:51:05.163 に答える
3

私は同じことが必要でした。ここで私は最良の答えを見つけました。

https://developer.mozilla.org/en-US/docs/DOM/window.getComputedStyle

于 2013-01-08T09:06:35.497 に答える
3

私の知る限り、調べる方法はありません。デフォルトのサイズが標準の 16 ピクセルであると仮定します。

ベスト プラクティスは、すべてのフォント サイズを em で設定し、ベース フォント サイズに応じてスケーリングすることです。

ほとんどの人は基本フォントを 10 ピクセルに設定して、ems での作業を容易にしています。

16px = 1em

p {
    font-size:2em;
}

それは32pxに相当します


10px = 0.625em

body {
    font-size:0.625em;
}

p {
    font-size:2em;
}

これは 20px に相当します。

お役に立てば幸いです。

于 2009-04-11T14:49:09.690 に答える
2

短い答えはノーです。ただし、ユーザーのフォントサイズに応じて、さまざまな要素にさまざまなサイズを配置したいと考えています。その場合は、現在のフォント サイズを基準として定義されている「em」で CSS ルールを指定する方法を検討してください。

于 2009-04-11T12:02:06.223 に答える
0

テキストサイズの変更を監視する私の動機は、要素の高さ(または幅)を動的に変更して、ページ全体がブラウザウィンドウのスクロールバーを必要としないようにすることです。通常、これを行うと、サイズ変更イベントに応答しますが、フォントサイズの変更も計算に影響を与える可能性があります。実際のフォントサイズはあまり気にせず、いつ変更されるかを知る必要があります。

これが私が使用するjQueryコードです。これは、bobinceによって提案された解決策に似ています。divの高さなどを更新するサイズ変更機能があります。

$(window).resize(resize); // update when user resizes the window.

$("body").append("<p id='textSizeReference' style='display:none;padding:0'>T</p>");
var refTextHeight = $("#textSizeReference").height();
setInterval(function() {
    var h = $("#textSizeReference").height();
    if (h != refTextHeight) {
        refTextHeight = h;
        resize(); // update when user changes text size
    }
}, 500);

これがlocation.hashの変更をポーリングするajaxアプリの場合、テキストサイズの変更に同じポーリング関数を使用できます。

于 2009-08-10T16:15:13.137 に答える
0

これは、IE でドキュメントの現在のフォント ファミリを検出するのにうまく機能することがわかったものです。

document.documentElement.currentStyle["fontFamily"]

Firefox/Opera の場合:

指定された特定の要素の css スタイルを返すことになっている getComputedStyle というメソッドがありますが、ドキュメント全体でそれを取得する方法はまだわかりません。

これが多少役立つことを願っています!

于 2011-07-07T11:53:09.153 に答える