gpt4 book ai didi

html - 将相对定位的父级扩展到绝对子级的高度

转载 作者:行者123 更新时间:2023-11-28 18:00:29 27 4
gpt4 key购买 nike

我打算有一个可变高度的页眉,中间的内容部分可以扩展到可用高度,页脚固定在底部。像这样:

layout

<html>
<body>
<header>
<h1>Bacon ipsum dolor sit amet salami</h1>

<h2>ribs tongue cow </h2>

</header>
<article>
<div class="content">content</div>
<div class="image">
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/f9/Rage_Against_The_Machine.jpg/250px-Rage_Against_The_Machine.jpg" />
</div>
<div class="clear"></div>
</article>
<footer>
<h3>read more</h3>

</footer>
</body>
</html>

CSS

body {
height:100%;
}
article {
position:relative;
overflow:hidden;
height: 100%;
background-color: grey;
}
header {
background-color:red;
}
.clear {
clear:both;
}
footer {
position:absolute;
bottom:0;
left:0;
right:0;
background-color:blue;
height:64px;
}
.content {
position:relative;
height:100%;
background-color:pink;
overflow:hidden;
max-width : 66%;
float:left;
}
.image {
float:left;
width: 34%;
position:relative;
right:0;
}

要求:

  1. Content div 应该拉伸(stretch) header 和 header 之间的可用高度页脚
  2. Content div 应该 overflow hidden 的文本(没有滚动条)。无内容应该出现在页脚下方。
  3. 页面不应该有滚动条
  4. 页脚应位于页面底部
  5. 页眉具有动态高度
  6. 图片应与内容一起显示在右侧。

据我所知,我无法将 div 的高度拉伸(stretch)到它的绝对子元素的高度,是否有任何技巧可以让我获得所需的布局?

我的问题:编辑:Samsung Galaxy S3 上的默认 WebView 浏览器不支持 flexbox,目前它实际上可以在 Chrome 上运行。

requirements

演示:http://jsbin.com/EcUwUbUf/6/edit

最佳答案

您遇到的问题来自您对 float 和绝对位置的使用。这两者都不是为这种类型的布局设计的,也不再是最佳实践。

我已经重写了下面的演示以使用 display:inline-block 这也不是为这种布局设计的,但它是解决此类问题的更好的解决方案,并且是当前最好的练习。

演示:http://jsbin.com/efEGukar/4/edit?output

flexbox 属性集是专门为这种布局设计的,是一种更好的解决方案,可以让您更好地控制网站如何响应不同的屏幕尺寸。然而,浏览器仍在添加支持,但尚未普及:see the current list here .这是 future 的最佳实践,因此如果您正在学习 CSS,请采用这种方法。

Here is a good explanation of how to use flexbox.

关于html - 将相对定位的父级扩展到绝对子级的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20536092/

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