28111 sujets

CSS et mise en forme, CSS3

Saluton,
J'ai un problème de compatibilité CSS avec IE 6.

J'utilise un tableau html pour visualiser le résultat d'une requête sur une table MySQL.
Le tableau html <table> a un style table-layout-fixed et width:700px, les colonnes ont un style width (dont la somme égale 700px) et un style white-space:nowrap; overflow:hidden.
Ce qui, sous Mozilla, me donne ce que j'attends : des lignes identiques avec des colonnes aux largeurs fixes et pas de retour à la ligne quand le texte est trop long et le dépassement de texte caché.
Mais sous IE 6, nenni, la largeur des colonnes n'est pas fixe et les retours à la ligne y vont bon train.
Quelqu'un connaitrait-il une astuce, une DTD XHTML à mettre en entête, un lien .....
Merci
Bonjour,

Inclure simplement le contenu concerné dans un élément div auquel seront appliquées les propriétés white-space et overflow.
Laurent Denis a écrit :
Bonjour,

Inclure simplement le contenu concerné dans un élément div auquel seront appliquées les propriétés white-space et overflow.

Je n'ose comprendre, s'agit-il d'encapsuler chaque <td></td> dans un <div></div> ?
Une chose est sure, c'est que IE ne comprend pas la propriété white-space dans mes souvenirs.
tyx a écrit :
Une chose est sure, c'est que IE ne comprend pas la propriété white-space dans mes souvenirs.

Faudrait savoir, c'est sûr ou c'est juste dans tes souvenirs.
Car d'aucuns vont jusqu'à me dire qu'IE 6 ne supporte pas le CSS2, à qui se fier ?
En tout cas, 'sémantiquement', passer par des <div><td></td></div> ne me semble pas très indiqué, en outre rien ne dit qu'IE 6 implémente mieux ces attributs de style pour la balise <div></div> que pour la balise <td></td>.
Maljuna Kris a écrit :

Je n'ose comprendre, s'agit-il d'encapsuler chaque <td></td> dans un <div></div> ?


Non, l'inverse bien-sûr :

<td>
   <div>
      ...
   </div>
</td>


IE a du mal avec l'héritage et le layout dans les tableaux. Beaucoup de mal. Il faut lui parler aussi prêt que possible de l'oreille, c'est à dire du contenu qu'on veut styler : appliquer les styles dans les cellules est souvent la solution.
Maljuna Kris a écrit :

En tout cas, 'sémantiquement', passer par des <div><td></td></div> ne me semble pas très indiqué, en outre rien ne dit qu'IE 6 implémente mieux ces attributs de style pour la balise <div></div> que pour la balise <td></td>.


Plus le temps passe (et j'ai commencé très tôt sur ce sujet), et plus j'ignore ce que peux bien être cette mythique sémantique HTML.

En revanche, il y a fort peu de chances que je vous indique un code invalide (<div><td>...</td></div>) à utiliser. Du moins, pas sans vous prévenir Smiley cligne
Laurent Denis a écrit :


http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/whitespace.asp

Bon ok, je t'avais mal compris. Mais je n'en reviens pas qu'il faille encapsuler tous mes contenus de <td> </td>.
Pour ce qui est de la sémantique des balises de l'html, je te renvoie au bouquin de Raphaël, p 9 du chapitre 1:
Les documents Web seront d'autant plus accessibles et faciles à maintenir qu'ils seront balisés "sémantiquement",
 c'est à dire en fonction de leur structure logique et non pas en se focalisant sur l'aspect recherché.
....
C'est toi-même qui le suggère : Demandez-vous pourquoi ? pas comment ? Smiley cligne
En tout cas, merci, parce que, ça le fait.
Par contre, je ne sais pas comment on marque un post comme résolu sur ce forum, dans le titre ?
Modifié par Maljuna Kris (10 Oct 2005 - 16:59)
Sur la sémantique HTML, je te renvoie, si tu permets, à une discussion récente avec l'ami Merkel sur ce forum : http://forum.alsacreations.com/topic.php?fid=4&tid=7520&s=s%E9mantique#p64506 ...

Le "Pourquoi" invite justement à relativiser beaucoup de discours un peu rapides sur la sémantique HTML et sa portée

sinon, sur le "comment" : pour marquer un sujet comme résolu, éditer le premier message initial, qui donne accès au titre et permet d'y ajouter le fatidique [ Resolu] Smiley cligne
Modifié par Laurent Denis (10 Oct 2005 - 17:10)
Ouais, très instructif.
Ma problématique est plus triviale, je code en php une classe homogène d'affichage de tables MySQL pour le maintien des tables de nomenclature d'une appli intranet.
Un de mes problèmes est que la partie des lignes de données soit scrollable verticalement et la partie des en-têtes avec titres figée (comme on peut le faire avec un tableur)
J'ai donc deux tableaux l'un avec juste une ligne<tr></tr> pour les titres et un autre juste en-dessous dans une <div> scrollable.
Le dimensionnement des colonnes est opéré par le code php qui exploite une requête MySQL (DESCRIBE nomtable) et en déduit le nombre et le nom et le type des colonnes pour en automatiser l'affichage formaté.
Toutes les colonnes ont la même largeur et ce n'est qu'un aperçu du contenu chaque ligne <tr> de données est un lien qui permet d'alimenter automatiquement un formulaire pour édition.
Mais certains postes utilisent IE, je leur devais donc une compatiblité d'affichage.