Mam nieokreśloną liczbę elementów komórek tabeli w kontenerze tabeli.
<div style="display:table;">
<div style="display:table-cell;"></div>
<div style="display:table-cell;"></div>
</div>
Czy istnieje czysty sposób CSS na uzyskanie równej szerokości komórek tabeli, nawet jeśli zawierają one zawartość o różnej wielkości?
Dzięki.
Edycja: posiadanie maksymalnej szerokości wymagałoby wiedzy, ile masz komórek?
html
css
html-table
Złupić
źródło
źródło
Odpowiedzi:
Oto działające skrzypce z nieokreśloną liczbą komórek: http://jsfiddle.net/r9yrM/1/
Możesz ustalić szerokość dla każdego rodzica
div
( tabeli ), w przeciwnym razie będzie to 100% jak zwykle.Sztuczka polega na użyciu
table-layout: fixed;
i pewnej szerokości każdej komórki, aby ją wywołać, tutaj 2%. To uruchomi drugi algorytm tabeli, ten, w którym przeglądarki bardzo starają się przestrzegać wskazanych wymiarów.Przetestuj w przeglądarce Chrome (i IE8 - w razie potrzeby). Jest w porządku z niedawnym Safari, ale nie pamiętam zgodności tej sztuczki z nimi.
CSS (odpowiednie instrukcje):
EDYCJA (2013): Uważaj na Safari 6 na OS X, ma
table-layout: fixed;
zły (a może po prostu inny, bardzo różniący się od innych przeglądarek. Nie sprawdzałem układu tabeli CSS2.1 REC;)). Przygotuj się na różne wyniki.źródło
div
s, któredisplay:table
mają być używane tak, jakby były rzędami, a niedisplay:tabl-row
tak , jak niektórzy mogą się spodziewać. Przykład tutaj ..my-cell { width: 100%; }; @media screen and (min-width:0\0) { .my-cell { width: 1%; } }
hack CSS pochodzi stąd: stackoverflow.com/a/24321386/6962HTML
CSS
PRÓBNY.
źródło
Samo użycie
max-width: 0
wdisplay: table-cell
elemencie zadziałało dla mnie:źródło
0px
to nie jest ważna jednostka. Po prostu powinno być0
.Zastąpić
z
Przyjrzyj się wszystkim problemom związanym z próbami sprawienia, aby elementy div działały jak tabele. Musieli dodać table-xxx, aby naśladować układy tabel
Tabele są obsługiwane i działają bardzo dobrze we wszystkich przeglądarkach. Po co ich porzucić? fakt, że musieli ich naśladować, jest dowodem, że wykonali swoją pracę i dobrze.
Moim zdaniem użyj najlepszego narzędzia do pracy i jeśli chcesz, aby dane tabelaryczne lub coś przypominającego tabele danych tabelarycznych po prostu działało.
Bardzo późna odpowiedź, którą znam, ale warto ją wyrazić.
źródło
<nav>
,<ul>
itpdisplay: table-etc
(całkiem naturalnie). Nie spędzam dni na tworzeniu linków naśladujących elementy div lub div naśladujące tabele, zakresy lub dane wejściowe: po prostu używam CSS do stylizacji. Na koniec, powodzenia z IE9 w stosowaniu dowolnej innej wartościdisplay
właściwości do elementów table, tr, td.to zadziała dla każdego
Będzie to również działać w przypadku danych tabeli utworzonych przez iterację
źródło
Proszę bardzo:
http://jsfiddle.net/damsarabi/gwAdA/
Nie możesz użyć width: 100px, ponieważ ekran jest typu table-cell. Możesz jednak użyć opcji Max-width: 100px. Twoje pudełko nigdy nie będzie większe niż 100 pikseli. ale musisz dodać przepełnienie: ukryte, aby upewnić się, że kontekt nie przeniknie do innych komórek. możesz także dodać spację: nowrap, jeśli chcesz zapobiec zwiększaniu się wysokości.
źródło
Można to zrobić, ustawiając styl komórki tabeli na
width: auto
, a zawartość pustą. Kolumny mają teraz taką samą szerokość, ale nie zawierają treści.Aby wstawić zawartość do komórki, dodaj za
div
pomocą css:Musisz także dodać
position: relative
do komórek.Teraz możesz umieścić rzeczywistą zawartość w opisanym powyżej div.
https://jsfiddle.net/vensdvvb/
źródło