gpt4 book ai didi

html - 定位的 Div 布局问题

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

我有以下 HTML 片段:

<body>
<div class="main">

<div class="topBar">
<p>testing</p>
</div>

<div class="content">

<div class="broadcastBar">
<p>testing</p>
</div>

<div class="mainBody">
<p>more testing</p>
</div>

</div>

</div>
</body>

这是我的 CSS:

div.main {

}

div.topBar {
background-color: Black;
color: White;
height: 50px;
width: 100%;
position: absolute;
top: 0px;
left: 0px;
}

div.broadcastBar {
background-color: Gray;
width: 300px;
position: absolute;
right: 0px;
top: 0px;
height: 100%;
}

div.content {
background-color: Yellow;
position: absolute;
width: 100%;
top: 50px;
left: 0px;
height: 100%;
}

我的问题是这样的。正如您从标记和 CSS 中看到的那样,我正在尝试使用 div s 是屏幕的部分。但是因为<div class="content" />有一个 positionabsolute , 它导致 div 被推到浏览器窗口下方 50px (这是相对于 topBar 的)。

我试过使 content div不必是位置 absolute , 但一切都只是插入 div到处都是div边缘不再相互齐平或与浏览器窗口齐平。

知道我可以做些什么来缓解我的问题吗?

编辑

添加了所需的输出:此屏幕截图目前是上述标记和 CSS 呈现的内容。这就是我想要的(大部分情况下,没有扩展/滚动条效果)。我想要我的 divs彼此齐平并与浏览器窗口齐平。

如果不通过 absolute,最好的方法是什么?定位?

enter image description here

最佳答案

您将要学习的是使用 float 的一些标准格式化实践。

使用绝对定位你的元素从长远来看会伤害你。如果您的所有元素都使用 float ,您将能够更好地控制它们的外观。

例如:

div.topBar {
background-color: Black;
color: White;
height: 20%;
width: 100%;
float: left;
}

div.broadcastBar {
background-color: Gray;
width: 70%;
height: 80%;
float: left;
}

div.content {
background-color: Yellow;
width: 30%;
height: 80%;
float: left;
}

@编辑:

所以您有 3 个 div,您需要按顺序堆叠它们。

<div class="header">headerdiv</div>
<div class="left">leftdiv</div>
<div class="right">rightdiv</div>

Float 遵循此顺序,因此通过使用这些属性,元素将根据空间限制被迫一个接一个地落下:

div.header {
background-color: Black;
color: White;
height: 20%;
width: 100%;
float: left;
}

div.left {
background-color: Gray;
height: 80%;
width: 70%;
float: left;
}

div.right {
background-color: Yellow;
height: 80%;
width: 30%;
float: left;
}

@问题:

因此,如果您需要使用像素测量,那么您需要将所有元素封装在另一个容器中,该容器的最大宽度和高度将与您的布局相同。

<div class="container">
<div class="header">headerdiv</div>
<div class="left">leftdiv</div>
<div class="right">rightdiv</div>
</div>

div.container{
height: 100px;
width: 100px;
float: left;
}

div.header {
background-color: Black;
color: White;
height: 20px;
width: 100px;
float: left;
}

div.left {
background-color: Gray;
height: 80px;
width: 70px;
float: left;
}

div.right {
background-color: Yellow;
height: 80px;
width: 30px;
float: left;
}

关于html - 定位的 Div 布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9438772/

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