2010-09-23 5 views
2

Je rend une table html en utilisant javascript & jQuery. Le but est de montrer une boîte colorée (tableau avec td coloré) s'il y a une couleur fournie par paramètre. Si non alors ne rien montrer (donc je montre une table vide avec  ). Mais pour ces deux cas, je ne veux montrer aucune frontière. Je veux une boîte de couleur plate/boîte blanche vide.bordure de tableau html apparaît toujours dans IE8

if (colors == null || colors == '') { 
    return '<table border="0" style="none" cellpadding="0" cellspacing="3"><tr><td>&nbsp;</td></tr></table>' 
} 

Dans IE 6 et 7, je vois des boîtes sans frontière, mais dans IE 8, il montre toujours une frontière à ces de la table td même si je mentionne border = « 0 ». Cela ressemble à une cellule 3D.

Existe-t-il une alternative pour IE8? Le même code fonctionne très bien dans d'autres versions.

Répondre

2

Cela ne semble pas très sain. Vous ne devriez pas utiliser border="0". style="none" est vraiment mystérieux, car CSS est censé être à l'intérieur. none n'est pas valide CSS, car les propriétés CSS sont spécifiées dans les paires clé/valeur. Je recommande ceci:

<table style="border:0px;" cellpadding="0" cellspacing="3"><tr><td>&nbsp;</td></tr></table> 

Vous devriez envisager d'extraire votre CSS dans des fichiers externes. Soyez discret.

+0

J'ai essayé avec "border: 0px;" mais il montre encore la frontière dans IE8 j'ai aussi essayé dans Firefox et la même chose arrive là aussi. Cela fonctionne en mode de compatibilité bien! –

+0

@Anil: Je ne peux pas reproduire cela. Quel est votre doctype? – jwueller

+0

J'utilise la page maître. et le code ci-dessus est dans l'espace réservé de contenu de la page aspx. Et oui, j'utilise le projet C# .Net 3.5 MVC. Ceci est le type de document maître de la page.

1

Selon le commentaire d'elusive, "Vous devriez envisager d'extraire votre CSS dans des fichiers externes", j'essaierais d'ajouter une classe sur la table et de définir des styles de bordure dans une feuille de style externe.

<table class='no-border' ...><tr><td>&nbsp;</td</tr></table> 

Et dans la feuille de style:

.no-border, .no-border td { border:none; } 

Le .no-border td pourrait être la règle dont vous avez besoin pour résoudre le problème que vous voyez, si la frontière est fixé sur une seule cellule et non la table entière.

(Si vous voulez l'essayer en ligne d'abord, essayez <td style="border:none;"></td>.)

0

Votre code HTML semble être incorrect. Vous pouvez le faire soit avec un balisage HTML ou avec CSS.

HTML

<table border="0" cellpadding="0" cellspacing="3"> 

CSS

<table style="border: 0; padding: 0" cellspacing="3"> 
Questions connexes