【问题标题】:auto-width, percentages and fixed width resulting in DIV wrap自动宽度、百分比和固定宽度导致 DIV 换行
【发布时间】:2019-04-22 23:30:54
【问题描述】:

我想要一个三栏页面,其中中间的一栏具有动态宽度(窗口调整大小)和最小一栏(div #middle:min-width:400px;)。

问题是我调整大小时第三列正在换行。

我知道如果我将 #middle div width:75%; 替换为 width:500px; 这将起作用并且右列不会换行,但我将不再有动态宽度的中间列...

我如何解决这个问题?

#contentwraper {
  position: relative;
  min-width: 800px;
}

#left {
  position: relative;
  float: left;
  background-image: url("http://www.artetics.com/images/artfrontpageslideshow.png");
  background-repeat: no-repeat;
  background-position: center center;
  min-width: 128px;
  width: 12%;
  height: 128px;
}

#middle {
  position: relative;
  float: left;
  min-width: 400px;
  width: 75%;
  text-align: center;
}

#right {
  position: relative;
  float: left;
  background-image: url("http://www.emoticonswallpapers.com/avatar/art/Test-Card.jpg");
  background-repeat: no-repeat;
  background-position: center center;
  min-width: 128px;
  width: 12%;
  height: 128px;
}

.imagemiddle {
  position: relative;
  float: left;
  background-image: url("http://www.tradewindscientific.com/images/t_logo.gif");
  background-repeat: no-repeat;
  background-position: center center;
  width: 25%;
  height: 128px;
}
<div id="contentwraper">
  <div id="left"></div>
  <div id="middle">
    <div class="imagemiddle"></div>
    <div class="imagemiddle"></div>
    <div class="imagemiddle"></div>
    <div class="imagemiddle"></div>
  </div>
  <div id="right"></div>
</div>

【问题讨论】:

  • 当你说第三列是换行时,这是因为它的宽度设置为小于最小宽度吗?
  • 请在jsfiddle.net 中发帖 :)
  • 页面过大(或者窗口不够)的时候,如果想让右栏溢出到文档的右边,唯一的办法就是表格
  • @chriss :我不知道,我可以代替width:12% width:128px 它无论如何都会包装这个特定问题的唯一方法?谢谢
  • @arnaud576875 : jsfiddle.net/EDt6N 谢谢 :) 问题现在出现了!而且我宁愿不使用表格,是

标签: html css css-float


【解决方案1】:

如果页面过大(或窗口不够)时,如果希望右栏溢出到文档的右侧,唯一的解决办法就是表格。

否则,试试这个:3 columns, middle one with flexible width

您可以通过将#right 移动到#left 之后或之前来改变它的行为;或通过在#middle 上设置溢出:隐藏。

http://jsfiddle.net/3UAbN/1/

【讨论】:

  • #right before/after #left 的结果;将其浮动到右侧并溢出:隐藏导致:jsfiddle.net/EDt6N/2 仍然无法正常工作。另一个帖子是我想要的结果......但在我的情况下不起作用:o
  • 差不多谢谢!我希望它在调整窗口时尽可能地扩展,以便#middle div 会“触摸”#right 那个。那么如果没有 JS 的暗示,这怎么可能呢?
  • 从#middle 中删除 float:left (参见stackoverflow.com/questions/7292021/…
  • 糟糕!好像可以,但是应用到真实页面时,右栏显示在中间下方,向右浮动。在小提琴中转载(#middle 具有更大的高度):jsfiddle.net/EDt6N/4 必须删除浮动似乎也很奇怪?
  • 不是波纹管,只是它的高度大于其他列,背景垂直居中jsfiddle.net/EDt6N/5
猜你喜欢
  • 2014-08-28
  • 2013-07-23
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 1970-01-01
  • 2019-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多