gpt4 book ai didi

css - 不可能的 CSS 布局?

转载 作者:行者123 更新时间:2023-11-28 19:05:07 25 4
gpt4 key购买 nike

我已经研究这个问题一段时间了,我很确定它无法解决。只是想我会把它扔出去看看是否有人比我更聪明(不改变标记!:)

下面的布局是一个典型的基于 css 的无表格设计,页眉和页脚使用 float 和相对定位夹在两列(内容和侧边栏)之间。

这个特殊的布局是一个 WordPress 主题,我已经围绕它设计了数十个仅使用 CSS 和图像的网站。这就是为什么我的要求是标记保持原样。

我希望“avatar”div 保持锚定在标题 div 的顶部,而不管“featured”的高度如何,并且不使用“position:fixed”或更改标记顺序。如果您复制下面的代码并将其另存为 .html 文件,您会发现它可以直接使用。但是,一旦您从“特色”中添加或减去高度,“头像”将相应地向上或向下移动。这就是挑战,无论“特色”的尺寸如何,我都需要头像保持相对于 body 的零位置。

将“侧边栏”设置为绝对定位是显而易见的解决方案,但是,它的缺点是它会搞砸内容和侧边栏(以较高者为准)下方的页脚 div 的流动。

我认为答案可能在于表格显示属性之一(因为这实际上是在侧边栏之外创建一个未合并的单元格并设置其相对于其父容器的上边距),但这是 css 的一个区域我基本上一个人呆着。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
<head>
<title>CSS Float Challenge</title>
<style>
body {margin:0;padding:0;}
.header {height:100px; background:red; width:977px; margin:0 auto;}
.main {width:977px; margin:0 auto;}
.featured {background:green;height:50px;}
.content {float:left; min-height:300px; border:1px solid #777; width:700px;}
.sidebar {background:blue; width:250px; float:right; min-height:400px}
.footer {background:gold;height:100px;clear:both;width:977px; margin:0 auto;}
.clear {clear:both;}
.avatar { width:200px; background:orange; margin-top:-150px;}
</style>
</head>
<body>
<div class="wrapper">
<div class="header">header</div>
<div class="main">
<div class="featured">featured content goes here</div>
<div class="content">content goes here</div>
<div class="sidebar">
<div class="avatar">avatar goes here. I need this to always be at the top of the screen, <b>regardless of the height of the "featured content" div</b>. Its set at 50px now and avatar rests neatly at the top. However, set it to 100 and watch avatar drop 50 (as expected with the current css)</div>
<div>This content should flow below avatar relative to avatar's height</div>
</div>
<div class="clear">&nbsp;</div>
<div class="footer">footer is here</div>
</div>
</div>
</body>
</html>

最佳答案

试试这个:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
<head>
<title>CSS Float Challenge</title>
<style>
*{margin:0;padding:0;}
body{margin:0;padding:0;}
.wrapper{width:977px;margin:0 auto;}
.header{height:100px;background:red;}

.leftColumn{float:left;width:700px;}
.featured{background:green;height:50px;}
.content {min-height:300px;border:1px solid #777;}

.sidebar {background:blue;width:250px;float:left;margin-left:27px;min-height:400px}
.avatar {width:200px; background:orange;margin-top:-100px;}

.clear {clear:both;}

.footer{background:gold;height:100px;clear:both;}

</style>
</head>
<body>
<div class="wrapper">

<div class="header">header</div>

<div class="main">

<div class="leftColumn">
<div class="featured">featured content goes here</div>
<div class="content">content goes here</div>
</div><!--.leftColumn-->

<div class="sidebar">
<div class="avatar">avatar goes here. I need this to always be at the top of the screen, <b>regardless of the height of the "featured content" div</b>. Its set at 50px now and avatar rests neatly at the top. However, set it to 100 and watch avatar drop 50 (as expected with the current css)</div>
<div>This content should flow below avatar relative to avatar's height</div>
</div><!--.sidebar-->

<div class="clear">&nbsp;</div>

<div class="footer">footer is here</div>

</div><!--.main-->

</div><!--.wrapper-->

</body>
</html>

关于css - 不可能的 CSS 布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3809408/

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