1

私の理解では、絶対配置された要素は、上または左が指定されていない場合(「レイアウト」スペースを占有しないことを除けば)、通常どおりあるべき場所にあるべきです。しかし、このリンクでは、margin-top:10px; があるようです。設定。

<table>
    <tr>
        <td>
            <div>default position</div>
        </td>
        <td>
            <div style="position: absolute;">absolute position</div>
        </td>
    </tr>
</table>

div
{
    border: red 1px dotted;
}
td
{
    border: green 1px solid;
}

誰かがこれを説明できますか?

4

3 に答える 3

2

理由は簡単です。仕様によると、absolute配置された要素はドキュメント フローの外側にあり、 「それを含むブロックに関して」配置されます。したがって、位置を指定しなくても、セルの左上隅がtdセルの中央に配置されます。

この例では、 と を使用topleftて移動します。

于 2012-10-15T14:52:25.633 に答える
2

td-elements のデフォルトの valign は center であるため、絶対位置の要素は中央に垂直に配置されます。デフォルトでは左上隅に配置されるため、コンテナの垂直方向の中央に左上隅が配置されます。

絶対配置要素を含む td-element に valign="top" を設定すると、「マージン」が消えることがわかります。

于 2012-10-15T14:48:59.757 に答える
-2

余分なマージンが追加される理由はわかりませんが、それを修正する簡単な方法は、top: 0px;またはのように位置を設定することですtop: 10px;

于 2012-10-15T14:35:32.720 に答える