Como evito que a tag DIV inicie uma nova linha?


86

Quero produzir uma única linha de texto para o navegador que contém uma tag. Quando isso é renderizado, parece que o DIV causa uma nova linha. Como posso incluir o conteúdo na tag div na mesma linha - aqui está o meu código.

<?php 
  echo("<a href=\"pagea.php?id=$id\">Page A</a>") 
?>
<div id="contentInfo_new">
  <script type="text/javascript" src="getData.php?id=<?php echo($id); ?>"></script>
</div>

Eu tentei arrumar aqui. Como posso ter este display em uma única linha?


Só para ressaltar, você não precisa dos colchetes ao usar o eco. echo $id;é tão válido quanto echo($id);.
Eddie Hart

Respostas:


137

A divtag é um elemento de bloco, causando esse comportamento.

Você deve usar um spanelemento, que é embutido.

Se você realmente deseja usar div, adicione style="display: inline". (Você também pode colocar isso em uma regra CSS)


13
Apenas display: inlinecontradiz para que serve o DIV, então, por favor, não faça isso! Em vez disso, use a extensão.
Robert K

27
Estou bem ciente disso; é por isso que escrevi if you really want to.
SLaks 01 de

20
Um div é definido como uma divisão de uma página, antes do HTML5. Não está definido com nenhuma característica de apresentação. Em outras palavras, um div é semanticamente apropriado de acordo com sua definição com base no conteúdo e nos elementos que contém. Como resultado, é perfeitamente normal definir um div para exibir: inline e não violar nenhuma semântica ou definição padrão.

2
No meu caso, eu não poderia usar span, porque eu queria definir uma propriedade de quebra de linha de quebra de linha, que só funciona para elementos do tipo bloco. Mas não pude usar div, porque não queria uma nova linha. Então, em vez disso, usei display: inline-blockum elemento div. Diga o que quiser sobre estilo, mas isso resolveu os dois problemas.
jsarma

Não funcionou para mim! Eu esperava que ele expandisse a célula em que div está, mas nenhuma mudança aconteceu
rezKesh

36

Eu não sou um especialista mas tento white-space:nowrap;

A propriedade de espaço em branco é compatível com todos os principais navegadores.

Observação: o valor "inherit"não é compatível com IE7 e anteriores. O IE8 requer um !DOCTYPE. Suporta IE9 "inherit".


Ótimo quando você precisa que elementos de bloco embutido não quebrem no final da linha quando você tem overflow: hiddeno elemento de quebra e o move de acordo com o pai "no fundo" :)
jave.web

16

div é um elemento de bloco, que sempre ocupa sua própria linha.

use a spantag em vez


10
Você está confundindo apresentação com função. Um div assume sua própria linha porque é apresentado como display: block por padrão e por nenhum outro motivo.

1
Mas a extensão também cria uma quebra de linha antes e depois?
user3761308

6

Adicione style="display: inline"ao seu div.


5

use float: à esquerda no div e no link ou use um intervalo.



0

A melhor maneira de fazer uma quebra de linha é usar span com o parâmetro de estilo CSS white-space: nowrap;

span.nobreak {
  white-space: nowrap;
}

or
span.nobreak {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

Exemplo diretamente em seu HTML

<span style='overflow:hidden; white-space: nowrap;'> YOUR EXTENSIVE TEXT THAT YOU CAN´T BREAK LINE ....</span>

-1
<div style="float: left;">
<?php 
  echo("<a href=\"pagea.php?id=$id\">Page A</a>") 
?>
</div>
<div id="contentInfo_new" style="float: left;">
  <script type="text/javascript" src="getData.php?id=<?php echo($id); ?>"></script>
</div>

3
péssima ideia de usar javascript + php, quando você pode ficar bem apenas com css.
ZurabWeb

@Piero Por que você diz isso? Normalmente, é necessário um back-end para um aplicativo de front-end
Curioso

3
@Curious é verdade, mas o back-end deve lidar com coisas de back-end como cálculos e manipulação de dados, enquanto o front-end deve ser deixado para os navegadores processarem. Isso reduz a carga do servidor e melhora a experiência do usuário. Isso é em termos gerais. Neste caso particular, entretanto, <a href="pagea.php?id=<?php echo $id; ?> "> Página A </a> seria boa o suficiente. E com getData.php, por que ter php parse e javascript de saída se isso pode ser tratado pelo apache? Assim: src = "getData.js? Id = <? Php echo $ id;?>"
ZurabWeb de

-2

Você pode simplesmente usar:

#contentInfo_new br {display:none;}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.