我正在尝试进行媒体查询,以便使用Flexbox在另一侧下方显示输入.正如您所看到的,使用我当前的代码,我得到了这个:
但是,如果我将flex-direction更改为column,则输入宽度不是原始宽度.这是结果:
这是我的HTML:
<div id="mc_embed_signup">
<form action="//eliasgarcia.us8.list-manage.com/subscribe/post?u=55cf7078733f0b62eb97733e3&id=ace40b1824" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div id="mc_embed_signup_scroll">
<label for="mce-EMAIL">No te pierdas ningún artículo</label>
<div class="mc-wrapper">
<input type="email" value="" name="EMAIL" id="mce-EMAIL" placeholder="Correo electrónico" required>
<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
<div style="position: absolute; left: -5000px;" aria-hidden="true">
<input type="text" name="b_55cf7078733f0b62eb97733e3_ace40b1824" tabindex="1" value="">
</div>
<div>
<input type="submit" value="Suscríbete" name="subscribe" id="mc-embedded-subscribe" class="button">
</div>
</div>
<div class="mc-error">
</div>
</div>
</form>
</div>
这是我的CSS:
#mc_embed_signup {
label {
font-size: 2em;
font-weight: bold;
display: block;
text-align: center;
}
.mc-wrapper {
display: flex;
justify-content: space-between;
padding: 30px 0px 0px 0px;
}
#mce-EMAIL {
width: 100%;
margin: 0px 30px 0px 0px;
border: 2px solid $medium-grey;
border-radius: 4px;
text-indent: 20px;
}
.button {
margin: 0px auto;
cursor: pointer;
}
}
为什么会这样?
注意:我不能提供一个小提琴,因为这是与MailChip的集成,所以它调用一个JS脚本,它在Fiddle上不能正常工作,我不知道为什么……但是脚本不会添加任何额外的类,只有上面的那些.
最佳答案 具有flex-direction:flex(display:flex的默认值)的flex父级的flex子级将是相等的高度.因此,由于你的左输入是.mc-wrapper的直接子项,它的高度将等于它旁边项目的高度,这将导致输入的高度增加,因为右边的flex子项更高.
当您切换到flex-direction:列时,您不再有相邻的子节点,并且flexbox不会尝试匹配高度,因此输入将是自然的任何高度.