2013-03-22 163 views
3

假设我的div中有随机的子元素,它的高度和宽度固定为100%,以便与布局呼吸。强制元素水平对齐

我必须使用哪个CSS来强制子元素水平对齐,当div的宽度比内容小时,显示滚动条而不相互重叠?

小提琴:http://jsfiddle.net/GRBc6/1/

简单的CSS:

.parent{ 
    width:500px; 
    height: 50px; 
    background-color: red; 
} 
.kid{ 
    width: 150px; 
    height: 20px; 
    background-color: green; 
    float:left; 
    margin-left:4px; 
} 
+0

浮动:左?溢出-x:滚动? – cjmling 2013-03-22 10:01:10

+0

你可以尝试在它上面的小提琴不起作用。 – Jacob 2013-03-22 10:02:59

回答

10

如果你让孩子的inline-block元素,并取下float:left,可以使父母有white-space:nowrap,它会实现你想要的:

.parent{ 
    width:300px; 
    height: 50px; 
    background-color: red; 
    white-space:nowrap; 
    overflow-x:scroll; 
} 
.kid{ 
    width: 150px; 
    height: 20px; 
    background-color: green; 
    display:inline-block; 
    margin-left:4px; 

} 

http://jsfiddle.net/GRBc6/6/

+0

它的作品完美。谢谢!我错过了这个:white-space:nowrap; – Jacob 2013-03-22 10:09:10

0

您需要将.parent的2个物业:overflow-x:scrollwhite-space:nowrap,并将float儿童的财产更改为display: inline-block。这里的工作代码:

.parent{ 
    width:500px; 
    height: 50px; 
    background-color: red; 
    overflow-x: scroll; 
    white-space: nowrap; 
} 
.kid{ 
    width: 150px; 
    height: 20px; 
    background-color: green; 
    margin-left:4px; 
    display: inline-block; 
} 
0

或以其他方式,你可以只使用表单行,TRTD 所以它不会让里面的元素包裹

+0

表格用于表格数据 – Pete 2013-03-22 10:35:38

+0

如果容器div不固定就可以使用这种方式 – user26981 2013-03-22 10:54:27

+0

我想你对编码标准没有什么困扰,然后http://www.w3.org/WAI/wcag-curric/ sam48-0.htm – Pete 2013-03-22 10:56:16