【问题标题】:Changing margin-top responsively响应式更改 margin-top
【发布时间】:2017-10-18 22:11:09
【问题描述】:

我正在尝试格式化 HTML DIV,以便根据 div 的高度响应地设置 margin-top:jsfiddle

包装器内还有另一个 div,它设置了 display: none,但是当用户输入错误的密码时它可能会改变。问题是,当 display: content 设置为第二个 div 时,下面有一个 div 会被向下推。我希望页面的内容响应地向上而不是向下。

现在怎么样了:

应该如何:

【问题讨论】:

  • 你能快速画出你现在得到的和你想要的吗?
  • 当然,查看已编辑。问题是,当内容足够大以拉伸页面时,我希望 margin-top 做出响应。
  • 您所描述的内容听起来像是您试图让事物在视图中垂直居中,而不是随着更多内容的显示而使事物向下移动。是这样吗?如果是这样,只需使用内容居中的 flexbox 容器,而无需考虑上边距。
  • 好吧,我们需要确保它可以在 IE10 上运行,所以 flexbox 不是很好用。
  • IE10 部分支持 flexbox。当然存在一些错误,但您可以解决这些问题。

标签: css


【解决方案1】:

鉴于您的示例、您的目标以及您因 IE10 而避免使用 flexbox 的偏好,我认为您最好的选择是使用 display:table 来处理此容器。

这样,您就可以在“table-cell”中使用vertical-align 属性。

检查下面的示例。我添加了一个切换按钮来显示/隐藏您的验证码以进行演示。 可能需要全屏查看以获得效果。

$("#toggle").on('click', function() {
  $(".captcha").toggle();
});
html,body {
  height: 100%;
}
.outer-wrapper {
  height: 100%;
  width: 100%;
  background: #eeeeee;
  display: table;
}

.inner-wrapper {
  height: 100%;
  width: 100%;
  display: table-cell;
  vertical-align: middle;
  height: inherit;
}

.login-wrapper {
  background-color: #172238;
  color: white;
  width: 200px;
  text-align: center;
  height: auto;
  display: block;
  margin: 0 auto;
}

.captcha{
  margin-top: 250px;
  display: content; // This one changes
}

.homologation-line {
  min-width: 200px;
  background-color: #ffd800;
  color: black;
  text-align: center;
  height: 30px;
}

#toggle {
 position: absolute;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="toggle">toggle captcha</button>
<div class="outer-wrapper">
  <div class="inner-wrapper">
      <div class="login-wrapper">
        <p>Login</p>
        <div class="captcha">
          ENTER THE DIGITS:
        </div>
    </div>
    <div class="homologation-line">
       HOMOLOGATION
    </div>
  </div>
</div>

【讨论】:

  • 你能像这样改变另一个元素的确切边距顶部吗?
  • 我不确定你在问什么。像这样的解决方案的重点是将内容集中在一个区域中,以便无论大小如何,用户始终可以看到它,这样您就不必依赖诸如边距和断点之类的东西。因为在采用这种方法时,您依赖的是假设。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-21
  • 2011-09-19
  • 1970-01-01
  • 2013-07-16
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
相关资源
最近更新 更多