28172 sujets

CSS et mise en forme, CSS3

Bonjour !

J'utilise le petit PIE.htc pour m'amuser un peu même sous ie, le problème, c'est que PIE utilise le zoom:1 qui d'après ce que j'ai compris, a quelque-chose à voir avec un certain haslayout !!! Sacré nom d'oiseau celui là !!!
Mon réel problème, c'est que mes cadres arrondis se décale sous ie7 lorsque j'inscris un margin-top à ce cadre. Encore plus étrange, seulement les 2 premiers cadres (ceux affichés à l'écran, les autres sont affichable en scrollant) sont décalés, par contre, aucune marge n'est appliquée aux autres.
Ma page ici

Voici la partie de mon CSS qui d'adresse à cette page

/*boites (cadres)*/
.simplecenter {margin-top:50px}
.simpledr, .simplega , .simplecenter{
	margin-bottom:20px;
/*Bords Arrondis*/
	-webkit-border-radius:15px;
	-moz-border-radius:15px;
	border-radius:15px;
/*ombre box*/
	-webkit-box-shadow: 0 0 5px rgba(0,0,0,0.5),
						0 -1px 0 rgba(255,255,255,0.4);
	-moz-box-shadow:0 0 5px rgba(0,0,0,0.5),
					0 -1px 0 rgba(255,255,255,0.4);
	box-shadow: 3px 3px 3px rgba(0,0,0,0.2),
				-2px -2px 0 rgba(255,255,255,0.6);
	behavior: url(../Arrondis/PIE.htc);
	/* -pie-lazy-init:true;*//*C'était censé éviter d'utiliser trop de ressources en n'activant pie que pour ce qui est affiché, c'est à dire que les bords des divs cachées (scroll) ne seraient pas dessinés, seulement lorsque l'écran les fait apparaitre. Bref, ça ne fonctionne pas sous ie8 !!!*/
}
.simpledr hr, .simplega hr, .simplecenter hr {clear:both;visibility:hidden; height:0;line-height:0;}

/*titres*/
.simplecenter h2 {text-align:center;}
h2 + p{padding-top:15px}
.sstitre { background-color:#666666;}
dt {text-align:center; font-size:1.3em; font-weight:bold}
/*autres textes*/
.simpledr p:first-letter, .simplega p:first-letter, .simplecenter p:first-letter {padding-left:30px}
.simpledr p, .simplega p, .simplecenter p, .simpledr ul, .simplega ul, .simplecenter ul {margin:10px 10px 0 10px; text-align:justify;font-size:1em}
#cheval li {margin-left:20px;list-style-type:disc}

/*images seules*/
.simpledr dd > img {float:right; max-width:50%;margin: 0 0 -2px 10px; max-height:350px;
	-webkit-border-radius:0 15px 15px 0;
	-moz-border-radius:0 15px 15px 0;
	border-radius:0 15px 15px 0;
	behavior: url(../Arrondis/PIE.htc)
}
.simplega dd > img {float:left; max-width:50%;margin: 0 10px -2px 0; max-height:350px;
	-webkit-border-radius:15px 0 0 15px;
	-moz-border-radius:15px 0 0 15px;
	border-radius:15px 0 0 15px;
	behavior: url(../Arrondis/PIE.htc)
}



cette partie de CSS uniquement pour IE qui supprime les ombres de boites :

.simpledr, .simplega, .simplecenter {box-shadow:none; border-top:1px outset #E1E0DF; border-right:2px outset #706C69; border-bottom:2px outset #706C69; border-left:1px outset #E1E0DF}/*voir remarque plus haut : #gauche li.relief1 , j'utilise ici une troisième méthode pour éviter de voir l'ombre de la div sous ie en annulant le box-shadow et en créant des bordures, tout simplement !!!...*/


Enfin, j'ai aussi une feuille conditionnelle IE7.css pour les versions antérieures à IE8 sur laquelle je fais mes tests pour ce problème.


J'ai déjà essayé de mettre la div en position:relative, son contenant "contenu" en relative aussi, tenté de jouer avec des zoom:1 mais là, il me manque des connaissances...
Pour vous aider à vous y retrouver, seules les divs de classe simplecenter devraient avoir une marge haute de 50px.

Merci d'avance si quelqu'un me trouve une solution !!!
Pour le moment, ma seule solution est d'ajouter
.simplecenter {margin-top:0}

à ma feuille IE7.css !!! Mais bon, je suis certain que l'on peut faire mieux !!!
Modifié par jojoledemago (09 Aug 2011 - 15:51)
J'ai du modifier mes ancres car mes titres étaient cachés lorsque je les appelais par un lien dans la page ...
Du coup, je me sers d la div crée autour de mes différentes sections pour faire apparaitre une marge et du coup, plus de padding-top dans des boites aux bords arrondis !

Seul problème qui reste : Les marges hautes disparaissent sous ie7 pour les titres h3 encore.
up ???
Dois-je réellement créer des div partout pour pouvoir mettre des marges à des objets non affectés par PIE.htc ou y a-t-il une autre solution ?
bonjour,bonsoir,

Sans arrogance, laisse tomber pie.htc: IE6 est bien loin , IE7 mal fini et IE8 prédominant chez les utilisateur de IE actuels.
IE9 est sur les nouveaux pc et bien sur dans les mises a jour.
Estimes le border-radius comme un bonus et pas comme une nécessite a tout prix, les box ou text-shadow via activex pour IE sont d'une mocheté* tel qu'il ne vaut pas de les servir.
(*)pas forcement moches mais limité et dépendant du fameux haslayout pour tel ou tel rendu.
Codes façon 2011 + et pas activex IE 1995 a la mode CSS3. L'omportant est que pour les vieux navigateur c'est que la mise en forme reste coherente (autrement dit pas de biotox pour IE7/6/5 et autre "vieux" navigateurs ).

Préserve ton patrimoine capillaire Smiley smile

Cordialement
Bonsoir gc-nomade !
Tout d'abord merci pour cette réponse, je croyais vraiment que j'allais encore faire un sujet où je suis le seul à parler !!!
Pour IE6 et 7, ils rassemblent quand même plus de 20% des utilisateurs français en janvier 2011, je n'ai pas encore vérifié ce que donnait mon site sur IE6 mais je cherche vraiment à ce qu'il soit "beau" sous IE7 (18% pour IE7). Là, je me prends la tête sur Firefox 3.6 pour des trucs que Firefox 5 fait très bien mais c'est encore 30% des utilisateurs !!! Donc si je voulais préserver mon patrimoine capilaire, je ne tiendrais pas compte de 50% des internautes...
Après, il est certain que ce problème de marge ne rend pas le site inaccessible, tu pourras remarqué qu'il est d'ailleurs déjà en ligne comme ça, mais si je pouvais trouver une solution élégante, ce serait un plus !
De toute manière, je commence toujours par coder pour les navigateurs modernes, comme ça, petit à petit, je pourrai supprimer ce qui deviendra obsolète mais mon site est visible dans de bonnes conditions pour la plupart des utilisateurs. Quoi de pire que d'arriver sur un site avec des blocs qui se chevauchent!!!
Dans ce cadre, PIE.htc ne se charge que pour IE et n'est présent que dans une feuille de style conditionnelle, il me permet beaucoup sous IE8 donc je ne le lâcherai pas. Il faudra juste que je teste sou IE9, ce que je ne peux pas faire en ce moment pour éventuellement préciser mes appels conditionnels et donc éviter de faire charger PIE pour rien...
Bref, quelqu'un pour m'aider ???
re, Smiley smile

Peut-etre suffit-il de réadapter les background-positions via CC pour IE au niveau des survols du menu.

En activant le layout , le référent de positionnement peut changer ou être recalculer par IE, sans compter que pie.htc doit produire des element a la volée , modifiant ta structure initiale.

Bonne continuation.

P.S. : pas de soucis visible dans IE9 a premiere vue.
Bonjour !

Merci d'avoir vérifié sous ie9, je n'ai pas encore trouvé un moyen simple de vérifier toutes les versions de tous les navigateurs, même si il y a un tuto à ce sujet sur alsacréation, il me semble avoir lu quelque-part qu'il y avait un soft pour ie mais je n'ai pas encore eu le temps d'y jeter un oeil !

Pour les background position, je n'ai pas de problème, mes soucis sont les marges entre ma boite aux bords arrondis (créés grâce à PIE.htc et sa propriété intrinsèque zoom:1) et mon texte à l'intérieur, surtout visibles sur cette page. J'ai défini un padding-top pour ma boîte mais il disparait sous IE7, un margin-top sur le texte ne fonctionne pas non plus.

J'avais d'ailleurs ouvert ce post avec des margin-top qui disparaissaient entre mes différentes boites (entre les boîtes de description et les boîtes de titre où je voulais un espace plus important). J'ai résolu ce premier problème en enveloppant (sous-titre+contenu du sous-titre) dans une div et imposé une marge entre chacune de ces "div de regroupement. Cela fonctionne ici car PIE.htc n'agit pas sur ces dernières. Ma solution serait donc de créer une div de la même taille exactement que ma boîte arrondie et lui adjoindre un padding-top, mais cela me fait créer beacoup de div pour pas grand chose, donc j'attends de voir si quelqu'un a une meilleure idée...

Smiley eek En écrivant tout ça, je me dis que je vais vérifier où est-ce que le problème se voit le plus et là !!!... tout à disparu... JE N'AI PLUS DE PROBLEME !!! Les marges sont respectées sous IE7 comme ailleurs, les sous-titres des boîtes ne touchent plus les bordures hautes des boîtes. C'est génial !!!

Qu'est-ce que j'ai fait pour ça ? Je ne sais pas trop, j'ai dernièrement modifié mes z-index qui posaient problème car je n'avais pas accès au contenu cliquable (au centre de la page) sous IE7 surtout, une div à fond transparent passait au-dessus et empêchait les réactions attendues lors du passage sur un objet... J'ai du mettre mon body en position relative, justement pour ces histoires de z-index, pour que IE réagisse comme firefox. Et c'est à peu près tous les changements que je pense pouvoir avoir un lien avec cette disparition du problème...

Comme quoi, des fois, il suffit d'attendre !!! Smiley biggrin

A+