2

何年にもわたってCSSを実行した後でも、パーセンテージがピクセルに対してどのように計算されるかについての説明は見つかりませんでした(そして、簡単な観察では理解できませんでした)。さらに説明するには:

1つのdivで2%のマージン左が、20ピクセルになり、別のdivで30ピクセルになるのはなぜですか?幅は役割を果たしますか?この場合、それはより広いdivがより大きなマージンを持っていることを意味しますが、私の観察からはそうではありません!

これを確認してください:http://JSNAIL.IT/uLjeYSHx/。クラスcol2のdivは他のdivよりも大きいですが、同じマージン権が計算されています。(11px)

4

3 に答える 3

3

マージンのパーセンテージは、スケーリングが含まれている相対ボックスによって異なります。

したがって、ページ全体のパーセンテージを取得すると、幅が200pxのボックスに入れた場合よりも多くなります。

最後のケースの20%は40pxになります。

于 2012-05-31T10:30:17.657 に答える
2

内側の要素のマージンのパーセンテージは、外側のコンテナのサイズによって異なります。たとえば、両方の例で内部divの左マージンが20%に設定されているを参照してください。

 _______________
|    ___        |
|20%|   |       |
|   |___|       |
|_______________|
 _______________________
|      ___              |
|20%  |   |             |
|     |___|             |
|_______________________|
于 2012-05-31T10:40:24.043 に答える
1

場合によります。パーセンテージ値は、標準( CSS2.1:4.3.3パーセンテージ)に従って、属性ごとに異なる意味を持つことができます。

パーセンテージ値の形式(<percentage>この仕様ではで示されています)の<number>直後に「%」が続きます。

パーセンテージ値は、長さなどの別の値を常に基準にしています。パーセンテージを許可する各プロパティは、パーセンテージが参照する値も定義します。値は、同じ要素の別のプロパティの値、祖先要素のプロパティ、またはフォーマットコンテキストの値(たとえば、含むブロックの幅)の場合があります。ルート要素のプロパティにパーセンテージ値が設定され、そのパーセンテージが特定のプロパティの継承された値を参照するものとして定義されている場合、結果の値はそのプロパティの初期値のパーセンテージ倍になります。

たとえば、マージンは、それらを含むブロックの幅によって計算されます(CSS2.1:マージンプロパティ):

パーセンテージは、生成されたボックスを含むブロックの幅に対して計算されます。これは「margin-top」と「margin-bottom」にも当てはまることに注意してください。含まれているブロックの幅がこの要素に依存している場合、結果のレイアウトはCSS2.1では定義されていません。

間違ったボックスモデルが使用されるため、 quirksmodeはIEで多くのことを台無しにすることに注意してください。

于 2012-05-31T10:56:52.960 に答える