最近做一个标签功能,涉及到绝对定位问题,父元素设置了最小高度,当子元素高度超过父元素的最小高度时,父元素高度没有被撑开。如图所示,父元素边框的高度没有和子元素一致。
经过调研,在实际开发中,父元素的高度是由里面的子元素撑开的,而绝对定位的子元素由于脱离了父元素文本结构,所以父元素高度没有被撑开。
自适应宽高是需要以文档流布局为基础的,而绝对定位已经脱离了文档流布局了。
解决方法如下:
componentDidMount() {document.querySelector('.father').style.height = `${document.querySelector('.children').offsetHeight + 8 }px`;}
父元素的高度就和子元素的文本高度一致啦,完美解决!