Po pierwsze, zanim odpowiem na twoje pytanie, co powinieneś wiedzieć, w jaki sposób tabele są renderowane, eksperyment z table-layout ustalonym stylu dla elementu tabeli:
Jeśli przeglądarka zna szerokość pierwszych kolumn z wierszami tabeli (jeśli podasz styl tabeli na stole), przeglądarka może zacząć renderować górną część tabeli, nawet przed obliczeniem szerokości wszystkich wynikowych wierszy. Co to znaczy? Tabele wypełnione wywołaniami Ajax z ustalonym układem mogą zacząć wyświetlać wyniki dla użytkownika, zanim zakończone zostanie pełne wywołanie ajax. Najlepszy sposób myślenia o tym jest jak progresywny jpg. W końcu twoje strony będą się ładować szybciej.
table
{
table-layout:fixed;
}
Teraz, aby odpowiedzieć na twoje pytanie.
W rzeczywistości żaden z podanych przez Ciebie przykładów nie jest poprawny. Zazwyczaj nie ustawia się szerokości w komórce, która jest łączona w co najmniej dwóch komórkach. W każdej tabeli dobrym pomysłem jest utworzenie co najmniej jednego wiersza ze wszystkimi komórkami, może to być albo w TH albo (tak, jak lubię to zrobić w pustym t.
Na przykład ...
<table>
<tr>
<td width="450"></td>
<td width="225"></td>
<td width="225"></td>
</tr>
<tr>
<td>content here</td>
<td colspan="2">content here</td>
</tr>
</table>
Co kiedykolwiek sposób użytkownik zdecyduje się użyć stylu lub po prostu standardową szerokość HTML, wybór należy do Ciebie, ale w końcu trzeba mieć swój pierwszy wiersz (jeśli układ tabeli jest stałe) lub dowolny wiersz (jeśli układ tabeli jest niezmodyfikowany), aby zawierał definicję szerokości dla każdej komórki niewidocznej. Pomoże to również w zaplanowaniu poprawnego wyglądu tabeli, mam nadzieję, że to pomoże:
Sprawdź poprawność układu tabeli ed, tworząc ogromną tabelę z 10 000 wierszami i przetestuj szybkość renderowania w porównaniu do nie ustalonego układu tabeli.
Cała debata na temat HTML 4 vs XHTML, styl vs atrybuty, które moim zdaniem jest naprawdę kwestią łatwości konserwacji. Nie wydaje mi się, żeby było cokolwiek złego ustawienie szerokości przy użyciu stylu lub zwykłej szerokości z przejściem HTML 4, obaj robią to samo. Powodem, dla którego możesz zrobić oba, jest to, że HTML ewoluował nieco, tak, może stać się brudny! Powodzenia
Hej, dzięki! Nie wiedziałem o układzie tabeli: naprawiono. –