gpt4 book ai didi

html - 将子 DIV 拉伸(stretch)到父级的高度(没有硬编码高度)

转载 作者:搜寻专家 更新时间:2023-10-31 21:52:33 25 4
gpt4 key购买 nike

我有一个父 DIV 和一个子 DIV,我想将其延伸到父 DIV 的底部。目前它没有,尽管有 height:auto!important; 可以看到说明该问题的屏幕截图 here .

相关HTML(作为Jade模板)如下:

    .main.top0
.infoPanel.koneksa_bg_blue
.innerPanel.mtop0.mbottom0
.infoCaption.font8em.koneksa_white 404
.infoCaption.koneksa_white We can't find the page you are looking for
.infoCaption.koneksa_white
| Don't worry. Just try to go back or
a.koneksa_white.underline(href='/') home
.footer.stickyBottom.koneksa_bg_gray.koneksa_fg_light_gray

main DIV 是父级,infoPanel 是我正在努力拉伸(stretch)的子级(上图中蓝色部分)。

对应的CSS如下:

.main {
width:100%;
min-height:700px;
height:auto!important;
overflow: hidden;
z-index: 1;
top:3em;
position: relative;
}
.infoPanel {
width:100%;
height:auto!important;
display: block;
padding:0;
}
.innerPanel {
width:90%;
padding:40px 0;
height:auto!important;
margin:0 5%;
display: block;
}

我知道这是一个相当常见的问题,但答案似乎总是包含硬编码的高度。我想避免这种情况,因为虽然这是桌面样式的完美解决方案,但它旨在显示在移动设备上,因此我希望它比硬编码的高度更具响应性。

感谢您提供的任何见解。

编辑:

根据请求生成的 HTML:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html"></html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale = 0.8, user-scalable = yes">

// Imports removed

<link href="/assets/css/mvp.css" type="text/css" rel="stylesheet" media="screen and (max-width: 768px)">
<link href="/assets/css/mvp_wide.css" type="text/css" rel="stylesheet" media="screen and (min-width: 769px)">
</head>
<body class="tk-futura-pt koneksa_gray">
<div class="fullNav koneksa_bg_white boxShadow">
<div class="centerPanel">
<div class="mleft2 left khmoniker"></div>
<div class="menu right"><a href="/login" class="right mright2 menuItem">customer login</a></div>
</div>
</div>
<div class="main top0">
<div class="infoPanel koneksa_bg_blue">
<div class="innerPanel mtop0 mbottom0">
<div class="infoCaption font8em koneksa_white">404</div>
<div class="infoCaption koneksa_white">We can't find the page you are looking for</div>
<div class="infoCaption koneksa_white">Don't worry. Just try to go back or <a href="/" class="koneksa_white underline">home</a></div>
</div>
</div>
<div class="footer stickyBottom koneksa_bg_gray koneksa_fg_light_gray">
<div class="innerPanel">
<div class="caption left">
<h5 class="konekea_blue_gray mtop2">&copy; template-filler</h5>
<div class="kh_reverse_logo mtop2"></div>
</div>
<div class="caption right"><a href="/terms.html" target="_blank" class="konekea_blue_gray mtop2">Terms</a><a href="/privacy.html" target="_blank" class="konekea_blue_gray mtop1">Privacy</a><a href="/" target="_blank" class="konekea_blue_gray mtop1">Corporate</a></div>
</div>
</div>
</div>
</body>

最佳答案

一种适用于所有现代浏览器的解决方案是执行以下操作:

html, body {
height: 100%
}

.main {
position: absolute;
top: 3em;
bottom: 0;
width: 100%;
}

这似乎是一个不寻常的解决方案,但现代浏览器实际上会尊重同时定义的所有 4 个边,并拉伸(stretch)元素以匹配。这是一个 jsFiddle 示例:http://jsfiddle.net/nqt7vqs1/2/

您也可以对所有子元素执行相同的操作,因为为了定位子元素,position: absolute 意味着 position: relative。

如果此解决方案不起作用,另一种选择是执行以下操作:

html, body {
height: 100%
}

.main {
position: absolute;
top: 0;
height: 100%;
margin: 3em 0 -3em 0;
overflow: hidden;
}

这是一种“隐藏边距”技巧,也适用于所有现代浏览器。使用这些设置的相同 Fiddle:http://jsfiddle.net/nqt7vqs1/3/

关于html - 将子 DIV 拉伸(stretch)到父级的高度(没有硬编码高度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28307186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com