4

体のleft: 0に到達したいのですが、相対位置の中にいます。コンテナクラスを変更せずにこれを行う方法はありますか?

私はクリアのようなものを探しています:両方のフローティングオブジェクト。

html:

<div class="container">
    <div class="absolute">Content</div>
</div>

スタイル:

.container {
    position: relative;
    left: 100px; /*or any other value*/
}

.absolute {
    position: absolute;
    left: 0;
}
4

4 に答える 4

6

あなたが求めているのは、相対包含ブロック内の絶対位置要素の意図された使用法に違反しています。CSS2仕様は次のように述べています:

親の外側のボックスは実際にはオフセットされていませんが、その 'position' プロパティを 'relative' に設定することは、そのボックスが配置された子孫の包含ブロックとして機能する可能性があることを意味します。

あなたが求めていることを行う方法はハックであり、(a)階層をそのままにする必要がある理由、または(b)包含ブロックを相対的に配置する必要がある理由のいずれかを再考する必要があります。

于 2013-08-06T20:07:59.687 に答える
0

この問題を解決できた方法は、キーワード「initial」を使用することでした。これにより、すべてのプロパティがデフォルト値に復元されます。

#yourElement {
  position:initial;
}

詳細については、https: //www.w3schools.com/cssref/css_initial.asp および https://www.w3schools.com/cssref/pr_class_position.aspを参照してください 。

于 2019-07-22T06:38:10.970 に答える
0
.container {
    position: relative;
    left: 100px; /*or any other value*/
    overflow: visible
}

.absolute {
    position: absolute;
    left: 0;
}
于 2015-12-03T08:34:54.437 に答える