Edit - Titre Original: Est t-il un autre moyen d'atteindre border-collapse:collapse dans le CSS (dans l'ordre d'avoir un effondrement de l', arrondi le coin de la table)?
Puisqu'il s'avère que le fait de simplement obtenir la table des frontières de l'effondrement ne résout pas le problème à la racine, j'ai mis à jour le titre afin de mieux rendre compte de la discussion.
Je suis en train de faire un tableau avec des coins arrondis en utilisant le CSS3 border-radius de la propriété. Les styles de tableau, je suis en utilisant ressembler à quelque chose comme ceci:
table {
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px}
Voici le problème. Je tiens également à définir le border-collapse:collapse de la propriété, et si c'est le set border-radius ne fonctionne plus (au moins dans Firefox)(edit - j'ai pensé que cela pourrait être simplement une différence dans mozilla mise en œuvre, mais il s'avère que c'est la façon dont il est censé travailler, selon le w3c). Est-il en fonction de CSS façon je peux obtenir le même effet que border-collapse:collapse sans vraiment l'utiliser?
Modifications:
J'ai fait une simple page pour illustrer le problème ici (Firefox/Safari).
Il semble qu'une grande partie du problème est que la définition de la table pour avoir des coins arrondis n'affecte pas les coins de l'angle des éléments td. Si la table a une seule couleur, ce ne serait pas un problème puisque je pourrait faire le haut et le bas de td coins arrondis pour la première et dernière ligne, respectivement. Cependant, je suis en utilisant différentes couleurs de fond pour le tableau de différencier les en-têtes et de l'entrelacement, de sorte que l'intérieur des éléments td devaient montrer leur coins arrondis.
Résumé de la proposition de solutions:
Entourant la table avec un autre élément avec des coins ronds ne fonctionne pas parce que la table des coins carrés "saigner à travers."
La spécification de la largeur de la bordure à 0 n'a pas d'effondrement de la table.
Fond td coins encore en place après la mise cellspacing à zéro.
À l'aide de javascript au lieu de cela évite le problème.
Solutions possibles:
Les tables sont générées en php, je pouvais l'appliquer à une classe différente pour chaque de la face externe de th/tds et le style de chaque coin séparément. Je préfère ne pas le faire, puisqu'il n'est pas très élégant et un peu de douleur à s'appliquer à plusieurs tables, veuillez donc garder des suggestions à venir.
Solution 2 est d'utiliser javascript (jQuery, plus précisément) de style les coins. Cette solution fonctionne aussi, mais pas encore tout à fait ce que je cherche (je sais je suis pointilleux). J'ai deux réserves: 1) c'est un très léger site, et j'aimerais garder le javascript pour le strict minimum 2) le cadre de l'appel à l'aide de border-radius a pour moi, c'est la dégradation gracieuse et d'amélioration progressive. En utilisant border-radius pour tous les coins arrondis, j'espère avoir toujours arrondi site en CSS3-navigateur compatible et cohérente place du site dans d'autres (je suis à la recherche à vous, c'est à dire).
Je sais que d'essayer de le faire avec CSS3 aujourd'hui peut sembler inutile, mais j'ai mes raisons. Je tiens également à souligner que ce problème est une conséquence de la w3c speficication, pas pauvres, CSS3, de sorte que toute solution sera toujours pertinent et utile lorsque l'on CSS3 a plus d'un large soutien.