繁体   English   中英

如何强制浮动div填充剩余的水平空间?

How to force floated div to fill remaining horizontal space?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

对不起我的问题不是很明确的标题。 在我搜索解决方案时,我试图找到一个合适的名称,但我找不到描述它的确切方法。

我有一个固定大小的div,必须向左浮动,行为像内联块。 我在页面右侧有一个内容区域。 这是一个展示我的意思的例子: http//jsfiddle.net/7sp5M/ 如果我尝试更改结果区域的宽度div将尝试适合块的区域。 问题是块的面积和内容区域之间存在差距。 我需要内容区域具有最小宽度,我希望区域水平增长以填补这个空白: http//img89.imageshack.us/img89/296/floatingdivs001.png

例如块的宽度是100px; 最小内容区域应为200px。 我需要内容宽度从200px到299px不等,具体取决于块的区域宽度。

请问,建议是否可以使用纯HTML / CSS实现此类行为? 我没有限制来避免表格,所以任何有效的方法都是合适的。

更新 :感谢大家的评论。 似乎用纯HTML / CSS实现它是不可能的。 我不确定,因为我还不是很擅长CSS。 我刚刚用JavaScript和jQuery实现了这种行为,它以我需要的方式工作。

3 个回复

我通常会在块div中放入一个内部容器,这样我就可以在不影响宽度的情况下分配填充:

.block { width: 20%; }
.block > .inner { padding-left: 10px; }
.block:fist-child > .inner { padding: 0; }
<div class="block">
    <div class="inner">
        block
    </div>
</div>

你可以用display: table; table-cell;

你必须给包装器#main CSS display: table; 和它的儿童table-cell; 你必须将移动div.right标记的后div.left

 <div class="left">
        <div class="block">Block1</div>
        <div class="block">Block2</div>
        <div class="block">Block3</div>
        <div class="block">Block4</div>
        <div class="block">Block5</div>
        <div class="block">Block6</div>
    </div>
    <div class="right">Content</div>

您可以将块的宽度调整为您想要的任何值, 100%/6=16% ,这就是我使用16%的原因。 如果你想要动态宽度,你可以保留宽度声明,它们会自动调整大小到可用的宽度。 这模仿了表的行为,但仍然是语义标记。

#main
{
    width: 100%;
    display: table;
}

.right {
    display: table-cell;
    width: 200px;
    height: 300px;
    background: #888;
}
.left {
    overflow: hidden;
    height: 300px;
    background: #ccc;
    display: table-cell;
}
.block {
    width: 16%;
    height: 50px;
    float: left;
    border: 1px solid blue;
    display: table-cell;
}​

http://jsfiddle.net/Kyle_Sevenoaks/7sp5M/31/

你可以试试这个:

<div id="main" class="">
<div class="right">Content</div>
<div class="left">
    <div class="clearfix"></div>
    <div class="block">Block1</div>
    <div class="block">Block2</div>
    <div class="block">Block3</div>
    <div class="block">Block4</div>
    <div class="block">Block5</div>
    <div class="block">Block6</div>
</div>

</div>

在CSS中:

.right {
  float: right;
  min-width: 200px;
  height: 300px;
  background: #888;
 }

.left {
  overflow: hidden;
  height: 300px;
  background: #ccc;
  width:300px;
  float: left;
 }

.block {

   width: 100px;
   height: 50px;
   float: left;
   border: 1px solid blue;
}
.clearfix{
   clear:both;
}

并且为了改变div的宽度,我使用了JQuery

$(document).ready(function(){

   var left_width = $(".left").width();
   var block_width = $(".block").width()+2;

   var count = Math.floor(left_width/block_width);

   var calc_left_width = count * block_width;
   var calc_right_width = $("#main").width() - calc_left_width;

   $(".left").width(calc_left_width);
   $(".right").width(calc_right_width);

});

我添加2到块的宽度来考虑边框,你可以使用outerwidth()insetead。 在这里你可以看到它的运作

1 左div填充剩余的水平空间?

我有两个div #left和#right 。 右边的div有一个固定的宽度。 如何让左边的div占据所有剩余的水平空间? ...

2010-08-25 08:19:13 2 3342   css
2 如何使div填充剩余的水平空间

我有两个div。 一种向左浮动,另一向右浮动。 左侧之一的宽度设置为18%,最小宽度为217px。 我想让右边的div占用剩余空间,同时也能够调整大小以适合窗口。 我遇到的问题是,我可以将右div的宽度设置为82%并向右浮动,这会一直起作用,直到我将窗口的边变得太小为止,在这种情况下 ...

3 Div填充剩余的水平空间

我有以下代码: 图片 这3个项目 - ul和2 divs - 并排排列,如您所见,它们具有动态宽度。 我必须使这三个项目适合div.parent,宽度固定在1200px。 目前,我正在使用'float:left;' 将这3个项并排排列,我可以使用'display:inli ...

2014-01-21 19:41:52 4 8814   css/ html
4 如何使 div 填充剩余的水平空间?

我有 2 个 div:一个在页面的左侧,一个在页面的右侧。 左侧的一个宽度固定,我希望右侧的一个填充剩余空间。 #search { width: 160px; height: 25px; float: left; background-color: #ffffff; } #navig ...

5 CSS-居中的div填充剩余水平空间

拜托,我正在自己学习CSS,有2个问题: 我在“顶部” DIV中有3个DIV,并且我需要第二个(在中间)填充所有剩余空间。 我在哪里得到的: https : //fiddle.jshell.net/3j838det/ 这是HTML代码: 这是CSS代码: ...

2016-02-21 18:31:21 5 1011   html/ css
6 有一个元素填充剩余的水平空间

我被要求创建一个表单,其中每个输入都有一个标签,其自然宽度(向左)和输入旁边(在右侧,在同一行内)填充剩余空间,以便每个输入的右边缘是垂直对齐。 除了在每个输入上设置显式宽度之外,有没有办法实现这一目标? 从本质上讲,强制输入占用其父级剩余空间的100%? 没有关于如何使div填充 ...

7 如何确定div保留剩余的水平空间?

我试图从头开始创建自己的网站,现在考虑到HTML / CSS位时遇到了问题。 我正在尝试创建这种标准的“标题,导航,内容”布局,其中标题在顶部,导航在左侧,内容从标题的下方开始,并在导航的右侧 我使用以下代码: 但是,一旦在我的代码中添加了“ style ='float:le ...

8 当浮动元素处于其固定宽度同级之间时,如何使它填充剩余的水平空间?

我正在尝试创建具有多个浮动元素的手风琴菜单。 我希望所有非活动菜单项都折叠为较小的固定宽度(约40px),而活动项则扩展为剩余宽度。 我希望菜单具有响应性/弹性,因此只有不活动的菜单项才会具有固定的宽度。 下面是我希望菜单外观/功能类似的示例(不使用jQuery设置宽度)... ...

10 使 div 以动态宽度填充父 div 的剩余水平空间

我试图让一个 div 填充具有动态宽度(基于屏幕宽度)的父 div 的剩余水平空间。 如何使用纯 CSS 实现这一点? 我试图实现的目标如下图所示(“可填充空间”)。 以下示例的代码目前为: 谢谢你的问候 ...

2015-11-28 15:48:50 2 346   html/ css
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM