2009-12-01 24 views
60

Quiero mostrar una sola línea de texto en el navegador que contiene una etiqueta. Cuando se representa esto, parece que el DIV causa una nueva línea. ¿Cómo puedo incluir el contenido en la etiqueta div en la misma línea? Aquí está mi código.¿Cómo evito que la etiqueta DIV comience una nueva línea?

<?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> 

He intentado arreglarlo aquí. ¿Cómo puedo tener esta pantalla en una sola línea?

+0

Sólo para señalar, no es necesario cuando se utiliza los soportes de eco. 'echo $ id;' es tan válido como 'echo ($ id);'. –

Respuesta

108

La etiqueta div es un elemento de bloque, provocando ese comportamiento.

En su lugar, debe usar un elemento span, que está en línea.

Si realmente quiere usar div, agregue style="display: inline". (También puedes poner esto en una regla CSS)

+8

Solo 'display: inline" contradice para qué es el DIV, ¡por favor no lo hagas! Use el lapso en su lugar. –

+19

Estoy muy consciente de eso; es por eso que escribí 'si realmente quieres'. – SLaks

+16

Un div se define como una división de una página, anterior a HTML5. No está definido con ninguna característica de presentación. En otras palabras, un div es semánticamente apropiado según su definición en función del contenido y los elementos que contiene. Como resultado, está perfectamente bien configurar un div para mostrar: en línea y no violar ninguna semántica o definición estándar. –

14

div es un elemento de bloque, que siempre ocupa su propia línea.

utilizan la etiqueta de span lugar

+10

Usted está confundiendo la presentación de la función. Un div ocupa su propia línea porque se presenta como pantalla: bloquear de forma predeterminada y por ningún otro motivo. –

+1

Pero span también crea un salto de línea antes y después? – user3761308

4

uso float: a la izquierda en el div y el enlace, o utilizar un palmo.

+0

+1 trabajó en mi situación – SMI

4

Agregue style="display: inline" a su div.

+1

En realidad, haz lo que cobbal sugirió y usa la etiqueta 'span' en su lugar. – Franz

-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> 
+1

idea terrible de usar javascript + php, cuando puede estar bien con solo css. – Piero

+0

@Piero ¿Por qué dices eso? Por lo general, se necesita un backend para una aplicación front-end – Curious

+2

@Curious true, pero el back-end debe tratar con cosas de back-end como cálculos y manejo de datos, mientras que el frontend debe dejarse procesar por los navegadores. Esto reduce la carga del servidor y mejora la experiencia del usuario. Esto es en términos generales. En este caso particular, sin embargo, Page A sería lo suficientemente bueno. Y con getData.php, ¿por qué tener php parse y javascript de salida si esto puede ser manejado por apache? De la misma manera: src = "getData.js? Id = " – Piero

22

No soy un experto, pero intenta white-space:nowrap;

La propiedad de espacio en blanco es compatible con todos los principales navegadores.

Nota: El valor "inherit" no es compatible con IE7 y versiones anteriores. IE8 requiere un !DOCTYPE. IE9 es compatible con "inherit".

+1

No tengo idea de por qué se violó, el autor no se atrevió a explicar. La solución funcionó personalmente para mí. +1. – Piero

+0

Excelente cuando necesitas elementos de bloque en línea para no envolver al final de la línea cuando tienes 'overflow: hidden' en el elemento wrap y lo mueves de acuerdo con el padre" en el fondo ":) –

-1

Usted puede simplemente utilizar:

#contentInfo_new br {display:none;} 
Cuestiones relacionadas