2010-01-13 5 views
1

Je rencontre un gros problème de style avec certaines lignes de tableau. Selon cette capture d'écran:Problème lors de l'alignement vertical des éléments des cellules de tableau adjacentes

alt text http://img706.imageshack.us/img706/9852/rowcellswontalign.png

Les cercles bleus et rouges sont des cellules dans une rangée de table (dont la hauteur est 50px). Les deux sont stylés avec "vertical-align: top". Les données du numéro de téléphone (dans le cercle rouge) sont en fait une chaîne délimitée par des tuyaux où j'ai substitué des ruptures HTML pour les tuyaux. Dans le cercle vert, l'étiquette de télécopie est "vertical-align: top", mais la liste actuelle des numéros de télécopie (également délimitée) correspond à l'alignement vertical: milieu.

Ce que je veux, c'est que ces choses soient parfaitement alignées, le numéro de téléphone/fax étant aligné verticalement avec l'étiquette. Est-ce que ma substitution de coupures de tuyaux dans les chaînes de téléphone/fax est la cause de ce problème? Y at-il un moyen que je peux obtenir ce que je veux sans modifications à la table/application de base de données?

Mise à jour: Je l'ai fait en quelque sorte via un rembourrage sur la cellule de table. Je dis en quelque sorte parce que ça a l'air surtout aligné, mais j'ai l'impression que ça ne se passe pas parce que je le veux, mais par hasard. Et que cela me trahira un jour quand j'en aurai besoin.

Répondre

2

Essayez le CSS suivant:

table td, table th { 
    vertical-align: top; 
} 

Vous ne devriez probablement pas compter sur valign et tout ça, c'est long depuis été remplacé par CSS.

+0

J'avais tort; ils sont stylés de la manière CSS. Mon erreur. – peacedog

+0

Je me suis trompé sur la façon dont le style est fait; c'est css conduit. – peacedog

+0

Et je suis un idiot qui vient d'oublier qu'il a commenté environ une demi-minute avant quelques secondes auparavant. – peacedog

0

Vous les appelez labels (comme ils le sont sémantiquement), utilisez-vous également la balise labels? si c'est le cas, vérifiez s'il contient des règles CSS qui gâchent les choses.

1er (bleu/rouge) cela semble bizarre s'ils sont tous les deux valign: top. avez-vous vérifié si l'étiquette a une marge supérieure ou un remplissage, ou une règle css avec vertical-align: middle?

2ème cas (vert), vous aurez besoin de les aligner sur le haut et .. si l'on est moyenne et l'autre en haut vous ne pouvez jamais les aligner ..

1

Je suis d'accord avec la mise en œuvre de Parrot de CSS pour cela, vous devez également noter que le fait d'avoir des polices et des tailles de police différentes dans les cellules les rendra mal alignées, même avec le même style appliqué à chacune. Si l'alignement est important pour l'apparence de la page que vous créez, je considérerais de séparer à nouveau les données et de faire de chaque numéro de téléphone/fax son propre en-tête avec une ligne d'en-tête "Téléphone" et "Fax" ayant colspan="2".

*------------------------* 
| Phone:     | 
|------------------------| 
| Back: | xxx-xxx-xxxx | 
|------------------------| 
| Front: | xxx-xxx-xxxx | 
|------------------------| 
| Fax:     | 
... etc.    

Et non, la substitution de | avec <br /> aura pas d'effet négatif sur l'apparence des tables, tant qu'il n'y a pas de LEADING | s.

+0

Je me suis trompé sur la façon dont le style d'alignement vertical a été fait, fwiw. – peacedog

+0

Oui, j'avais le sentiment que j'allais regretter de ne pas avoir de champs téléphoniques séparés. Le problème est, je ne peux pas parler du nombre de numéros de téléphone/fax seront listés (je pense que cela pourrait être plus de quatre à l'avenir, dans certains cas). Ni ce que les étiquettes seront. Et j'essayais de capturer l'apparence d'une application plus ancienne. Je peux encore changer cela et aller dans des champs séparés. – peacedog

+0

Si vous utilisez une sorte de langage côté serveur dans les coulisses, vous pouvez générer chaque ligne et l'étiqueter de manière appropriée si elle a une valeur. Sinon, si aucune valeur n'existe pour ce champ, il vous suffit de laisser la ligne entièrement. De cette façon, vous pouvez déclarer les lignes dynamiquement si nécessaire, et vous n'avez pas autant de soucis avec le style. –

Questions connexes