簡要問題:單擊下面的第一個鏈接,並說明爲什麼Chrome在右側顯示保證金(如果沒有)。相對位置塊顯示不存在右邊距
長的問題:
我想知道爲什麼谷歌瀏覽器顯示從絕對和相對定位的塊不同的圖形表示。
在絕對定位塊上,Chrome按照我的預期顯示元素。
在相對定位的塊上,元素的寬度顯示更多。它看起來像一些邊距或填充,但我從這個div零填充和邊距,它仍然看起來在Chrome Inspect工具相同。
看看相對div如何對它的寬度有一個「擴展」。
inspected relative div screenshot
在這裏,絕對DIV沒有這種 「延伸」。
inspected absolute div screenshot
這裏的地方這可以證明代碼。
.wrapper {
border: solid 1px red;
display: block;
width: 300px;
position: relative;
height: 150px;
}
.absolute-class, .relative-class {
display: block;
width: 100px;
left: 20px;
font-size: 24px;
}
.absolute-class {
position: absolute;
top: 10px;
}
.relative-class {
position: relative;
top: 30px;
}
<body>
<div class="wrapper">
<div class="absolute-class">Text 1</div>
<div class="relative-class">Text 2</div>
</div>
</body>
我很擔心這一點,因爲我覺得這個額外的「保證金」是造成我開發一個頁面上的水平滾動。所以我想明白這是什麼,才能解決這個問題。
使用
display: inline-block;
_ 「我很擔心這一點,因爲我覺得這個額外的」邊距「導致水平滾動在我正在開發的頁面上,「_ - 它不是爲包裝div設置'overflow:auto',那麼如果相對定位的元素實際上伸展得那麼遠,它會顯示滾動條 - 但它不會,所以無論實際的問題你正在努力解決,很可能不會反映在這段代碼中。 – CBroe這看起來像一個自動右邊距。如果您檢查包裝div,則可以看到類似的幻像邊距。真奇怪的是,如果你在相對位置的div上指定了一個左邊距,那麼Chrome不會重新計算這個自動右邊距 - 它仍然會計算自動右邊距,就好像左邊距是auto一樣(在左邊),同時顯示您指定的任何左邊距。我沒有暗示爲什麼Chrome會這樣做,但它是Chrome,所以我並不感到奇怪,它會拉扯這種奇怪的惡作劇。 – BoltClock
@CBroe是的,你是對的。我試着通過做你所說的來重現滾動,而且它沒有顯示任何滾動條。但在我的真實項目中,它確實影響了滾動。我只是沒有把問題隔離到足以將它帶到這裏。所以我剛來這裏問這是什麼*幻影邊緣*。 –