W mojej tabeli ustawiam szerokość pierwszej komórki w kolumnie 100px
.
Jednak gdy tekst w jednej z komórek w tej kolumnie jest za długi, szerokość kolumny staje się większa niż 100px
. Jak mogę wyłączyć to rozszerzenie?
html
css
column-width
Misza Moroszko
źródło
źródło
table-layout:fixed;
jest rozwiązaniemOdpowiedzi:
Bawiłem się nim przez chwilę, ponieważ miałem problemy z rozgryzieniem.
Trzeba ustawić szerokość komórki (albo
th
czytd
pracował, ustawić oba) i ustawićtable-layout
sięfixed
. Z jakiegoś powodu szerokość komórki wydaje się pozostać stała tylko wtedy, gdy ustawiona jest również szerokość tabeli (myślę, że to głupie, ale whatev).Przydatne jest również ustawienie tej
overflow
właściwości,hidden
aby zapobiec wyjściu dodatkowego tekstu z tabeli.Powinieneś również zostawić całą granicę i rozmiar CSS.
Ok, oto co mam:
Tutaj jest w JSFiddle
Ten facet miał podobny problem: szerokości komórek tabeli - ustalanie szerokości, zawijanie / obcinanie długich słów
źródło
overflow: visible
przypadku tabel o dynamicznym rozmiarze, o ile rozmiar komórek jest stały i widoczny jest przepełnienie, nie ma znaczenia, czy rozmiar samej tabeli jest większy czy mniejszy niż rzeczywiste komórki.Zobacz: http://www.html5-tutorials.org/tables/changing-column-width/
Po znaczniku table użyj elementu col. nie potrzebujesz tagu zamykającego.
Na przykład, jeśli masz trzy kolumny:
źródło
table-layout: fixed; width: 100%;
. Dzięki!col
do tego. Sugeruje użycie css zastosowanego do<td>
(lub<th
>) - w3schools.com/tags/att_td_width.aspWystarczy dodać
<div>
znacznik do środka<td>
lub<th>
zdefiniować szerokość wewnątrz<div>
. To ci pomoże. Nic innego nie działa.na przykład.
źródło
style="width: 50px"
na<td>
<td>
nie.Jeśli potrzebujesz jednej lub więcej kolumn o stałej szerokości, podczas gdy inne kolumny powinny zmienić rozmiar, spróbuj ustawić obie
min-width
imax-width
tę samą wartość.źródło
table-layout: fixed;
nie działało .Musisz to zapisać w odpowiednim CSS
źródło
To co robię to:
Ustaw szerokość td:
Ustaw szerokość td za pomocą CSS:
Ustaw szerokość ponownie jako maks. I min za pomocą CSS:
Brzmi trochę powtarzalnie, ale daje mi pożądany efekt. Aby to osiągnąć z łatwością, może być konieczne umieszczenie wartości CSS w klasie w arkuszu stylów:
następnie:
Umieść atrybut klasy w dowolnym miejscu
<td>
.źródło
Użyłem tego
źródło
Jeśli nie chcesz mieć stałego układu, określ klasę odpowiedniego rozmiaru kolumny.
CSS:
HTML:
źródło
Pomaga także wstawić ostatnią „komórkę wypełniającą” o szerokości: auto . Spowoduje to zajęcie pozostałej przestrzeni i pozostawi wszystkie pozostałe wymiary, jak określono.
źródło
Spraw, aby zaakceptowana odpowiedź reagowała na małe ekrany, gdy są mniejsze niż stała szerokość.
HTML:
CSS
JS Fiddle
https://jsfiddle.net/w9s3ebzt/
źródło
Ustawienie to:
Pracował dla mnie.
źródło
KAsun ma właściwy pomysł. Oto poprawny kod ...
źródło
Zgodnie z moją odpowiedzią tutaj można również użyć nagłówka tabeli (który może być pusty) i zastosować względne szerokości dla każdej komórki nagłówka tabeli. Szerokość wszystkich komórek w treści tabeli będzie zgodna z szerokością ich nagłówka kolumny. Przykład:
HTML
CSS
Zobaczyć wynik
Alternatywnie, użyj
colgroup
zgodnie z sugestią zawartą w odpowiedzi Hyathina.źródło
W komórce używam elementu :: after, w którym chcę ustawić minimalną szerokość niezależnie od tekstu, tak jak poniżej:
Nie muszę ustawiać szerokości nadrzędnego tabeli ani używać układu tabeli.
źródło
Odkryłem, że odpowiedź KAsun działa lepiej przy użyciu vw zamiast px, tak:
<td><div style="width: 10vw" >...............</div></td>
To była jedyna stylizacja, której potrzebowałem, aby dostosować szerokość kolumny
źródło
Nie trzeba ustawiać
"fixed"
- wystarczy ustawić,overflow:hidden
ponieważ szerokość kolumny jest ustawiona.źródło