【问题标题】:Why is my second div on the same line ignoring margin-right?为什么我在同一行的第二个 div 忽略了边距?
【发布时间】:2016-04-07 22:18:02
【问题描述】:

在搜索问题后,我设法让我的两个div 一直在同一行。但是现在,我的第二个div 拒绝遵循父divmargin-right 规则。所以我将它添加到div 本身,它仍然忽略它。我以为是text,但这似乎并不重要。我已经尝试为第二个div 删除width,这很有效,但是它太拥挤了。基本上,我希望我的div 与浏览器的size 一起缩放,我使用两个div 的百分比,但右边的div 拒绝缩小到某个点。 overflow:hidden 好像也没有效果。

这是我正在尝试制作的页面。 project

父级:

.split {
    margin: 0px 75px 15px 75px;
    height: 300px;
    position: relative;
    overflow: hidden;
}

还有子 div:

#pow {
    width: 50%;
    display: inline-block;
    margin-right: 15px;
}

#foundhome {
    width: 38%;
    display: inline-block;
    position: absolute;
    margin-left: 0;
}

编辑:再次查看我的东西后,似乎我可能在某个地方犯了错误。尽管给出的答案在某种程度上确实有效。我会慢慢重新添加片段,看看我哪里出错了。

【问题讨论】:

  • 请在您的问题中添加一些代码
  • 我了解您想要实现的目标,但不幸的是,您设置所有 DIV 的方式不是正确的方式。这在技术上并没有错,但这是一种不好的做法。设置布局的正确方法是使用浮动。这是一个视频,可以帮助您更好地了解 float youtube.com/watch?v=AyrQR7SxAq8
  • 在弄清楚如何将它们保持在同一条线上之前,我将它们作为浮点数,但我不喜欢它们的行为方式。为什么不使用浮点数是不好的做法?我的其他 div 有什么问题?

标签: html css


【解决方案1】:

在 CSS 中查看关于 Box Model 的本教程。

本质上,您遇到的问题是因为width 属性指的是元素的内容宽度。它不考虑边距、填充或边框,因此当您添加这些值时,您必须在设置的宽度中考虑这一点。

如果您认为这很糟糕,并且想在设置宽度时考虑整个盒子模型,请参阅 Here 说明如何使用 box-sizing CSS3 设置将填充和边框包含在总宽度,但它不适用于margin,它总是在元素宽度之上计算(因为它描述了元素周围应该保持清晰的区域)。

【讨论】:

  • 那么,如果我有正确的宽度百分比,无论浏览器如何变化,它都会保持不变?我以前见过这种东西,但我不确定它做了什么,所以我可能会试一试。另外,我如何拥有它不是一个理想的方式?使用浮点数真的会更好吗?
  • 如果你说width: 50%,元素的内容区域将占据屏幕宽度的50%。元素占用的 总面积 将是 50% + 您拥有的任何边距 + 您拥有的任何边框 + 您拥有的任何填充。对于您的链接,因为您的左右边距为75px,所以总宽度将为50% + 150px。 px 值和 % 值的混合可能会导致极端情况下的不良行为(例如,考虑您的屏幕宽度为 300px 的情况),但它只需要像您需要的那样灵活:不要让它变得复杂你不需要。
  • 关于“更好”、“理想”以及是否使用floatThis。它总是相对的,而且总是取决于你想要做什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 2017-02-16
  • 2017-11-07
相关资源
最近更新 更多