2010-08-09 14 views
3

J'ai une table sur où j'ai besoin d'un espacement entre deux lignes <tr> de la table. Je l'ai fait de manière suivante:Ajouter un espacement entre deux lignes dans une table ne fonctionne pas dans IE7

table.fltrTbl 
{ 
    margin:0px; 
    padding:0px; 
    border-collapse:separate; 
    border-spacing:0 11px; 
} 

table.fltrTbl td 
{ 
    vertical-align:middle; 
    padding-right:14px; 
    padding-left:0; 
    padding-top:0; 
    padding-bottom:0; 
    margin:0; 
} 

table.fltrTbl tr 
{ 
} 

Mais, cette solution ne fonctionne pas avec IE7. Pouvez-vous suggérer des changements à cette classe pour que cela fonctionne dans IE7?

Note: Veuillez ne pas répondre en appliquant une classe distincte à chaque tableau tr dans.

Répondre

5

Essayez de supprimer l'espacement des bords, modifiez l'effondrement des bordures pour réduire et utilisez simplement le remplissage td pour créer l'espacement.

+0

A travaillé! Merci .. – Mayur

+0

Malheureusement, le remplissage ne fonctionne pas bien avec vertical-aligner: milieu – NetMage

3

IE7 ne prend pas en charge border-spacing du tout. (Et IE 8 seulement avec une valeur). Pour IE7, vous pouvez utiliser l'attribut HTML cellspacing à la place - mais également uniquement avec une valeur pour l'espacement horizontal et vertical. La seule façon d'avoir un espace horizontal dans la table est d'utiliser une ligne et une cellule vides.

+0

c'est faux, cela fonctionne dans IE7. '* border-collapse: expression ('séparé', cellSpacing = '5px');' – Nepaluz

+0

@Nepaluz Pouvez-vous montrer de la documentation sur comment cela fonctionne? – RoToRa

+0

quelle documentation IE7? Pourquoi ne pas simplement lancer IE7 et voir si cela fonctionne? Je sais que cela marche: 1. En pré-ajoutant l'étoile (*) avant la déclaration (un hack largement connu pour IE7) et 2. En appliquant une expression (la façon dont MS aime les choses faites). Je pourrais être plus verbeux ..... – Nepaluz

1

J'ai obtenu l'effet désiré en utilisant border: 2px solid transparent seulement pour IE7 (vous pouvez utiliser les commentaires conditionnels pour appliquer ce style uniquement à IE7).

Dans l'exemple donné, j'ai ajouté une bordure transparente 2px tout autour du td, mais ce pourrait être les valeurs que vous voulez, et cela fonctionne pour des bordures spécifiques telles que border-left ou border-bottom.

1

Pour moi changer le border-collapse property à border-collapse: separate sur l'élément td est ce qui a fonctionné. Selon le W3C, lors de l'utilisation collapseles propriétés d'espacement des bordures et de cellules vides seront ignorées. Lorsque vous utilisez separate propriétés d'espacement des frontières sont honorés, et c'est ce que nous voulons.

1

je trouve une solution par l'expression:

*border-collapse: expression('separate', cellSpacing = '5px'); 
0

Pour ajouter un espacement à mes éléments de menu que j'ai utilisé un attribut bas rembourrage dans mon css.

<style> 
div.c4 { 
      font-family: Arial, Helvetica, sans-serif; 
      font-size: 12px; 
      font-weight: bold; 
      text-align: left; 
      color: #800000; 
      padding-bottom: .5em; 
     } 
</style 

Le code HTML:

<table width="15%" style="margin: auto;" > 
<tr> 
<th scope="col"> 
<div class="c4">Home</div> 
<div class="c4">About Me</div> 
<div class="c4">Photographs</div> 
<div class="c4">Locations</div> 
<div class="c4">Testimonials</div> 
</th> 
</tr> 
</table> 

ici est mon exemple jsFiddle: http://jsfiddle.net/IConway/htsqoe7j/