Css, float et IE
Fermé
Straw
-
23 janv. 2008 à 15:19
alymira Messages postés 7 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 16 octobre 2012 - 16 oct. 2012 à 11:12
alymira Messages postés 7 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 16 octobre 2012 - 16 oct. 2012 à 11:12
A voir également:
- Float css
- Enlever le soulignement d'un lien css ✓ - Forum CSS
- Background color css ✓ - Forum CSS
- Taille bouton css - Forum HTML
- Comment créer un lien non souligné ✓ - Forum Réseaux sociaux
- Css download - Télécharger - HTML
10 réponses
A creuser:
utiliser un float avec Firefox ET IE est possible.
Par contre, les marges sont alors doublées avec IE.
La solution: utiliser le mot clef !important lors de la definition des margin / padding.
!important fait partie de la norme W3C, mais encore une chose que IE ne respecte pas
Firefox va considérer le parametre CSS contenant !important comme prioritaire
IE va tout simplement l'ignorer
Exemple de code CSS compatible:
float: left;
margin-left: 40px !important; /* pris en compte par Firefox */
margin-left: 20px; /* pris en compte par IE*/
utiliser un float avec Firefox ET IE est possible.
Par contre, les marges sont alors doublées avec IE.
La solution: utiliser le mot clef !important lors de la definition des margin / padding.
!important fait partie de la norme W3C, mais encore une chose que IE ne respecte pas
Firefox va considérer le parametre CSS contenant !important comme prioritaire
IE va tout simplement l'ignorer
Exemple de code CSS compatible:
float: left;
margin-left: 40px !important; /* pris en compte par Firefox */
margin-left: 20px; /* pris en compte par IE*/
il te manque un display: inline;
pour tes élément en float left et qui ont un margin left
voila
pour tes élément en float left et qui ont un margin left
voila
salut,
au lieu de rajouter "!important", il est vraiment préférable de créer une feuille de style spéciale pour IE. En effet, IE7 reconnaît le "!important" alors qu'il ne gère toujours pas mieux les modèles de boite.
Pour cela il suffit de rajouter dans le header de ta page html
<!--[if IE]>
<link rel="stylesheet" media="screen" type="text/css" title="feuille de style pour IE" href="css/style_ie.css" />
<![endif]-->
et de modifier à loisir cette nouvelle feuille de style qui ne sera lu que par IE.
Il existe de nombreuses options pour cibler la version de IE que tu peut trouver facilement sur google.
au lieu de rajouter "!important", il est vraiment préférable de créer une feuille de style spéciale pour IE. En effet, IE7 reconnaît le "!important" alors qu'il ne gère toujours pas mieux les modèles de boite.
Pour cela il suffit de rajouter dans le header de ta page html
<!--[if IE]>
<link rel="stylesheet" media="screen" type="text/css" title="feuille de style pour IE" href="css/style_ie.css" />
<![endif]-->
et de modifier à loisir cette nouvelle feuille de style qui ne sera lu que par IE.
Il existe de nombreuses options pour cibler la version de IE que tu peut trouver facilement sur google.
Bonjour,
j'ai fait un copier-coller tel quel du code que tu as donné (en changeant le nom de ma feuille de style bien sur) mais j'ai beau modifier mes parametres dans mais feuille_ie.css, ca ne change pas l'apparence de ma page sous IE.
Du coup j'ai des margin-top beaucoup trop grand et ma mise en page est totalement déglinguée !
Ya pas autrechose, un autre code, une autre manière de proceder ?
Merci pr votre aide
j'ai fait un copier-coller tel quel du code que tu as donné (en changeant le nom de ma feuille de style bien sur) mais j'ai beau modifier mes parametres dans mais feuille_ie.css, ca ne change pas l'apparence de ma page sous IE.
Du coup j'ai des margin-top beaucoup trop grand et ma mise en page est totalement déglinguée !
Ya pas autrechose, un autre code, une autre manière de proceder ?
Merci pr votre aide
incode
Messages postés
8
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
13 mars 2017
14 oct. 2011 à 16:02
14 oct. 2011 à 16:02
Il faut le mettre en dessous de l'appel de la première feuille css et pas avant
alymira
Messages postés
7
Date d'inscription
lundi 15 octobre 2012
Statut
Membre
Dernière intervention
16 octobre 2012
16 oct. 2012 à 10:03
16 oct. 2012 à 10:03
Bonjour,
J'ai fait ce que vous avez dit, j'arrive à modifier des couleurs et d'autres choses depuis ma css_ie, mais mon problème de boite est inchangé... Pourriez-vous m'aider svp? que faut-il mettre dans la css_ie pour avoir le contenu de ma page à droite de mon menu flottant (float:left), et pas en diagonale en bas???
J'ai fait ce que vous avez dit, j'arrive à modifier des couleurs et d'autres choses depuis ma css_ie, mais mon problème de boite est inchangé... Pourriez-vous m'aider svp? que faut-il mettre dans la css_ie pour avoir le contenu de ma page à droite de mon menu flottant (float:left), et pas en diagonale en bas???
Un conseil pour l'utilisation des float, la majorité des problèmes lui étant associés sont dus aux attributs "width" et "overflow".
Donc pour "width", il faut spécifier une largeur à chaque élément flottant, cette largeur doit être très précise et doit être ajoutée a celle d'éventuels padding, margin, border. Et bien entendu, la somme de tout cela ne doit pas dépasser la largeur du conteneur de l'élément flottant.
Pour l'overflow, il faut le mettre en "hidden" dans la majorité des cas.
Autrement il faut utiliser la propriété "clear" pour supprimer l'effet des flottants sur les boites les suivant.
Donc pour "width", il faut spécifier une largeur à chaque élément flottant, cette largeur doit être très précise et doit être ajoutée a celle d'éventuels padding, margin, border. Et bien entendu, la somme de tout cela ne doit pas dépasser la largeur du conteneur de l'élément flottant.
Pour l'overflow, il faut le mettre en "hidden" dans la majorité des cas.
Autrement il faut utiliser la propriété "clear" pour supprimer l'effet des flottants sur les boites les suivant.
j'ai eu le meme probleme et j'ai du appliqué de codage différent
un pour ie et l'autre pour firefox
ou autre solution rapide que j'ai testé
mettre le lien pour télécharger firefox ou alors de dire aux gens de s'adapter
mais quelqu'un d'autre aura peut etre une meilleure solution
un pour ie et l'autre pour firefox
ou autre solution rapide que j'ai testé
mettre le lien pour télécharger firefox ou alors de dire aux gens de s'adapter
mais quelqu'un d'autre aura peut etre une meilleure solution
alymira
Messages postés
7
Date d'inscription
lundi 15 octobre 2012
Statut
Membre
Dernière intervention
16 octobre 2012
16 oct. 2012 à 09:51
16 oct. 2012 à 09:51
bonjour,
J'essaie de faire 2 css différents, mais je ne sais quoi mettre dans le css_ie pour que ça fonctionne... pouvez-vous m'aider svp? Un exemple de code? merci
J'essaie de faire 2 css différents, mais je ne sais quoi mettre dans le css_ie pour que ça fonctionne... pouvez-vous m'aider svp? Un exemple de code? merci
alymira
Messages postés
7
Date d'inscription
lundi 15 octobre 2012
Statut
Membre
Dernière intervention
16 octobre 2012
16 oct. 2012 à 10:05
16 oct. 2012 à 10:05
j'arrive à modifier des choses depuis ma css_ie, mais mon problème principal reste inchangé :(. (j'ai exactement le même souci que le post principal). Heelllppp pleeaase
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Darkito
Messages postés
1191
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
545
23 janv. 2008 à 15:33
23 janv. 2008 à 15:33
Bonjour,
La réponse est dans le titre de ton message =o)
En effet, IE n'aime pas trop les floats...
Essaie en mettant float:left dans ton corps également.
En gros, tu mets float left si su tu veux des div sur la même ligne.
Ce n'est pas l'utilisation "propre" de float mais il semble que ce soit la seule qui fonctionne sous IE.
--
Tøƒ
La réponse est dans le titre de ton message =o)
En effet, IE n'aime pas trop les floats...
Essaie en mettant float:left dans ton corps également.
En gros, tu mets float left si su tu veux des div sur la même ligne.
Ce n'est pas l'utilisation "propre" de float mais il semble que ce soit la seule qui fonctionne sous IE.
--
Tøƒ
ok, je vais essayer de mettre un float left sur le corps et je reviens vers vous ;
Y a-t-il autre chose que le float ? Si j'utilise des positions absolues, je ne vais plus pouvoir centrer mon design, non ?
Pour Thilde : qd tu dis que tu as appliqué un codage différent "un pour ie et l'autre pour firefox ", comment tu fais ? on peut reconnaitre le navigateur de l'internaute et choisir un CSS en fonction ?
Y a-t-il autre chose que le float ? Si j'utilise des positions absolues, je ne vais plus pouvoir centrer mon design, non ?
Pour Thilde : qd tu dis que tu as appliqué un codage différent "un pour ie et l'autre pour firefox ", comment tu fais ? on peut reconnaitre le navigateur de l'internaute et choisir un CSS en fonction ?
LeRenardDuWeb
Messages postés
3211
Date d'inscription
vendredi 19 mars 2004
Statut
Contributeur
Dernière intervention
26 décembre 2008
419
11 mai 2008 à 11:12
11 mai 2008 à 11:12
Bonjour,
Je cherchais une solution à ce problème de cohabitation que rencontrent parfois FF et IE au niveau des marges.
J'y suis arrivé avec l'aide de ton conseil :
margin-left: 240px !important; /* pris en compte par Firefox */
margin-left: 0px; /* pris en compte par IE*/
Merci Moulloud.
Je cherchais une solution à ce problème de cohabitation que rencontrent parfois FF et IE au niveau des marges.
J'y suis arrivé avec l'aide de ton conseil :
margin-left: 240px !important; /* pris en compte par Firefox */
margin-left: 0px; /* pris en compte par IE*/
Merci Moulloud.
alymira
Messages postés
7
Date d'inscription
lundi 15 octobre 2012
Statut
Membre
Dernière intervention
16 octobre 2012
15 oct. 2012 à 15:02
15 oct. 2012 à 15:02
Bonjour, j'ai exactement le même problème que le sujet principal de cette page. J'ai lu les comment, et essayé chaque méthode décrite ci-dessus, sans succès... :( qu'ai-je donc raté, ou il ya-t-il une raison "normale" cela? existe-il d'autres solutions? aidez-moi svp, merci
alymira
Messages postés
7
Date d'inscription
lundi 15 octobre 2012
Statut
Membre
Dernière intervention
16 octobre 2012
16 oct. 2012 à 11:12
16 oct. 2012 à 11:12
Re-bonjour,
je viens de résoudre mon problème ^^!! Je te l'explique en exemple:
Soit <div id="menu"></div> l'élément que tu veux faire flotter à gauche, et <div id="contenu"></div> ton contenu à mettre à droite du menu flottant.
Je n'applique pas l'élément float directement sur ma div "menu", mais je l'entoure d'une autre div à laquelle sera appliqué le float. On a donc:
<div id="div_float">
<div id="menu"></div>
</div>
<div id="contenu"></div>
Voici mon css:
#div_float{
float:left;
width:221px;
height:100%;
}
#menu{
display:block;
width:220px;
height:100%;
overflow:hidden;
margin-left: 1em !important;
marginleft:0.2em;
}
#contenu{
display:block;
width: 850px;
overflow: hidden;
margin-left: 15em !important;
margin-left:7em;
}
Bien sur tu adapte les mesures à ce que tu veux.
Par contre, je ne sais pas si toutes les données (overflow, margin-left, etc) sont indispensables, j'ai tout recopié car ça passe bien chez moi du coup.
Si vous auriez des conseils, des idées pour améliorer, optimiser ce code, n'hésitez pas :)
je viens de résoudre mon problème ^^!! Je te l'explique en exemple:
Soit <div id="menu"></div> l'élément que tu veux faire flotter à gauche, et <div id="contenu"></div> ton contenu à mettre à droite du menu flottant.
Je n'applique pas l'élément float directement sur ma div "menu", mais je l'entoure d'une autre div à laquelle sera appliqué le float. On a donc:
<div id="div_float">
<div id="menu"></div>
</div>
<div id="contenu"></div>
Voici mon css:
#div_float{
float:left;
width:221px;
height:100%;
}
#menu{
display:block;
width:220px;
height:100%;
overflow:hidden;
margin-left: 1em !important;
marginleft:0.2em;
}
#contenu{
display:block;
width: 850px;
overflow: hidden;
margin-left: 15em !important;
margin-left:7em;
}
Bien sur tu adapte les mesures à ce que tu veux.
Par contre, je ne sais pas si toutes les données (overflow, margin-left, etc) sont indispensables, j'ai tout recopié car ça passe bien chez moi du coup.
Si vous auriez des conseils, des idées pour améliorer, optimiser ce code, n'hésitez pas :)
Bonjour, pour un div l'un au dessus de l'autre et suite à un décalage vertical entre Firefox et IE7 à cause d'un form dans le div du dessus, j'ai trouvé comme solution de mettre une marge presque inverse en mettant margin-bottom: 15px; pour le div au dessus et margin-top: -10px; pour le div en dessous. Même principe pour le premier div au dessus du form1 avec margin-bottom: 15px; et margin-top: -5px; pour le second div.
Voila si ça peut aider en adaptant le principe de *marge presque inverse* (nom venant d'être inventé).
J'ai moi-même un problème de positionnement mais c'est par manque de connaissance sur le sujet (je cherche sur le web de l'aide mais pas que sur le positionnement, des bouts de codes simples avec explications et cette page fait partie de ma recherche : 162 onglets ouverts ; voir l'addon pour Firefox 'Tab Counter').
Je voudrais centrer 2 lignes alignées au bord gauche sous un textarea (form2) lui-même centrer (Une aide je crois que j'ai trouvée qu'il faut que j'étudie ici : openweb.eu.org/IMG/article45/annexe1.html ). Et je voudrais pour faire un formulaire à onglet sans décentrer le textarea, mais en utilisant des boutons radios, placer les boutons radios à gauche du textarea = comment ne pas décentrer le texaera et placer les boutons radios à gauche ?.
Accessoirement (pour votre aide), je veux pouvoir enregistrer le textaera dans un fichier en local afin de facilité la tâche de l'utilisateur et exécuter le script (.vbs) même sans enregistrement à partir de la page ouverte.
Comment (j'ai vu la faq ccm mais c'est pas clair pour moi) lire le code de la page ouverte elle-même et l'insérer dans le texarea toujours sur la même page tout ET EN partie (= au choix du lecteur OU moi) ? Avec un code simple et détaillée sans fichier externe hormis la page html elle-même ? Merci. Bouton script et script interne et code '.vbs' autorisé ; le code vbs est l'origine du projet et tout le code libre utilisé reste libre. Merci.
1 seul fichier html contenant le textaera à enregistrer pour un fonctionnement en local = style css interne ; voir même placé dans les balises comme la présentation (du code je parle) ci-dessus.
Pour les balises form peut-on mettre les mêmes balises styles de positionnement que dans un div pour évité un décalage, voir remplacer une balise div par une balise form pour éviter un décalage (double?) ? form = div ? div + form et inversement = double décalage ? Si l'on utilisent des div, un div de positionnement (c'est bien le but des div = positionner ?) du formulaire sur la page (au plus près du formulaire) doit toujours englober une balise form ?
___________________________
.............................1B 2B 3B 4B
___________________________
...............................azrtyyui1op
..............................sdsdfsd1sdj
......... fichier: toto.bidule 1A (Rétablir)
......==============
1:@|......textarea............|
2:@|......textarea............|
3:@|......textarea............|
......|......textarea............|
......|......textarea............|
......==============
...... md5 : dfdfddsdds
...... sha-1 : dsdfsdfsdfs
salut ; merci.
<div style="text-align: center; margin-bottom: 15px;"> </div> <div style="text-align: right; margin-top: -5px; margin-bottom: 15px;"> <form 1> </form> </div> <div style="text-align: center; margin-top: -10px;"> <form 2> </form> </div>
Voila si ça peut aider en adaptant le principe de *marge presque inverse* (nom venant d'être inventé).
J'ai moi-même un problème de positionnement mais c'est par manque de connaissance sur le sujet (je cherche sur le web de l'aide mais pas que sur le positionnement, des bouts de codes simples avec explications et cette page fait partie de ma recherche : 162 onglets ouverts ; voir l'addon pour Firefox 'Tab Counter').
Je voudrais centrer 2 lignes alignées au bord gauche sous un textarea (form2) lui-même centrer (Une aide je crois que j'ai trouvée qu'il faut que j'étudie ici : openweb.eu.org/IMG/article45/annexe1.html ). Et je voudrais pour faire un formulaire à onglet sans décentrer le textarea, mais en utilisant des boutons radios, placer les boutons radios à gauche du textarea = comment ne pas décentrer le texaera et placer les boutons radios à gauche ?.
Accessoirement (pour votre aide), je veux pouvoir enregistrer le textaera dans un fichier en local afin de facilité la tâche de l'utilisateur et exécuter le script (.vbs) même sans enregistrement à partir de la page ouverte.
Comment (j'ai vu la faq ccm mais c'est pas clair pour moi) lire le code de la page ouverte elle-même et l'insérer dans le texarea toujours sur la même page tout ET EN partie (= au choix du lecteur OU moi) ? Avec un code simple et détaillée sans fichier externe hormis la page html elle-même ? Merci. Bouton script et script interne et code '.vbs' autorisé ; le code vbs est l'origine du projet et tout le code libre utilisé reste libre. Merci.
1 seul fichier html contenant le textaera à enregistrer pour un fonctionnement en local = style css interne ; voir même placé dans les balises comme la présentation (du code je parle) ci-dessus.
Pour les balises form peut-on mettre les mêmes balises styles de positionnement que dans un div pour évité un décalage, voir remplacer une balise div par une balise form pour éviter un décalage (double?) ? form = div ? div + form et inversement = double décalage ? Si l'on utilisent des div, un div de positionnement (c'est bien le but des div = positionner ?) du formulaire sur la page (au plus près du formulaire) doit toujours englober une balise form ?
___________________________
.............................1B 2B 3B 4B
___________________________
...............................azrtyyui1op
..............................sdsdfsd1sdj
......... fichier: toto.bidule 1A (Rétablir)
......==============
1:@|......textarea............|
2:@|......textarea............|
3:@|......textarea............|
......|......textarea............|
......|......textarea............|
......==============
...... md5 : dfdfddsdds
...... sha-1 : dsdfsdfsdfs
salut ; merci.
9 févr. 2010 à 22:42