How do you make div elements display inline?

HtmlCss

Html Problem Overview


Given this HTML:

<div>foo</div><div>bar</div><div>baz</div>

How do you make them display inline like this:

>foo bar baz

not like this:

>foo
>bar
>baz

Html Solutions


Solution 1 - Html

That's something else then:

div.inline { float:left; }
.clearBoth { clear:both; }

<div class="inline">1<br />2<br />3</div>
<div class="inline">1<br />2<br />3</div>
<div class="inline">1<br />2<br />3</div>
<br class="clearBoth" /><!-- you may or may not need this -->

Solution 2 - Html

An inline div is a freak of the web & should be beaten until it becomes a span (at least 9 times out of 10)...

<span>foo</span>
<span>bar</span>
<span>baz</span>

...answers the original question...

Solution 3 - Html

Try writing it like this:

div { border: 1px solid #CCC; }

    <div style="display: inline">a</div>
    <div style="display: inline">b</div>
    <div style="display: inline">c</div>

Solution 4 - Html

Having read this question and the answers a couple of times, all I can do is assume that there's been quite a bit of editing going on, and my suspicion is that you've been given the incorrect answer based on not providing enough information. My clue comes from the use of br tag.

Apologies to Darryl. I read class="inline" as style="display: inline". You have the right answer, even if you do use semantically questionable class names ;-)

The miss use of br to provide structural layout rather than for textual layout is far too prevalent for my liking.

If you're wanting to put more than inline elements inside those divs then you should be floating those divs rather than making them inline.

Floated divs:

===== ======= ==   **** ***** ******   +++++ ++++
===== ==== =====   ******** ***** **   ++ +++++++
=== ======== ===   ******* **** ****   
===== ==== =====                       +++++++ ++
====== == ======

Inline divs:

====== ==== ===== ===== == ==== *** ******* ***** ***** 
**** ++++ +++ ++ ++++ ++ +++++++ +++ ++++

If you're after the former, then this is your solution and lose those br tags:

<div style="float: left;" >
  <p>block level content or <span>inline content</span>.</p>
  <p>block level content or <span>inline content</span>.</p>
</div>
<div style="float: left;" >
  <p>block level content or <span>inline content</span>.</p>
  <p>block level content or <span>inline content</span>.</p>
</div>
<div style="float: left;" >
  <p>block level content or <span>inline content</span>.</p>
  <p>block level content or <span>inline content</span>.</p>
</div>

note that the width of these divs is fluid, so feel free to put widths on them if you want to control the behavior.

Thanks, Steve

Solution 5 - Html

Use display:inline-block with a margin and media query for IE6/7:

<html>
  <head>
    <style>
      div { display:inline-block; }
      /* IE6-7 */
      @media,
          {
          div { display: inline; margin-right:10px; }
          }
   </style>
  </head>
  <div>foo</div>
  <div>bar</div>
  <div>baz</div>
</html>

Solution 6 - Html

> You should use <span> instead of <div> for correct way of > inline. because div is a block level element, and your requirement is for inline-block level elements.

Here is html code as per your requirements :

<div class="main-div">
 <div>foo</div>
 <div>bar</div>
 <div>baz</div>`
</div>

You've two way to do this


  • using simple display:inline-block;
  • or using float:left;

so you've to change display property display:inline-block; forcefully

Example one

div {
    display: inline-block;
}

Example two

div {
    float: left;
}

> you need to clear float

.main-div:after {
    content: "";
    clear: both;
    display: table;
}

Solution 7 - Html

As mentioned, display:inline is probably what you want. Some browsers also support inline-blocks.

<http://www.quirksmode.org/css/display.html#inlineblock>

Solution 8 - Html

Just use a wrapper div with "float: left" and put boxes inside also containing float: left:

CSS:

wrapperline{
width: 300px;
float: left;
height: 60px;
background-color:#CCCCCC;}

.boxinside{
width: 50px;
float: left;
height: 50px;
margin: 5px;
background-color:#9C0;
float:left;}

HTML:

<div class="wrapperline">
<div class="boxinside">Box 1</div>
<div class="boxinside">Box 1</div>
<div class="boxinside">Box 1</div>
<div class="boxinside">Box 1</div>
<div class="boxinside">Box 1</div>
</div>

Solution 9 - Html

ok, for me :

<style type="text/css">
    div{
        position: relative;
        display: inline-block;
        width:25px;
        height:25px;
    }
</style>
<div>toto</div>
<div>toto</div>
<div>toto</div>

Solution 10 - Html

<span> ?

Solution 11 - Html

<style type="text/css">
div.inline { display:inline; }
</style>
<div class="inline">a</div>
<div class="inline">b</div>
<div class="inline">c</div>

Solution 12 - Html

I know people say this is a terrible idea, but it can in practice be useful if you want to do something like tile images with comments underneath them. e.g. Picasaweb uses it to display the thumbnails in an album.
See for example/demo http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/inline_block_quirks.html ( class goog-inline-block ; I abbreviate it to ib here )

/* below is a set of hacks to make inline-block work right on divs in IE. */
html > body .ib { display:inline-block; }
.ib {display:inline-block;position:relative;}
* html .ib { display: inline; }
:first-child + html .ib { display:inline; }

Given that CSS, set your div to class ib, and now it's magically an inline block element.

Solution 13 - Html

I would use spans or float the div left. The only problem with floating is that you have to clear the float afterwards or the containing div must have the overflow style set to auto

Solution 14 - Html

You need to contain the three divs. Here is an example:

CSS

div.contain
{
  margin:3%;
  border: none;
  height: auto;
  width: auto;
  float: left;
}

div.contain div
{
  display:inline;
  width:200px;
  height:300px;
  padding: 15px;
  margin: auto;
  border:1px solid red;
  background-color:#fffff7;
  -moz-border-radius:25px; /* Firefox */
  border-radius:25px;
}

Note: border-radius attributes are optional and only work in CSS3 compliant browsers.

HTML

<div class="contain">
  <div>Foo</div>
</div>

<div class="contain">
  <div>Bar</div>
</div>

<div class="contain">
  <div>Baz</div>
</div>

Note that the divs 'foo' 'bar' and 'baz' are each held within the 'contain' div.

Solution 15 - Html

I think you can use this way without using any CSS -

<table>
    <tr>
        <td>foo</td>
    </tr>
    <tr>
        <td>bar</td>
    </tr>
    <tr>
        <td>baz</td>
    </tr>
</table>

Right now you are using block-level elements that way you are getting an unwanted result. So you can you inline elements like span, small etc.

<span>foo</span><span>bar</span><span>baz</span>

Solution 16 - Html

we can do this like

.left {
	float:left;
	margin:3px;
}
<div class="left">foo</div>
<div class="left">bar</div>
<div class="left">baz</div>

Solution 17 - Html

<div class="cdiv">
<div class="inline"><p>para 1</p></div>
 <div class="inline">
     <p>para 1</p>
     <span>para 2</span>
     <h1>para 3</h1>
</div>
 <div class="inline"><p>para 1</p></div>

http://jsfiddle.net/f8L0y5wx/

Solution 18 - Html

<div>foo</div><div>bar</div><div>baz</div>
//solution 1
<style>
    #div01, #div02, #div03 {
                                float:left;
                                width:2%;
    }   
 </style>
 <div id="div01">foo</div><div id="div02">bar</div><div id="div03">baz</div>

 //solution 2

 <style>
      #div01, #div02, #div03 {
                                  display:inline;
                                  padding-left:5px;
      }   
</style>
<div id="div01">foo</div><div id="div02">bar</div><div id="div03">baz</div>

 /* I think this would help but if you have any other thoughts just let me knw      kk */

Solution 19 - Html

This is what worked for me. I was working with bootstrap and I wanted to have radio buttons inline:

                <div class="form-group form-inline-radio">
                    <div class="form-check form-radio-outline form-radio-primary mb-3">
                        <input type="radio" name="formRadio4" id="formRadio4" checked="" class="form-check-input">
                        <label for="formRadio4" class="form-check-label"> Radio Outline Warning </label>
                    </div>
                    <div class="form-check form-radio-outline form-radio-primary mb-3">
                        <input type="radio" name="formRadio4" id="formRadio4" checked="" class="form-check-input">
                        <label for="formRadio4" class="form-check-label"> Radio Outline Warning </label>
                    </div>
                </div>

And the CSS:

.form-inline-radio {
    display: flex;
    overflow: hidden;
}

.form-check {
    margin-right: 10px;
}

Solution 20 - Html

I just tend to make them fixed widths so that they add up to the total width of the page - probably only works if you are using a fixed width page. Also "float".

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSteveView Question on Stackoverflow
Solution 1 - HtmlDarryl HeinView Answer on Stackoverflow
Solution 2 - HtmlbochgochView Answer on Stackoverflow
Solution 3 - HtmlRandy Sugianto 'Yuku'View Answer on Stackoverflow
Solution 4 - HtmlSteve PerksView Answer on Stackoverflow
Solution 5 - HtmlPaul SweatteView Answer on Stackoverflow
Solution 6 - HtmlHidayt RahmanView Answer on Stackoverflow
Solution 7 - HtmlKevinView Answer on Stackoverflow
Solution 8 - HtmlA. BenderView Answer on Stackoverflow
Solution 9 - HtmlflaironView Answer on Stackoverflow
Solution 10 - HtmlPiratView Answer on Stackoverflow
Solution 11 - HtmlDarryl HeinView Answer on Stackoverflow
Solution 12 - HtmlDavid EisonView Answer on Stackoverflow
Solution 13 - HtmlCam TullosView Answer on Stackoverflow
Solution 14 - Htmlword5150View Answer on Stackoverflow
Solution 15 - HtmlPankaj BishtView Answer on Stackoverflow
Solution 16 - HtmlomnathView Answer on Stackoverflow
Solution 17 - HtmlIpogView Answer on Stackoverflow
Solution 18 - HtmlWaah RonaldView Answer on Stackoverflow
Solution 19 - HtmlJosiah MahachiView Answer on Stackoverflow
Solution 20 - HtmlNFPPWView Answer on Stackoverflow