Chcę utworzyć tabelę HTML, w której każda komórka jest klikalna, a kliknięcie komórki powoduje dodanie granicy do pojedynczej komórki div
. Chcę, aby ta granica div
istniała całkowicie w obrębie istniejącej granicy td
, która go zawiera, bez zmiany rozmiaru tabeli lub jej komórek w ogóle. Nie wydaje mi się, żeby to się stało poprawnie.Używanie rozmiarów skrzynek do utworzenia wewnętrznej granicy
Wydaje się, że ten numer previous question dotyczy tego samego problemu i wskazuje niektóre artykuły dotyczące opcji CSS rozmiaru pudełka. Mam skrzypce, gdzie próbowałem to bez powodzenia wdrożyć: 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>
Oto, co się obecnie dzieje. Obramowanie powoduje, że zawierający się plik td
rośnie, aby pomieścić granicę div
.
Jak mogę dodać obramowanie do div to bez wpływu na tabelę zawierającą?
można po prostu dodać obramowanie do '.unselected' klasy (czyli' .unselected {border: 2px żółto;} 'nie jestem oddanie jako odpowiedź od. to tak naprawdę nie odpowiada na twoje pytanie, po prostu zapewnia rozwiązanie hack. – kunalbhat
Hmm, byłbym skłonny użyć jQuery do zmiany rozmiaru komórki w funkcji kliknięcia, chociaż może to być również za hack ... chociaż @ kunalbhat's Odpowiedź byłaby o wiele bardziej eleganckim rozwiązaniem i jest bardzo łatwa: http://jsfiddle.net/YsAGh/4/ – ChrisW
To nie rozwiąże problemu, ale ważne jest, aby umieścić ostatnią poprawkę jako ostatnią np. * {- rozmiar-pudełka-skrzynki: border-box; -moz-box-sizing: border-box; box-sizing: border-box;} '. W ten sposób przeglądarka spróbuje najpierw użyć poprawnej/ukończonej, nierozwiązanej wersji, a następnie, jeśli nie zostanie zaimplementowana, powróci do poprzedniej/niezamkniętej wersji rozwojowej. – tw16