Non è molto che ho scoperto, con somma gioia, l'uso dei soli
"div" e degli stili nella realizzazione di pagine web, grazie a Giulio, un
collega grafico che ha fatto di questa tecnica un'arte. Questa sera, mentre
imbellettavo la form di login di .TRAQ, che usa il controllo Login di
ASP.NET 2.0 e le (quasi) favolose Membership API, eccomi nuovamente alle prese
con le tabelle.
I controlli ASP.NET dedicati all'autenticazione a a quant'altro
vi gravita attorno, hanno una caratteristica molto interessante, ovvero la
possibilità di diventare "template", consentendo così la customizzazione spinta
del loro aspetto. E così ho fatto, cliccato l'apposita voce nel menu mi sono
dato da fare per ripulire il codice dalla tabella che il controllo genera
autonomamente e poi a ricostruirlo del tutto con dei blocchi opportunamente
dimensionati.
Tutto è filato liscio, la compatibilità con Firefox è arrivata
in un baleno ma poi mi sono perso una buona ora a cercare di capire perchè non
mi riusciva di centrare il box. Se non fossi stato tratto in inganno, dalla
parola "template", probabilmente l'arcano sarebbe stato scoperto molto più
rapidamente, ma alla fine eccolo spuntare andando a sbirciare nel sorgente
generato.
Il controllo Login, in versione "template" racchiude il tutto
in una bella (si fa per dire) tabellona di una riga per una cella, perciò quello
che tipicamente si metterà all'interno dei tags <LayoutTemplate> deve
essere sempre considerato racchiuso in un guscio protettivo costituito da table,
tr e td.
Sinceramente, con tutta la buona volontà non sono riuscito a
trovare una buona e soprattutto valida giustificazione per questo comportamento.
Se di template parliamo lascia che mi arrangi fino in fondo dico io. Comunque
tant'è. Scoperto l'inganno la soluzione è stata semplice, ma la questione
rimane.
Perchè devo agire sotto tutela?