28173 sujets

CSS et mise en forme, CSS3

hello!

comme toujours, un souci sous IE, mon contenu central subit des petits décalages sur les cotés (visiblement les 3px de marge bugués de IE) :
http://www.elianora-la-blanche.info/sda

tout mon centre est en variable, je vois mal comment réduire la taille de quoi que ce soit pour faire rentrer tout ça dans l'ordre
j'ai essayé de compenser les marges mais avec un affichage correct sous IE, bien sûr c'est tout décalé chez les autres

je vois plus bien ce que je pourrais modifier de plus (ou de moins), je sèche

le code html (en partie) :
<div class="chg"><div class="chd"><h3 class="titrebloc">Les liens</h3></div></div>
<div class="cmg"><div class="cmd">
<p class="texte">
bla bla de contenu
</p>
</div></div>
<div class="cbg"><div class="cbd"></div></div>


et la css qui va avec :
.chg {
    background: url(coinhg.jpg) no-repeat left top;
    height: 43px;
}
.chd {
	background: url(coinhd.jpg) no-repeat right top;
    height: 43px;
    text-align: left;
}

.cmg {
	background: url(coinmg.jpg) repeat-y left;
}
.cmd {
	background: url(coinmd.jpg) repeat-y right;
}

.cbg {
    background: url(coinbg.jpg) no-repeat left bottom;
    height: 16px;
}
.cbd {
    background: url(coinbd.jpg) no-repeat right bottom;
    height: 16px;
}

p.texte {
	padding: 0px 20px 10px 20px;
    text-align: justify;
}


merci d'avance, si j'arrive à arranger ce bazar là j'aurai fini ce fameux site
Modifié par Elianora la blanche (03 Mar 2006 - 12:19)
essaie de placer dans le div en question : font-size:0em;line-height:0em;

Une autre solution consiste à supprimer les espaces du code html(méthode expliquée dans le livre de jeffrey zeldman):
ce code avec des espaces produit un bug sur ie :

<a href="#">
   <img src='blabla'>
</a>


alors que
<a href="#"><img src='blabla'></a>

s'affichera correctement.
Modifié par Ralfman68 (02 Mar 2006 - 19:09)
ah la galère, c'est pratique du code pas indenté
je vais tenter ça

edit : le résultat n'est pas des plus probant : en changeant la taille du texte et de l'interlignage, ça ne change rien; en "désindentant", ça ne change rien; et les deux ensemble c'est pareil
Modifié par Elianora la blanche (02 Mar 2006 - 19:28)
Je me pose la question.

D'un point de vue technique, faire télécharger aux navigateurs des élements qui ne leurs servent pas est un peu étrange. De plus, l'action de !important perturbe la cascade CSS et peut être à l'origine de nombreuses heures perdues pour comprendre pourquoi telle règle CSS s'obstine à ne pas s'appliquer (ou aors on regarde 5 minutes avec le DOM inspector et on découvre cette règle flanquée de son !important qui rend tout effort inutile).

Bref, même si la maintenance de deux feuilles de style au lieu d'une seule est un peu plus complexe et demande beaucoup de rigeur (puisque ne vont dans la feuille de style que les élements spécifiques à I.E. -inutile de dupliquer entièrement la CSS), c'est tout de même plus confortable.
Bonjour,

Commentaires conditionnels, please. Parce que c'est prévu pour cibler uniquement le navigateur concerné, que c'est documenté, que ce n'est pas un accident mais une fonctionnalité et que c'est pérenne.

On ne va pas revenir sur la fragilité inhérente à un hack (certes valide) jouant sur un bug d'implémentation pour en compenser un autre, et sans assurance quant au lendemain.

please... Smiley cligne

Maintenant, pour le three pixels jog précisément : si les 3 pixels ont de raisonnables chances de passer totalement inaperçus pour 80% des utilisateurs d'IE... Ne rien faire et lâcher prise sur le design, c'est bien aussi Smiley smile
Modifié par Laurent Denis (03 Mar 2006 - 11:47)
c'est bien aussi mais c'est de suite moins joli Smiley langue

je vais séparer mes bouts de css spéciale IE

merci encore!
Modifié par Elianora la blanche (03 Mar 2006 - 12:19)