2012-10-19 13 views
14

Mam tabelę z width: 100% i element w tej tabeli z width: 40em; max-width: 100%, ale element wciąż rozciąga stół, gdy okno przeglądarki staje się zbyt małe.Tabela HTML - maksymalna szerokość nie działa na td potomkach

Chcę, aby ten element miał stałą szerokość, ale nie był większy niż kontener, jeśli kontener jest zbyt mały. Jeśli nie ma wystarczająco dużo miejsca na ustaloną szerokość, max-width: 100% powinien zmniejszyć rozmiar, aby zmieścił się w dostępnej przestrzeni. Działa to poza stołem.

Należy pamiętać, że max-width nie znajduje się na samym stole. W rzeczywistości jest to element <input>, chociaż kod, który podłączyłem, zawiera osobną tabelę z tym samym problemem na elemencie <span>. Zawiera również pole <input> poza tabelą, które zachowuje się poprawnie.

link to jsfiddle

Odpowiedz

20

Należy użyć table-layout: fixed dla elementu tabeli, aby uzyskać max-width właściwości potomków <td> „s do pracy.

Z MDN:

table-layout właściwość CSS określa algorytm, który będzie używany do układ komórek tabeli, wierszy i kolumn.

stałym wartość:
szerokości stołowe i kolumna są przez szerokości elementów tabeli Col lub szerokość pierwszego rzędu komórek. Komórki w kolejnych wierszach nie mają wpływu na szerokości kolumn.

table { 
    table-layout: fixed; 
} 

WORKING DEMO.

+0

To z pewnością wygląda ładniej niż mój przykład i lepiej ilustruje perwersje modelu pudełkowego (które głównie dotyczyłem dokończenia, na wypadek gdyby były częścią problemu). Nie rozwiązuje to jednak mojego problemu. – meustrus

+1

Nie pamiętam, dlaczego to nie działało wcześniej, ponieważ wydaje się działać teraz zgodnie z oczekiwaniami. – meustrus

2

jeśli umieścić go na elemencie, element zostanie rozciągnięty do max-width: 100%.

Jeśli chcesz stałej szerokości znaków, należy width: 40px (zamiast%, procenty są wykorzystywane w układach ciekłych)

+0

... Zmieniłeś odpowiedź całkowicie oddając mój poprzedni komentarz bzdury. Teraz brzmi to tak, jakbyście nie rozumieli "maks. Szerokości" lub tego, co próbuję zrobić. – meustrus

+0

o ok. co chcesz osiągnąć, określone układy muszą mieć określone piksele. –

+0

To nie jest układ strony. Sam układ strony umożliwia płynną szerokość stołu (100%). Element w tabeli to pole wejściowe, które powinno być wyświetlane z jego natywną szerokością, ale jeśli nie ma wystarczającej ilości miejsca, powinno się zmniejszyć, aby dopasować się do dostępnej przestrzeni. – meustrus

Powiązane problemy