gpt4 book ai didi

html - CSS 高度和宽度在父子 div 之间不一致

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

我正在尝试创建一个标题,在左侧显示标题,在右侧显示按钮列表。为了实现这一点,有一个父 #ChatHeader div,它包含两个子 div,#ChatHeaderTitle 和 #ChatHeaderControls。

由于某些原因,父 div 中 8vh 的高度与子 div 中 8vh 的高度不同。两个 div 的高度都设置为 8vh,但父 div 看起来比子 div 小。我对宽度也有同样的问题。

我确定我遗漏了一些明显的东西,但我一直在尝试我能想到的一切,但无法修复它。

我的 HTML 的简化版本:

<div id='ChatHeader'>
<div id='ChatHeaderTitle'>
Title
</div>
<div id='ChatHeaderControls'>
Controls
</div>
</div>

听到的是我的 CSS:

#ChatHeader {
width:100%;
height: 8vh;
overflow: hidden;

background-color: #000000;
color: var(--std-background-colour);
}

#ChatHeaderTitle {
height: 8vh;
width: calc(100% - 8vh);

padding:1vh;
}

#ChatHeaderControls {
height: 8vh;
width: 8vh;

float:right;
padding: 1vh;
font-size:1.5vh;
color: var(--std-background-colour);
}

最佳答案

重置内边距和边距始终是个好主意,这样您就知道自己是从零开始的。

此处的基本原理 -- 您在右侧的 div 上进行了填充,这会将 div 扩展到比您想要的更大。是的,padding 在 div 的内部是可见的,但它会根据 padding 的数量扩展 div。如果你想使用 1.5vh 的填充,你应该使你的右 div 8vh + 1.5vh = 9.5vh(或 8vh - 1.5vh = 6.5vh,这取决于什么你已经在你的盒子里了),而不是 8vh。 "By default in the CSS box model, the width and height you assign to an element is applied only to the element's content box. If the element has any border or padding, this is then added to the width and height to arrive at the size of the box that's rendered on the screen. This means that when you set width and height, you have to adjust the value you give to allow for any border or padding that may be added."

另外,您的第二个 div 向右浮动,但您的第一个 div 没有向左浮动——所以您的 float 不太正确。如果您将左浮动添加到左 div,则右浮动 div 将得到尊重。

我在下面提供了适合您的代码。但是,如果我是你,我会考虑将其转换为网格布局,而不是 float div——它最终会让你的生活更轻松。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
body, #ChatHeader, #ChatHeaderTitle, #ChatHeaderControls {
padding : 0px ;
margin : 0px ;
}
#ChatHeader {
width:100%;
height: 8vh;
overflow: hidden;
background-color: #000000;
}
#ChatHeaderTitle {
height: 8vh;
width: calc(100% - 8vh);
background-color : pink ;
padding:0vh;
float : left ;
}
#ChatHeaderControls {
height: 8vh;
width: 8vh;
background-color : blue ;
font-size:1.5vh;
float : right ;
}
</style>

</head>
<body>
<div id='ChatHeader'>
<div id='ChatHeaderTitle'>
Title
</div>
<div id='ChatHeaderControls'>
Controls
</div>
</div>
</body>
</html>

关于html - CSS 高度和宽度在父子 div 之间不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54812504/

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