J'ai donc ce code ici:
<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>
avec le 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;
}
Cela fonctionne bien sur mon navigateur et je l'ai testé dans tous les navigateurs Mac et PC, mais quelqu'un se plaint que le td
avec le width
de 200 continue de changer de largeur. Je n'ai aucune idée de quoi il parle. Est-ce que quelqu'un sait pourquoi il ou elle voit le changement de largeur sur le td
?
html
css
html-table
width
user979331
la source
la source
Réponses:
Ça devrait être:
ou
Notez que si votre cellule contient du contenu qui ne rentre pas dans le 200px (comme
somelongwordwithoutanyspaces
), la cellule sera néanmoins étirée, sauf si votre CSS contienttable-layout: fixed
pour le tableau.ÉDITER
Comme l'a noté kristina childs dans sa réponse, vous devriez éviter à la fois l'
width
attribut et l'utilisation de CSS en ligne (avec l'style
attribut). C'est une bonne pratique de séparer le plus possible le style et la structure.la source
<table style="table-layout:fixed;">
La largeur et / ou la hauteur des tables ne sont plus standard; comme Ianzz le dit, ils sont obsolètes. Au lieu de cela, la meilleure façon de le faire est d'avoir un élément de bloc à l'intérieur de votre cellule de tableau qui maintiendra la cellule ouverte à la taille souhaitée:
CSS
la source
Cela forcera la largeur stylisée
<td>
. Si le texte le remplit, il chevauchera l'autre<td>
texte. Essayez donc d'utiliser des requêtes multimédias.la source
table-layout:fixed
j'ai attribué des largeurs fixes aux colonnes, donc je ne peuxwidth
plus changer (avec jquery).Vous ne pouvez pas spécifier des unités dans
width
/height
attributs d'une table; ils sont toujours en pixels, mais vous ne devriez pas les utiliser du tout car ils sont obsolètes.la source
Vous pouvez essayer le "tableau-layout: fixed;" à ta table
150px ou la largeur souhaitée.
Référence: https://css-tricks.com/fixing-tables-long-strings/
la source
Vous pouvez utiliser dans la
<td>
balise css:display:inline-block
Comme:
<td style="display:inline-block">
la source
Essayez d'utiliser
espère cette aide
la source
essaye ça:
la source
j'utilise
pour éviter l'enroulement Référence: https://www.w3schools.com/tags/att_td_nowrap.asp
la source
Utilisation
Cela forcera la table à définir une largeur de 100%, puis utilisez ce code
(l'ID de la table est dataTable et a 3 colonnes) pour spécifier la longueur de chaque cellule
la source
Notez que l'ajustement de la largeur d'une colonne dans la tête affectera l'ensemble du tableau
Dans mon cas, la largeur sur le thead> tr remplaçait directement la largeur sur table> tr> td.
la source
J'ai essayé avec de nombreuses solutions mais cela n'a pas fonctionné pour moi, alors j'ai essayé flex avec la table et cela a bien fonctionné pour moi avec toutes les fonctionnalités de table telles que la réduction des bordures et ainsi de suite, seul le changement est la propriété d'affichage
C'était mon exigence HTML
Mon CSS
la source
Ce problème est assez facilement résolu en utilisant
min-width
etmax-width
dans une règle css.HTML
CSS
Cela forcera la première colonne à avoir une largeur de 80 pixels. Habituellement, je n'utilise que max-width sans min-width pour régner dans le texte qui est très parfois trop long à partir de la création d'un tableau qui a une colonne super large qui est principalement vide. La question du PO portait cependant sur la définition d'une largeur fixe, d'où les deux règles ensemble. Sur de nombreux navigateurs
width:80px;
CSS est ignoré pour les colonnes de table. La définition de la largeur dans le HTML fonctionne, mais ce n'est pas la façon dont vous devriez faire les choses.Je recommanderais d'utiliser des règles de largeur minimale et maximale, et de ne pas les définir de la même manière, mais plutôt de définir une plage. De cette façon, le tableau peut faire son travail, mais vous pouvez lui donner des conseils sur ce qu'il faut faire avec un contenu trop long.
Si je veux empêcher le texte de s'habiller et d'augmenter la hauteur d'une ligne - tout en permettant à un utilisateur de voir le texte intégral, j'utilise
white-space: nowrap;
sur la règle principale, puis j'applique une règle de survol qui supprime les règles de largeur et de nowrap afin que l'utilisateur puisse voir le contenu complet lorsqu'il passe la souris dessus. Quelque chose comme ça:CSS
Cela dépend exactement de ce que vous essayez d'accomplir. J'espère que ça aidera quelqu'un. PS En passant, pour iOS, il existe un correctif pour le survol qui ne fonctionne pas - voir CSS Hover ne fonctionne pas sur iOS Safari et Chrome
la source