2017-07-07 68 views
0

如果絕對定位的元素具有明確設置的高度,如果內容高度大於提供的高度值,則元素將收縮包裹內容而不考慮高度值。高度在絕對定位表中不受尊重

#main { 
 
    width: 100px; 
 
    height: 29px; 
 
    position: absolute; 
 
    top: 20px; 
 
    left: 200px; 
 
    border: 1px red dashed; 
 
    display: table; 
 
    table-layout: fixed; 
 
    border-spacing: 0; 
 
    border-collapse: separate; 
 
} 
 

 
#child { 
 
    display: table-cell; 
 
}
<div id="main"> 
 
    <div id="child">Custom Text With Validation:</div> 
 
</div>

+1

這是真的......那麼是否有與此相關的問題? –

+0

是的,問題是,爲什麼身高值不受尊重。它是明確設置的,並將在display:block中受到尊重。看來顯示:表格和位置:絕對有一些特殊的關係? – whowhenhow

回答

0

這是不兌現其父出於同樣的原因高度我不接受max-height,從而推動該表的尺寸表的單元格。

這裏是2種方法來使這個工作,無論是在child

#main { 
 
    width: 100px; 
 
    height: 29px; 
 
    position: absolute; 
 
    top: 20px; 
 
    left: 200px; 
 
    border: 1px red dashed; 
 
    display: table; 
 
    table-layout: fixed; 
 
    border-spacing: 0; 
 
    border-collapse: separate; 
 
} 
 
#child { 
 
    position: absolute; 
 
    display: table-cell; 
 
}
<div id="main"> 
 
    <div id="child">Custom Text With Validation: 
 
    </div> 
 
</div>

設置position: absolute或增加額外的元素child內,並設置了height

#main { 
 
    width: 100px; 
 
    height: 29px; 
 
    position: absolute; 
 
    top: 20px; 
 
    left: 200px; 
 
    border: 1px red dashed; 
 
    display: table; 
 
    table-layout: fixed; 
 
    border-spacing: 0; 
 
    border-collapse: separate; 
 
} 
 
#child { 
 
    display: table-cell; 
 
} 
 
#child div { 
 
    height: 29px; 
 
}
<div id="main"> 
 
    <div id="child"> 
 
    <div>Custom Text With Validation:</div> 
 
    </div> 
 
</div>


在桌子上添加overflow: hidden也將適當的過剩 「腰斬」。

+0

有沒有解釋這種行爲的規範? – whowhenhow

+0

@whowhenhow是和不是。如果你閱讀這個,[https://www.w3.org/TR/CSS2/tables.html#table-display](https://www.w3.org/TR/CSS2/tables.html#table-display ),你會發現很多_Note。 CSS的未來更新可能會進一步說明這一點。自從迴歸之後,表格元素的規格就很弱。而且每個瀏覽器都可以和那些有些不同的解釋。 – LGSon

+0

這對我來說似乎是一個bug,因爲display:table表示塊級元素。由於高度是明確設定的,所以沒有人應該覆蓋它如果不使用包裝,我們無法控制定位表的高度。 – whowhenhow