css - 子 div 溢出父 div 负边距顶部
问题描述
我在div
parent中为 child 添加了负边距div
。一切正常,直到我添加了负边距,现在title
div 不会居中而是溢出。这可能是我没有看到的基本 CSS 错误,但无论我到目前为止尝试了什么,它都没有成功。
我认为问题在于它看到的元素比它大,而不是由于溢出。我尝试将 a 添加min-height
到父 div,然后尝试使用 flexbox 将其居中,但这并没有将其居中,因为它看到的父元素比它大。
修复此溢出的最佳方法是什么,以使它们title
div
完美地对齐在 的中心container
div
,但同时当content
div 出现时,它们都在 的中心对齐container
div
?预先感谢您的任何帮助。
var container = document.querySelector(".container");
container.addEventListener("click", function(e) {
[...container.querySelectorAll(".content")].forEach(ele => ele.classList.toggle("show"));
});
* {
box-sizing: border-box;
}
.container {
background: gray;
padding: 1rem;
height: auto;
display: flex;
flex-direction: column;
}
.container .title {
background: blue;
z-index: 20;
height: 50px;
}
.content {
display: block;
max-height: 0;
overflow: hidden;
background: lightgray;
opacity: 0;
transition: margin 2s;
margin-top: -20px;
}
.show {
transition: 0.5s;
max-height: 100%;
overflow: visible;
opacity: 1;
margin-top: 0px;
animation: slidein 2s;
}
<div class="container">
<div class="title">
Some random title text.
</div>
<div class="content">
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
</div>
</div>
解决方案
它是您正在寻找的解决方案吗?我取消并添加max-height: 0
到content
flexbox
title
var container = document.querySelector(".container");
container.addEventListener("click", function(e) {
[...container.querySelectorAll(".content")].forEach(ele => ele.classList.toggle("show"));
});
* {
box-sizing: border-box;
}
.container {
background: gray;
padding: 1rem;
height: auto;
display: flex;
flex-direction: column;
}
.container .title {
background: blue;
z-index: 20;
height: 50px;
display: flex;
justify-content: center;
align-items: center;
}
.content {
display: block;
overflow: hidden;
background: lightgray;
opacity: 0;
transition: margin 2s;
margin-top: -20px;
}
.show {
transition: 0.5s;
max-height: 100%;
overflow: visible;
opacity: 1;
margin-top: 0px;
animation: slidein 2s;
}
<div class="container">
<div class="title">
Some random title text.
</div>
<div class="content">
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
</div>
</div>
推荐阅读
- c# - Active Directory:是否可以将项目添加到 SearchResultCollection
- sql - 我如何使用子查询来获取这里的总价?
- django - 我的登录视图一直说“使用此电子邮件的用户已经存在”。
- phpmailer - PHPMailer:我如何在纯文本版本中保留链接?
- .net - Assembly.Load 在测试用例中失败(强命名验证也失败)......为什么?
- swift - 如何在 Swift 中将 http 转换为 https URL?
- swift - 视觉格式语言并因特征而异
- java - 实现类的实例
- mongodb - 将本地 Meteor MongoDB 导入到 DigitalOcean Ubuntu 服务器
- reactjs - 浏览器窗口中的电子高度未传播