Css 具有绝对位置的子级具有完整的父级高度
正在尝试重新创建此布局: 问题是黑盒子上面的白盒子。我不知道黑匣子的高度。如何在其他框的顶部创建白色框 这是我的代码: HTML 我必须绝对定位.formbox,使其不会干扰flex container.container中的其他flex项。但结果是它没有高度Css 具有绝对位置的子级具有完整的父级高度,css,flexbox,Css,Flexbox,正在尝试重新创建此布局: 问题是黑盒子上面的白盒子。我不知道黑匣子的高度。如何在其他框的顶部创建白色框 这是我的代码: HTML 我必须绝对定位.formbox,使其不会干扰flex container.container中的其他flex项。但结果是它没有高度 我怎样才能给登录覆盖提供其父级的完整高度?我可以将100%+50px边距-25px的高度添加到formbox class a中,这是您获得的x 2。您可以使用calc函数执行此操作: 当“位置”为“绝对”时,顶部、底部、右侧和左侧属性相对
我怎样才能给登录覆盖提供其父级的完整高度?我可以将100%+50px边距-25px的高度添加到formbox class a中,这是您获得的x 2。您可以使用calc函数执行此操作:
当“位置”为“绝对”时,顶部、底部、右侧和左侧属性相对于第一个父级使用“位置:相对” 所以,你不需要真正的页边顶部:-25px或页边左侧:-50px,你只需要添加页边顶部:-25px;底部:-25px;左:-25px到.formbox,您就完成了。如果您需要将其向右移动,只需添加right:XXpx并删除left或设置一个正值,如left:50% 排名:0;底部:0;
<div class="container">
<div class="formbox">[login form markup here...]</div>
<div class="box">
<h1>Don't have an account</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus dicta cumque harum.</p>
<button>SIGN UP</button>
</div>
<div class="box">
<h1>Have an account</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus dicta cumque harum.</p>
<button>LOGIN</button>
</div>
</div>
// reset
h1, h2, h3, h4, h5, h6, p, button, div {
margin: 0;
padding: 0;
line-height: 1;
}
// font
@import url('https://fonts.googleapis.com/css?family=Roboto');
// colors
$white: rgba(255,255,255,.8);
:root {
font-size: 16px;
}
body {
background-image: url(
https://picsum.photos/1200/800?);
display: flex;
justify-content: center;
align-items: center;
font-family: 'Roboto', sans-serif;
color: $white;
}
.container {
width: 900px;
margin: 50px auto;
background: rgba(0,0,0,.5);
position: relative;
display: flex;
}
.box {
padding: 5rem 3rem;
float: left;
h1, p {
margin-bottom: 1rem;
}
button {
padding: 1rem 2rem;
background: transparent;
border: 2px solid $white;
border-radius: 6px;
color: $white;
text-align: center;
font-size: 1rem;
cursor: pointer;
text-transform: uppercase;
}
}
.formbox {
width: 500px;
background: white;
margin-left: -50px;
margin-top: -25px;
box-shadow: 0 0 50px black;
display: block;
position: absolute;
}
.formbox {
width: 500px;
background: white;
margin-left: -50px;
margin-top: -25px;
box-shadow: 0 0 50px black;
display: block;
position: absolute;
height: calc(100% + 50px);
}