2017-07-07 69 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