Ciao,
non c'è una regola rigida, ognuno fa come vuole, c'è chi indenta di tre, chi di quattro...
Il W3C nei suoi esempi (uno per tutti è il manuale dei CSS) indenta di uno.
E quella di indentare non è una prassi che si applica solo all'html ma anche al php, all'asp, al js ecc...
L'importante è di riuscire a dare visivamente il senso della struttura a "cannocchiale" che hanno quasi sempre i linguaggi di programmazione e i tag html.
Il codice che hai scritto tu, un po' arricchito (tanto per fare un esempio più corposo), lo indenterei così:
codice:
<html>
<head>
<title>questo è il titolo</title>
</head>
<body>
<div>
<form>
<input type="text" value="<?php print($value); ?>" />
<?php
if ($a == $b) {
$c = $d;
print("<input type=\"text\" value=\"xyz\">");
if ($e == $f) {
$g = $h;
} else {
$i = $j;
} else {
$k = $l;
}
?>
</form>
</div>
</body>
</html>
come vedi non sono molto rigido nelle mie regole (molti puristi inorridiranno) perché credo che l'applicazione rigida di regole appesantisca il codice invece di snellirlo. Le regole servono ma serve soprattutto il buon senso.
Per esempio il tag TITLE non rispetta la regola usata in tutto il resto del documento perché ha il tag di chiusura sulla stessa riga di quello di apertura ma questo, a mio avviso, aumenta la leggibilità perché si mette in risalto il fatto che quel blocco contiene una sola cosa: il titolo.
Ugualmente mi comporto con le celle di tabella con contenuto singolo.
Se invece in una cella di tabella c'è, ad esempio, un form rispetto la normale regola di aprire e chiudere il TD su righe diverse.
Nei rami else delle if invece, pur essendoci una sola istruzione, mi sono comportato diversamente perché lì ho ritenuto prioritario mantenere l'uniformità di struttura col resto della if.
A proposito, ho inserito volutamente un errore, guarda come è facile trovarlo, anche solo guardando il codice a livello grafico, senza entrare nei dettagli.
Come vedi non disdegno neanche delle cose considerate "brutte" come annegare del codice php all'interno dei tag html, trovo che sia una cosa estrememete utile che non toglie, sostanzialmente, nulla alla forma.
C'è poi chi scrive i vari parametri dei tag html su più righe, incolonnandoli per benino. Io di solito non lo faccio ma riconosco che questa cosa ha i suoi perché.
Come vedi i tag di apertura e chiusura del php li lascio in colonna 1 perché non fanno parte della logica di programmazione o di formattazione e inoltre evidenziano meglio l'inizio e la fine dei blocchi di codice estranei all'html.
Le if le ho indentate come i tag del form perché ho voluto sottolineare la loro appartenenza logica al form stesso visto che fra le altre cose fanno la print di una casella di testo.
E per finire ho preferito mettere il form dentro la div e non viceversa perché la div dà l'idea di un contenitore dentro cui può esserci un modulo da compilare ma il contrario risulta meno intuitivo.
Quindi, come vedi, non ci sono regole, o meglio ci sono regole che è perfettamente lecito violare, purché si ottenga il risultato di semplificare al massimo la lettura.
Ciao