Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Clearing inline-blocks?

Tags:

html

css

I have

.centered-holder {     margin-left: auto;     margin-right: auto;     clear: left;     display: inline-block; } 

Then

<div class="centered-holder">misc content 1</div> <div class="centered-holder">misc content 2</div> <div class="centered-holder">misc content 3</div> 

I only want one max per line, is this actually possible somehow? It's an iPhone HTML5 app so older browser restrictions aren't an issue.

like image 848
williamsandonz Avatar asked Nov 18 '11 02:11

williamsandonz


People also ask

What is inline block?

One common use for display: inline-block is to display list items horizontally instead of vertically.

How do you align inline block elements?

To align things in the inline direction, use the properties which begin with justify- . Use justify-content to distribute space between grid tracks, and justify-items or justify-self to align items inside their grid area in the inline direction.

What's the difference between inline and inline block?

Compared to display: inline , the major difference is that inline-block allows to set a width and height on the element. Also, with display: inline , top and bottom margins & paddings are not respected, and with display: inline-block they are.


1 Answers

Depend of your CSS declarations and your markup, but you can try to put this CSS declaration on the parent container:

white-space: pre-line; 

With this approach you avoid to transform the .centered-holder to a block element, and you can still use for example the text-align:center on the parent container.


pre-line - This value will cause sequences of whitespace to collapse into a single space character. Line breaks will occur wherever necessary to fill line boxes, and at new lines in the markup (or at occurrences of "\a" in generated content). In other words, it’s like normal except that it’ll honor explicit line breaks.

You can find more informations here about white-space:

  • http://reference.sitepoint.com/css/white-space
  • http://www.w3.org/TR/css3-text/#white-space

To finish, you can use these CSS declarations :

.parent-container {     white-space: pre-line /* Create new line for each DIV */;     line-height:0 /* Mask the extra lines */;     *white-space: pre /*FixIE7*/;     *word-wrap: break-word /*FixIE7*/; }  .centered-holder {     display: inline-block;     line-height:100% /* Restore a default line-height */;     *display: inline /*FixIE7*/;     *zoom: 1 /*FixIE7*/; } 

I found this question very interesting, so I give also the CSS declarations for IE6-7 (pre-line and inline-block fixes). It should be usefull for some other people which have a similar problem.

like image 112
Etienne Avatar answered Oct 21 '22 11:10

Etienne