3

プロパティに許容される負の値の最小値は?text-indent

サイトで奇妙に大きな値 ( のようなものtext-indent: -99999999px) を使用していましたが、前回の Google Chrome の更新で機能しなくなりました。IE はまだ正常に動作しますが、Chrome で再び動作させるには、そこからいくつかの 9 を削除する必要があるかもしれません。

免責事項:はい、この値は少し偏執的すぎます。私は楽しみのために使用し、今日テキストが画面に表示されるまで完全に忘れていました. しかし、通常提案されtext-indent: -9999pxていることは、(そうではない) 遠い将来のある時点で簡単に失敗する可能性がありますか?

4

3 に答える 3

7

安全な値はおそらく -32768pxですが、これは仕様の一部ではなく、(おそらく時代遅れの) 実装固有の従来の制限を観察したものです。

レンダリング時に CSS プロパティ値を要素に適用する前に、これらの宣言を解析して、実質的に文字列よりも操作可能で抽象的なものにする必要があります。つまり、ほとんど何でもプロパティ値として入力できます。

.a {text-indent: -999px;}
.b {text-indent: -99999999px;}
.c {text-indent: medium potato;}

最初の例は、指を交差させて、正しく解析されます。最後のものは無効であり、無視されます (中程度のポテトは現在 w3c CSS 仕様の一部ではないため)。しかし、真ん中のものは、オーバーフローすると風変わりになります(ブラウザによって割り当てられたメモリに「収まりません」)。私はフィドルをまとめました。これらはtext-indent、ブラウザーが「チョーク」してデフォルトでゼロに設定された値です。

#On OSX 10.8 Lion 64bit:
Safari 6       -2^31
Chrome 22      -2^26  #your original -99999999px would have failed here
Firefox 14     -2^70
Opera 12       -2^70

#On Win Server 2008 64bit:
Firefox 13     -2^70
Chrome 21      -2^70
IE 9           -2^70

明日、別のボックスでさらにテストを実行します。上記の結果が更新されましたが、あまり興奮していません。このフィドルを使用して独自のテストを実行することもできます。表示されたままの最初の項目には、適用されたが無視された値が表示されます。値は、使用するブラウザ/OS、およびハードウェアによって異なると想定しています。

16 ビットの符号付き整数 (-32768 から +32767 まで) の制約であるという保守的な制約を提案した偽の列のスタイリングに関する記事で、そのような制限の実際的な参照を最初に見たのを覚えています。これは、テキストだけでなく、インデント以外の長さの値。この値がさまざまなブラウザーとそのバージョンでどの程度一貫しているか、また、異なる単位で表された分数や値にどの程度適用できるかはわかりません。

于 2012-10-01T08:28:40.300 に答える
0

最小テキスト インデントはありません - 以前は数ピクセルしか使用していませんでしたが、レイアウト/デザインに使用するのは悪い習慣です。プラズマ サイズのレイアウト 99999px で表示する場合は、画面からスクロールしないようにしてください - 十分すぎるほどです - マージンを使用してくださいそれでもテキストを表示する必要があり、スタイリングに使用している場合は、パディングと位置。

于 2012-10-01T11:10:21.857 に答える
0

99999em の数値を使用して ipad サファリに問題があり、9999em に設定して修正しました。制限はないかもしれませんが、この間違いを避けるために制限する必要があります。

于 2013-03-20T13:46:26.757 に答える