0
.long {
width: 100%;
}
.short {
width: 49.2%;
}

我已经定义了上述类,但由于某种原因,当我引用 2 x 短 div 时,它们位于不同的行上(不像预期的那样并排)。

这是最基本的 - 我想太阳已经到了我身上。

4

7 回答 7

3

默认情况下,Div 元素是 ,display: blockposition: static-float: none因此它们会导致换行符,处于正常流程中,并且不会让后续内容在它们旁边冒泡。

如果您希望它们并排,则需要更改其中之一。

display: inline-block可能是你最好的选择。

于 2013-07-15T16:37:19.273 回答
1

这是因为<div>s 是块元素,而不是内联元素。

尝试这个:

.long {
    width: 100%;
}
.short {
    width: 49.2%;
    display: inline-block;
}
于 2013-07-15T16:37:13.760 回答
1

div 是

display: block;

默认。如果您将它们更改为

display: inline-block;

它们应该并排出现。

于 2013-07-15T16:37:35.173 回答
1

Div 是块元素,因此它们不会彼此相邻显示,除非您向其中一个或两个添加浮点数。(此外, .long 类将使 div 跨越其整个容器,这将排除任何其他元素出现在它旁边。)

.long {
    float: left;
    width: 100%;
}
.short {
    float: left;
    width: 49.2%;
}
于 2013-07-15T16:39:34.527 回答
0

您必须定义属性float

.short {
    float: left;
    width: 49.2%;
}

例子

http://jsfiddle.net/7eS22/

于 2013-07-15T16:39:09.580 回答
0

您可以使用display: inline-block;或浮动在您的 div 上,例如float:left;.

我希望这可以帮助你。

于 2013-07-15T16:39:49.660 回答
0

您还需要修改“显示”属性。div 元素的默认值是块,除非另有说明,否则不接受它旁边的元素。

display: block 意味着元素显示为一个块,就像段落和标题一样。一个块的上下都有一些空格,并且它旁边不允许有任何 HTML 元素,除非有其他命令(例如,通过向另一个元素添加浮点声明)。 http://quirksmode.org/css/css2/display.html

你可以加:

.short { width: 49.2%; display: inline-block; }

或者你可以浮动第一个:

.short:first-child { float: left; }

两者都应该基本上得到你想要的。这两种技术都需要注意一些额外的事情,例如浮动时的溢出或内联块的 IE7 hack,但这至少可以帮助您入门。

于 2013-07-15T16:41:49.937 回答