Also habe ich diesen Code hier:
<table>
<tr>
<td width="200px" valign="top">
<div class="left_menu">
<div class="menu_item">
<a href="#">Home</a>
</div>
</div>
</td>
<td width="1000px" valign="top">Content</td>
</tr>
</table>
mit dem CSS
.left_menu {
background: none repeat scroll 0 0 #333333;
border-radius: 5px 5px 5px 5px;
font-family: Arial,Helvetica,sans-serif;
font-size: 12px;
font-weight: bold;
padding: 5px;
}
.menu_item {
background: none repeat scroll 0 0 #CCCCCC;
border-bottom: 1px solid #999999;
border-radius: 5px 5px 5px 5px;
border-top: 1px solid #FFFFCC;
cursor: pointer;
padding: 5px;
}
Es funktioniert gut in meinem Browser und ich habe es in jedem Browser sowohl auf dem Mac als auch auf dem PC getestet, aber jemand beschwert sich, dass sich die Breite des td
mit width
200 ständig ändert. Ich habe keine Ahnung, wovon er spricht. Weiß jemand, warum er oder sie sieht, dass sich die Breite auf dem ändert td
?
html
css
html-table
width
user979331
quelle
quelle
Antworten:
Es sollte sein:
oder
Beachten Sie, dass, wenn Ihre Zelle Inhalte enthält, die nicht in die 200px (wie
somelongwordwithoutanyspaces
) passen , die Zelle trotzdem gedehnt wird, es sei denn, Ihr CSS enthälttable-layout: fixed
für die Tabelle.BEARBEITEN
Wie Kristina Childs in ihrer Antwort vermerkt hat, sollten Sie sowohl das
width
Attribut als auch die Verwendung von Inline-CSS (mit demstyle
Attribut) vermeiden . Es ist eine gute Praxis, Stil und Struktur so weit wie möglich zu trennen.quelle
<table style="table-layout:fixed;">
Breite und / oder Höhe in Tabellen sind nicht mehr Standard. wie Ianzz sagt, sind sie veraltet. Der beste Weg, dies zu tun, besteht darin, ein Blockelement in Ihrer Tabellenzelle zu haben, das die Zelle auf die gewünschte Größe offen hält:
CSS
quelle
Dadurch wird die gestaltete Breite erzwungen
<td>
. Wenn der Text ihn überfüllt, überlappt er den anderen<td>
Text. Versuchen Sie also, Medienabfragen zu verwenden.quelle
table-layout:fixed
Spalten feste Breiten zugewiesen, sodass ich sie nichtwidth
mehr ändern kann (mit jquery).Sie können keine Einheiten in
width
/height
Attribute einer Tabelle angeben . Diese sind immer in Pixel angegeben, aber Sie sollten sie überhaupt nicht verwenden, da sie veraltet sind.quelle
Sie können das "Tabellenlayout: behoben;" zu deinem Tisch
150px oder Ihre gewünschte Breite.
Referenz: https://css-tricks.com/fixing-tables-long-strings/
quelle
Sie können innerhalb des
<td>
Tags CSS verwenden:display:inline-block
Mögen:
<td style="display:inline-block">
quelle
versuchen zu benutzen
Ich hoffe das hilft
quelle
Versuche dies:
quelle
ich benutze
Um Wrap zu verhindern Referenz: https://www.w3schools.com/tags/att_td_nowrap.asp
quelle
Verwenden
Dadurch wird die Tabelle auf 100% Breite gesetzt. Verwenden Sie dann diesen Code
(Tabellen-ID ist dataTable und hat 3 Spalten), um die Länge für jede Zelle anzugeben
quelle
Beachten Sie, dass sich das Anpassen der Breite einer Spalte im Kopf auf die gesamte Tabelle auswirkt
In meinem Fall hat die Breite auf dem Kopf> tr die Breite auf Tabelle> tr> td direkt überschrieben.
quelle
Ich habe es mit vielen Lösungen versucht, aber es hat bei mir nicht funktioniert, also habe ich versucht, mit der Tabelle zu flexieren, und es hat bei mir mit allen Tabellenfunktionen wie Randkollaps usw. gut funktioniert. Nur die Änderung ist die Anzeigeeigenschaft
Dies war meine HTML-Anforderung
Mein CSS
quelle
Dieses Problem lässt sich mit
min-width
undmax-width
innerhalb einer CSS-Regel recht einfach lösen .HTML
CSS
Dadurch wird die erste Spalte mit einer Breite von 80 Pixel erzwungen. Normalerweise verwende ich nur max-width ohne min-width, um in Text zu regieren, der gelegentlich zu lang ist, um eine Tabelle mit einer super breiten Spalte zu erstellen, die größtenteils leer ist. Bei der Frage des OP ging es jedoch darum, eine feste Breite festzulegen, daher beide Regeln zusammen. In vielen Browsern
width:80px;
CSS für Tabellenspalten ignoriert. Das Festlegen der Breite im HTML-Code funktioniert zwar, ist jedoch nicht die Art und Weise, wie Sie Dinge tun sollten.Ich würde empfehlen, Regeln für die minimale und maximale Breite zu verwenden und sie nicht gleich festzulegen, sondern einen Bereich festzulegen. Auf diese Weise kann die Tabelle das tun, aber Sie können ihr einige Hinweise geben, was mit zu langen Inhalten zu tun ist.
Wenn ich verhindern möchte, dass der Text umbrochen wird und die Höhe einer Zeile erhöht wird - und es dennoch einem Benutzer ermöglichen soll, den vollständigen Text zu sehen, verwende ich
white-space: nowrap;
anzuzeigen die Hauptregel und wende dann eine Hover-Regel an, mit der die Regeln für Breite und Nowrap entfernt werden damit der Benutzer den gesamten Inhalt sehen kann, wenn er mit der Maus darüber fährt. Etwas wie das:CSS
Es kommt nur darauf an, was Sie erreichen wollen. Ich hoffe das hilft jemandem. PS Abgesehen davon gibt es für iOS eine Korrektur für das Hover, das nicht funktioniert - siehe CSS-Hover funktioniert nicht unter iOS Safari und Chrome
quelle