2009-10-06 10 views
6

Chciałbym zapytać, co jest lepszym sposobem na określenie szerokości kolumny HTML? atrybut width lub atrybut stylu? Zakładając, że używam IE 6. Czy IE renderuje atrybut width lepiej niż styl?Który jest lepszy sposób określania HTML Stała szerokość kolumny (szerokość lub atrybut stylu)

według szerokości atrybutu

<table width="900"> 
    <tr> 
     <td width="450">A</td> 
     <td colspan="2" width="450">B&C</td> 
    </tr> 
    .... 
</table> 

OR przez atrybutu stylu

<table style="width:900px;"> 
    <tr> 
     <td style="width: 450px;">A</td> 
     <td colspan="2" style="width: 450px;">B&C</td> 
    </tr> 
    .... 
</table> 

Odpowiedz

14

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

+0

Hej, dzięki! Nie wiedziałem o układzie tabeli: naprawiono. –

3

Wystarczy dodać <div> tag wewnątrz <td> lub <th> określić szerokość wewnątrz <div>. To ci pomoże. Nic innego nie działa.

np.

<td><div style="width: 50px" >...............</div></td> 
+1

Witam i witamy na naszej stronie. Proszę nie spamuj stare pytania z zaakceptowanymi odpowiedziami z duplikat odpowiedzi, takich jak ten ^^^ i [this] (http://stackoverflow.com/a/10474800/419). Jeśli to robisz, możliwe, że oba pytania są duplikatami, więc oznacz flagę jako taką. W takich przypadkach problem zostaje rozwiązany, więc jeśli nie masz nic nowego do dodania, sugeruję wstawianie nowych pytań bez odpowiedzi. Dzięki. – Kev

Powiązane problemy