【问题标题】:"Unspecified width fixed" + fluid layout“未指定宽度固定”+流体布局
【发布时间】:2012-12-09 20:54:15
【问题描述】:

这在 2012 年应该很容易:P

我需要做的是并排放置 2 个 div。左边包含一张桌子。右边是一张谷歌地图。

左边的 div 需要尽可能多地扩展以适应表格的宽度(所以它是一个“固定宽度”列,但宽度不是我指定的)。它是固定宽度,因为如果调整浏览器大小,表格会占用相同数量的像素。我不想指定宽度,因为表格可以是任意大小。

正确的 div 需要占用其余空间。

有人知道怎么做吗?我什至不知道如何在谷歌上搜索这个。我在网上看到的每个“固定/流动”布局都有一个固定列的指定宽度

【问题讨论】:

  • 无法使用 css :P 使用 jQuery 或 Javascript
  • 哇,太糟糕了 :( 不敢相信 W3C 还没有解决这个问题?
  • 是的,几天前我看到了一个类似的问题,需求是一样的!我问他我可以帮助处理 Jquery 但他不想要!
  • 我试过这个:#fixed_div { float: left;位置:静态;左:0;顶部:0;高度:100%; } #fluid_div { 浮动:左;位置:静态;高度:100%;右:0; } 但没有快乐 :(
  • 看起来我必须尝试使用​​ Jquery ......但在 2012 年不能做这么简单的事情真的很遗憾! :P

标签: css layout fluid-layout


【解决方案1】:

CSS 怎么样:

#firstTable{
    display:inline;
    width:auto;
}

#secondTable{
    display:inline;
    width:auto;
}

#myTable{
    width :"100px"
}

HTML

<div id="firstTable"><table id="myTable"><tr><td>Hello World!</td></tr></table></div>
<div id="secondTable"><div id="myMap"></div></div>

【讨论】:

  • @ATOzTOA,这不是解决方案!请删除以防止自己受到更多反对票!我收回了我的反对票!
  • 问题是第一列会显示得很好,但第二列不会,因为“auto”关键字会最小化表格宽度。例如,如果第二列包含单词“Simon”,那么“auto”宽度将使该列与单词“Simon”一样宽。我想要的是第二列最大化,也就是说.. 即使 div 仅包含“Simon”,该 div 仍应扩展以填充浏览器窗口的其余部分。“auto”关键字不会这样做:( ...理想情况下应该有一个“auto” -max”和“auto-min”..或者也许是“auto-greedy”和“auto-ungreedy”,ala regex
  • @AspiringAqib 谢谢伙计...我只能投票删除...我应该把答案留空吗?
  • max-width 应该设置为多少?我感觉它行不通
【解决方案2】:

试试这个:

HTML 标记

<div id="container">
    <div class="gmap"></div>
    <div class="table"></div>
</div>​

使用 CSS

#container {
    position: relative;
}
.table, .gmap {
    position: absolute;
    top: 0;
    height: 300px;
}
.table {
    left: 0;
    right: 150px; /* width of gmap */
}
.gmap {
    right: 0;
    width: 150px;
}

或使用 jQuery

var containerWidth = jQuery('#container').innerWidth();
var tableWidth = jQuery('.table').outerWidth();

jQuery('.gmap').width(containerWidth -tableWidth);

​ ​​​ JSFIDDLE_WITH_CSSJSFIDDLE_WITH_JAVASCRIPT

【讨论】:

  • 我注意到您正在设置 gmap 的宽度,但我想避免指定 gmap 或表格的宽度。基本上浏览器应该知道表格的宽度,它应该只将剩余的宽度分配给 gmap。在你的例子中,gmap 是 150px 宽,但我的显示器是 1920px 宽,表格大概是 150px 宽。这意味着有很多空白。
  • 用javascript制作。像这样计算缺失的宽度:jsfiddle.net/gMfX4
  • 感谢@algorhythm,将尝试 Jquery :) 感谢 jquery 示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-02
  • 2023-03-18
  • 2014-12-22
  • 2014-12-07
  • 1970-01-01
相关资源
最近更新 更多