2014-10-07 44 views
1

如何使用inline-block而不是float来创建此布局?
可以对HTML进行的唯一更改是#A和#B的顺序。使用内联块代替浮动块的Css布局

http://jsfiddle.net/a2envebj/4/

的HTML:

<div id="root"> 
    <div id="A"></div> 
    <div id="B"></div> 
    <div id="C"></div> 
</div> 

的CSS:

* { 
    margin:0; 
    padding:0; 
} 
#root { 
    width:450px; 
    height:300px; 
    background-color: #CCC; 
} 
#A { 
    float: left; 
    width: 200px; 
    height:240px; 
    background-color: green; 
} 
#B { 
    float:left; 
    width: 200px; 
    height:120px; 
    background-color: yellow; 
} 
#C { 
    float: left; 
    width: 200px; 
    height: 120px; 
    background-color: orange; 
} 
+0

你试过和你为什么需要做出改变? – 2014-10-07 14:39:11

+1

如果你问,你可以使用这个HTML来构建这个布局而不使用任何浮点数,并且只使用内联块,我会说不。但是,这个答案可能无法帮助你。你能解释一下你想做什么,谢谢! – 2014-10-07 14:44:18

+1

这是可能的建立布局,但只能通过修改标记来包装B&C - http://jsfiddle.net/a2envebj/13/ – 2014-10-07 14:44:52

回答

0

标记:

<div id="root"> 
    <div id="A"></div> 
    <div id="C"></div> 
    <div id="B"></div> 
</div> 

个CSS:

* { 
    margin:0; 
    padding:0; 
} 
#root { 
    width:450px; 
    height:300px; 
    background-color: #CCC; 
} 
#A { 
    width: 200px; 
    height: 240px; 
    background-color: #008000; 
    display: inline-block; 
} 
#B { 
    width: 200px; 
    height: 120px; 
    background-color: #FF0; 
    display: inline-block; 
    margin-left: -4px; 
} 
#C { 
    width: 200px; 
    height: 120px; 
    background-color: #FFA500; 
    display: inline-block; 
    position: absolute; 
    top: 0; 
    left: 200px; 
} 

不需要额外的标记 - 棘手的,我喜欢:)

+0

谢谢,但是'position:absolute'正在渲染'inline-block'没用。这是我需要的。 – yossi 2014-10-07 14:59:56

+1

你之前没有提到过。任何其他限制?你可能需要诉诸额外的包装或一些JS解决方案。干杯。 – robjez 2014-10-07 15:07:49

0

这是否适合您的需要或没有,但你必须要包住2小格,然后显示这个新的DIV内嵌有较大的绿色DIV

http://jsfiddle.net/a2envebj/11/

由于我们使用内联块,我们必须除去的DIV之间的白色空间

<div id="root"> 
    <div id="A"></div><div id="wrap"> 
     <div id="B"></div> 
     <div id="C"></div> 
    </div> 
</div> 

涡卷{

width:200px; 
height:240px; 
background:#000; 
display:inline-block; 

}

A {

display: inline-block; 
width: 200px; 
height:240px; 
background-color: green; 

}

B {

display: block; 
width: 200px; 
height:120px; 
background-color: yellow; 

}

13 C {

display: block; 
width: 200px; 
height: 120px; 
background-color: orange; 

}

+0

的回答,谢谢,但是这增加了HTML,并且它不是一个选项... – yossi 2014-10-07 15:01:25