12

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 with display: 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/

3 Answers 3

12

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.

1
  • This totally solved my problem. It worked for me without having to set width: 1px as long as I included the div with width: auto; Commented Mar 11, 2022 at 23:40
6

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

0

Not the answer you're looking for? Browse other questions tagged or ask your own question.