Voglio creare una tabella HTML in cui ogni cella è selezionabile e facendo clic su una cella si aggiunge un bordo al singolo div
all'interno della cella. Voglio che il bordo di div
esista interamente all'interno dei confini esistenti dello td
che lo contiene, senza ridimensionare la tabella o le sue celle. Non riesco a farlo accadere correttamente.Utilizzo del ridimensionamento della casella per creare un bordo interno
Questo previous question sembra risolvere lo stesso problema e indica alcuni articoli sulle opzioni CSS per il ridimensionamento della casella. Ho un violino dove ho cercato di implementarlo senza successo: http://jsfiddle.net/YsAGh/3/.
* {
box-sizing:border-box;
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
}
<table>
<tr>
<td><div>1</div></td>
<td><div>2</div></td>
<td><div>3</div></td>
</tr>
....
</table>
Ecco cosa succede attualmente. Il bordo fa crescere il contenitore td
per contenere il bordo di div
.
Come posso aggiungere il bordo al div senza influenzare la tabella che contiene?
Potrebbe semplicemente aggiungere un bordo alla classe '.unselected' (cioè .unselected' {border: 2px solido giallo;} 'Non sto mettendo in risposta allora. non risponde alla tua domanda, fornisce solo una soluzione di hacking. – kunalbhat
Hmm, sarei tentato di usare jQuery per ridimensionare la cella nella funzione click, anche se questo potrebbe anche essere considerato un hack anche ... anche se @ kunalbhat's la risposta sarebbe una soluzione molto più elegante, ed è molto semplice: http://jsfiddle.net/YsAGh/4/ – ChrisW
Questo non risolverà il problema, ma è importante mettere la regola non prefissata per ultimo e.g.' * {- webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;} '. In questo modo, il browser proverà a utilizzare prima la versione corretta/finale non prefissa e poi, se non implementata, riporterà alla versione con prefisso/in sviluppo. – tw16