适合其内容的块,但保持其块功能

时间:2013-06-07 15:06:25

标签: html css layout

我正在尝试使用一系列块来适应各自的内容,但每个人都会留在他们的行中:

+------------------------+
|        +--------------+|
|        | Some Content ||
|        +--------------+|
|  +--------------------+|
|  | Some Other Content ||
|  +--------------------+|
|               +-------+|
|               | Small ||
|               +-------+|
|               +-------+|
|               | Small ||
|               +-------+|
+------------------------+

我能找到的唯一想法可以在inline-blockfloatposition: absolute;上工作,所有这些想法都会将两个“小”块放在同一行......

关于如何实现这一目标的任何想法?

我的HTML非常基本。它看起来像这样(但可以接受建议):

<div class="container">
    <div>Some Content</div>
    <div>Some Other Content</div>
    <div>Small</div>
    <div>Small</div>
</div>

7 个答案:

答案 0 :(得分:2)

.container div {
    float: right;
    clear: right;
}

http://jsfiddle.net/VzT6P/1/

答案 1 :(得分:1)

使用float:rightclear:right

.container div
{
    float:right;
    clear:right;
}

现场演示: http://jsfiddle.net/88uVs/1

答案 2 :(得分:0)

.container div{
   float:right;
   clear:right;
}

答案 3 :(得分:0)

实际上你有浮动选项,如果你清除它们就会很好  内联块不会叠加在一起,你不能彼此清除它们,除非你浮动它们,所以显示显示:)。

但有时由于某种原因,你不会使用浮动 所以你可能正在寻找相互叠加的块元素,并将它们的内联内容/框内容包装得很小。

表格或显示:表格具有此功能,它会回复您的问题:

  

为其内容设置一个块,但保留其阻止功能。

但如果你漂浮它们,重点是什么?

您可以使用方向让它们向右移动;然后重置内部方向。 (就像使用text-align,font-size,float,line-height或任何其他规则一样。)

我正在谈论的CSS:http://codepen.io/gcyrillus/pen/eHIaJ

    /* direction + table */
.direction.rtl {direction:ltr;}
    .direction div {direction:ltr;
                    display:table;
                    padding:0.25em;
    }
    /* float + clear */
.float.right div { 
  float:right;
  clear:right;
}

你有你的解决方案,但我认为知道从(几乎)以来有其他方法可行是有用的。 (几乎=显示:在IE8之前表不可用) 干杯

答案 4 :(得分:-1)

您需要在所有“行”上使用clear:right。

例如:

<div class="container">
    <div class="medium right clear">block 1</div>
    <div class="large right clear">block 2</div>
    <div class="small right clear">block 3</div>
    <div class="small right clear">block 4</div>
</div>

需要CSS:

.right { float: right; }
.clear { clear: both; }
.medium, .large, .small { /*some markup for your blocks*/ }

DEMO: http://jsfiddle.net/tive/MFrBs/

答案 5 :(得分:-1)

clear:right提供给所有div。这应该可以解决问题。

答案 6 :(得分:-2)

您正在寻找的是:

http://cssdeck.com/labs/5ypj4v4s

.container div {
  display: table;
  margin-left: auto; /* to align right */
}