问题
I've got a long div container set to display:table
and & divs within it set to display:table-cell; vertical-align: middle
.
I'm really happy with the results of vertical alignment, but:
- I don't know the width of these 3 divs,
- I want one of them to be on the very right side of div container (minus padding of course),
float: right
doesn't work withdisplay: table-cell
.
Here's an example (I want to float the golden divs to the right). I can't use JS. I need it to work in IE7+, or IE8+ if impossible for IE7. Any hints / ideas?
http://jsfiddle.net/cZ7Th/2/
回答1:
I don't know if this works with IE7 or 8, but I have done this by combining width: 1px
, width: auto
and white-space: nowrap
. Define all cells in the table layout as one-pixel wide, but prevent wrapping; then add an empty padding cell before the ones you want to float right.
http://jsfiddle.net/wZ96P/
Seems to work with the modern versions of Chrome, Opera, Firefox, and IE, at least.
回答2:
For this vertical align doesn't work:
<div style="display: table-cell; vertical-align: middle; float: right">...</div>
But for this it works for me:
<div style="float: right">
<div style="display: table-cell; vertical-align: middle">...</div>
</div>
回答3:
When float!=none then display = block
来源:https://stackoverflow.com/questions/20110217/css3-display-table-cell-float