私はcssに不慣れです。 div要素の位置を絶対に変更すると、div要素の幅が変わるのはなぜですか? Chrome v25.0.1364.172mとIE9で試してみましたが、どちらも同じ結果になります。
簡単な例:
<!doctype html/>
<html>
<head>
<title>test</title>
<style>
div {
position:relative;
border-width: 1px;
border-style: solid;
border-color: black;
}
</style>
</head>
<body>
<div>test</div>
</body>
</html>
絶対配置された要素はブロックレベルの要素として動作せず、通常のa
<div>
doesのように次々に流れないためです。
含まれているものに応じて、絶対位置にあるdivの幅と高さを設定する必要があります。
絶対的に配置された要素は、それが含まれる最初の親要素を基準にして配置されます。したがって、簡単な例:
単純な「落とし穴」は、親要素にposition: relative;
を持つように設定していません
<!-- I'm a parent element -->
<div style="width: 500px; height: 500px; position: relative; border: 1px solid blue;">
<!-- I'm a child of the above parent element -->
<div style="width: 150px; height: 150px; position: absolute; left: 10px; top: 10px; border: 1px solid red;">
I'm positioned absolutely to my parent.
</div>
</div>
絶対位置を指定する要素は、親から幅を取り、ブロック要素として動作しなかったためです。
SMacFadyenが言ったように、最も可能性の高い原因はcontainer
の相対的な位置が欠落していることです。ただし、container
が相対位置にあり、幅が狭く、inner
コンテンツが絶対位置にある場合、左または右を使用して内部コンテンツを配置すると、そのコンテンツが複数行に分割されることがあります。このシナリオでは、 white-space
property をnowrap
またはニーズに適した他のオプションに変更する必要があります。