2009-12-01 5 views
60

Voglio stampare una singola riga di testo nel browser che contiene un tag. Quando viene eseguito il rendering, sembra che il DIV causi una nuova riga. Come posso includere il contenuto nel tag div sulla stessa riga - ecco il mio codice.Come si impedisce al tag DIV di iniziare una nuova riga?

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

Ho provato a riordinarlo qui. Come posso avere questo display su una singola riga?

+0

solo far notare, non è necessario le parentesi quando si utilizza eco. 'echo $ id;' è valido come 'echo ($ id);'. –

risposta

108

Il tag div è un elemento di blocco che causa questo comportamento.

È necessario utilizzare invece un elemento span, che è in linea.

Se si in realtà si desidera utilizzare div, aggiungere style="display: inline". (Si può anche mettere che in una regola CSS)

+8

Solo 'display: inline' contraddice a cosa serve il DIV, quindi per favore non farlo! Usa lo span invece. –

+19

Ne sono ben consapevole; è per questo che ho scritto "se lo vuoi davvero". – SLaks

+16

Un div è definito come una divisione di una pagina, prima di HTML5. Non è definito con alcuna caratteristica di presentazione. In altre parole, un div è semanticamente appropriato secondo la sua definizione basata sul contenuto e sugli elementi che contiene. Di conseguenza è perfettamente corretto impostare un div da visualizzare: in linea e non violare alcuna semantica o definizione standard. –

14

div è un elemento di blocco che utilizza sempre una propria linea.

utilizzare il tag span invece

+10

Si sta confondendo la presentazione per la funzione. Un div prende la propria linea perché è presentato come display: blocco per impostazione predefinita e per nessun altro motivo. –

+1

Ma l'intervallo crea anche un'interruzione di riga prima e dopo? – user3761308

4

uso float: left sul div e il collegamento oppure usa un arco.

+0

+1 ha funzionato nella mia situazione – SMI

4

Aggiungi style="display: inline" al tuo div.

+1

In realtà, fai ciò che Cobbal suggerisce e usa il tag 'span'. – 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

terribile idea di usare javascript + php, quando puoi stare bene con solo css. – Piero

+0

@Piero Perché dici così? Di solito è necessario un back-end per un'app di front-end – Curious

+2

@ true true, ma il back-end dovrebbe occuparsi di cose di back-end come calcoli e gestione dei dati, mentre il frontend dovrebbe essere lasciato da elaborare per i browser. Ciò riduce il carico del server e migliora l'esperienza dell'utente. Questo è in termini generali. In questo caso particolare, tuttavia, Page A sarebbe sufficiente. E con getData.php, perché avere php parse e output javascript se questo può essere gestito da apache? Ad esempio: src = "getData.js? Id = " – Piero

22

Io non sono un esperto, ma tenta white-space:nowrap;

La proprietà white-space è supportata in tutti i principali browser.

Nota: il valore "inherit" non è supportato in IE7 e versioni precedenti. IE8 richiede uno !DOCTYPE. IE9 supporta "inherit".

+1

Non ho idea del motivo per cui è stato downwoted, l'autore non ha osato spiegare. La soluzione ha funzionato personalmente per me. +1. – Piero

+0

Ottimo quando hai bisogno che gli elementi di blocco in linea non si avvolgano alla fine della riga quando hai "overflow: hidden' sull'elemento wrap e lo sposti in base al genitore" sullo sfondo ":) –

-1

Si può semplicemente utilizzare:

#contentInfo_new br {display:none;} 
Problemi correlati