我想做一个三栏的版面。我想左列和右列的宽度仅与其子内容一样宽。我想把中间的柱子扩大一些,填满剩下的空间。
我正在尝试以下方法(概述,jsfiddle链接包含在下面):
#colLeft {
display: inline;
float: left;
}
#colCenter {
float: left;
display: inline;
overflow: none;
white-space: nowrap;
}
#colRight {
display: inline;
float: right;
}
<div id="parent" style="width:100%">
<div id="colLeft">left</div>
<div id="colCenter">Some really long text in the center. Some really long text in the center.</div>
<div id="colRight">right</div>
</div>
小提琴:http://jsfiddle.net/5kszQ/
但当内容太长时,中间列会将右列推到其下方。我想所有三列内联,并有必要收缩中心列。这就是上面给我的:
相反,我想:
谢谢你的帮助
6条答案
按热度按时间3j86kqsm1#
这里有一个方法,使用
inline-block
表示左边和中间,position:absolute
表示右边的元素。jsFiddle
HTML
CSS
由于它依赖于
inline-block
,因此在<div>
s之间有一个注解,以消除此图像中所示的间距:text-overflow:省略号
为了在使用
text-overflow:ellipsis
时实现这一点,您可能需要回退到JavaScript,这里有一个可能的解决方案(jsFiddle)。ux6nzvsh2#
如果你是开放的一些HTML的变化,那么这应该给你给予正是你想要的:
CSS应该是:
jsFiddle:http://jsfiddle.net/gajbhiye/ZX97K/希望对您有所帮助。
hl0ma9xz3#
欺骗浏览器说,这一切都适合在一个单一的行添加一些大的利润率的中心和权利的元素,并补偿与相对定位。参见**updated fiddle**。
标记:保持不变。
款式:
dffbzjpn4#
结合DIV的设置:display、float和position,我已经在一行上创建了三个子DIV。
父DIV:display:inlin-block前两个子DIV:float:left; Right child DIV:float:right;显示:内联;位置:绝对;
kr98yfug5#
就试试这个
oyt4ldly6#
只需将子div放入表格单元格中,而将表格放入父div中。没有造型将需要