Como é que faz com que os elementos div apareçam em linha?

Dado este HTML:

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

Como é que os fazes mostrar em linha como esta:

Foo bar baz

assim não.

Foo
bar
baz

 209
Author: Paul Sweatte, 2008-10-22

19 answers

Isso é outra coisa, então.

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 -->
 231
Author: Darryl Hein, 2018-01-20 23:21:44

Um div inline é uma aberração da web & deve ser batido até que se torne uma extensão (pelo menos 9 vezes em 10)...

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

...responde à pergunta original...

 239
Author: bochgoch, 2008-12-31 15:01:29

Tenta escrever assim:

<div style="display: inline">a</div>
<div style="display: inline">b</div>
<div style="display: inline">c</div>
 162
Author: Randy Sugianto 'Yuku', 2008-10-22 06:02:07
Depois de ler esta pergunta e as respostas algumas vezes, tudo o que posso fazer é assumir que tem havido bastante edição, e minha suspeita é que você recebeu a resposta incorreta com base em não fornecer informações suficientes. A minha pista vem do uso da etiqueta br.

As minhas desculpas ao Darryl. Li class = "inline" como style= "display: inline". Você tem a resposta certa, mesmo que você use semanticamente nomes de classe questionáveis ;-)

A a falta de uso de br para fornecer layout estrutural em vez de para layout textual é muito prevalente para o meu gosto.

Se queres colocar mais do que elementos inline dentro desses divs então devias estar a flutuar esses div em vez de os fazeres inline.

Divs flutuados:

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

Divs Inline:

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

Se estás atrás do primeiro, então esta é a tua solução e perdes as etiquetas br:

<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 que a largura destas Divas é fluida, por isso sinta-se livre para colocar widths sobre eles se você quiser controlar o comportamento.

Obrigado., Steve
 32
Author: Steve Perks, 2008-12-31 16:27:42

Utilizar {[1] } com uma margem e uma pesquisa mediática para 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>
 23
Author: Paul Sweatte, 2013-07-09 19:20:38

Deve utilizar {[4] } em vez de <div> para uma forma correcta de inline . porque div é um elemento de nível de bloco, e sua exigência é para elementos de nível de bloco inline.

Aqui está o código html de acordo com os seus requisitos:

<div class="main-div">
 <div>foo</div>
 <div>bar</div>
 <div>baz</div>`
</div>
Tens duas maneiras de fazer isto.
  • usando o simples display:inline-block;
  • ou utilizar float:left;
Então você tem que mudar a propriedade de exibição com força display:inline-block;

Exemplo um

div {
    display: inline-block;
}

Exemplo dois

div {
    float: left;
}

Tens de limpar o carro flutuante

.main-div:after {
    content: "";
    clear: both;
    display: table;
}
 8
Author: Hidayt Rahman, 2017-01-31 06:19:24

Como mencionado, Exibir: inline é provavelmente o que você quer. Alguns navegadores também suportam blocos em linha.

Http://www.quirksmode.org/css/display.html#inlineblock

 7
Author: Kevin, 2008-12-31 15:06:49

<span> ?

 6
Author: Pirat, 2008-10-22 08:39:45

Basta usar um filtro de papel com "float: left" e colocar caixas dentro também contendo "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>
 6
Author: A. Bender, 2011-09-20 11:42:49
Está bem, para mim ...
<style type="text/css">
    div{
        position: relative;
        display: inline-block;
        width:25px;
        height:25px;
    }
</style>
<div>toto</div>
<div>toto</div>
<div>toto</div>
 6
Author: flairon, 2014-12-22 10:31:18

Usaria espansos ou flutuaria o div para a esquerda. O único problema com o flutuante é que você tem que limpar o flutuador depois ou o div contendo deve ter o estilo de transbordamento definido para auto

 4
Author: Cam Tullos, 2011-04-16 23:51:07
Eu sei que as pessoas dizem que é uma péssima ideia, mas na prática pode ser útil se você quiser fazer algo como imagens de azulejos com comentários por baixo delas. por exemplo, Picasaweb usa-o para exibir as miniaturas em um álbum.
Ver, por exemplo,/demo http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/inline_block_quirks.html ( classe goog-inline-block ; eu abreviá-la ao ib aqui )
/* 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; }
Dado esse CSS, põe o teu div na classe ib, e agora é magicamente um elemento de bloco inline.
 3
Author: David Eison, 2011-02-12 02:56:37
Tens de conter as três Divas. Aqui está um exemplo:

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;
}

Nota: os atributos de raio-contorno são opcionais e só funcionam nos navegadores conformes com o CSS3.

HTML

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

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

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

Note-se que os divs " foo "" bar " e " baz "são detidos dentro do div "contain".

 3
Author: word5150, 2015-12-16 10:01:42
<style type="text/css">
div.inline { display:inline; }
</style>
<div class="inline">a</div>
<div class="inline">b</div>
<div class="inline">c</div>
 2
Author: Darryl Hein, 2008-10-22 06:04:33
Podemos fazer isto assim.
.left {
    float:left;
    margin:3px;
}
<div class="left">foo</div>
<div class="left">bar</div>
<div class="left">baz</div>
 1
Author: omnath, 2012-10-16 18:15:57
<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/

 1
Author: Ipog, 2014-08-20 03:54:20
<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 */
 1
Author: Waah Ronald, 2016-02-08 02:29:52

Eu apenas tendem a fazer widths fixos de modo que eles somam até a largura total da página - provavelmente só funciona se você estiver usando uma página de Largura Fixa. Também "flutuar".

 0
Author: NFPPW, 2010-01-08 11:18:14

Acho que podes usar este caminho sem usar nenhum css -

<table>
 <tr>
  <td>foo</td>
 </tr>
 <tr>
  <td>bar</td>
 </tr>
 <tr>
  <td>baz</td>
 </tr>
</table>
 0
Author: Pankaj Bisht, 2017-02-13 13:04:57