28172 sujets

CSS et mise en forme, CSS3

Je suis sur un projet, celui de la création d'un site internet pour présenter des produits sous SPIP.
J'ai réalisé ce site après des heures de travail, sur mon ordinateur, tout fonctionne, tout navigateurs confondus.
Cependant, sur l'ordinateur de mon collègue qui utilise Internet Explorer, la page connaît une déformation au niveau du menu déroulant qui contient 2 niveaux.
Les niveaux du menu déroulant doivent rester attachées, sinon il est impossible d'aller au 2ème niveau à la souris, c'est donc le problème sur l'ordinateur de mon collègue (les menus déroulants sont détachés). Si je corrige ce problème, ce souci sera résolu sur son ordinateur, mais sur le mien, les menus déroulants sont détachés.

Y a t-il un moyen pour que je puisse faire quelque chose qui puisse corriger les erreurs présents sur l'ordinateur de mon collègue (sur Internet Explorer) sans nécessairement modifier la page sur mon ordinateur et celle des autres ? Cela vient peut-être de la version d'Internet Explorer ?
Modifié par Richie (26 Nov 2014 - 12:04)
Bonjour,

Peux-tu nous fournir un exemple en ligne afin de pouvoir t'indiquer la solution à appliquer ?
Personne pour m'aider ?

C'est assez urgent, vu que beaucoup de clients navigent sur Internet Explorer...
Bonjour,
C'est surtout les anciennes Internet Explorer qui pose le + de problèmes.
donc si tu as codé ton site en HTML5 (des versions d'Internet Explorer ne les prennent pas en compte ces nouvelles balises), je crois qu'il faut déjà mettre ceci dans la balise head :
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]-->


Après tu peux aussi personnaliser ta feuille de style en fonction des différents navigateurs, en mettant d'autres Scripts dans ta balisee head. Exemple:
<!--[if IE 6 ]><body class="ie6 old_ie"><![endif]-->
<!--[if IE 7 ]><body class="ie7 old_ie"><![endif]-->
<!--[if IE 8 ]><body class="ie8"><![endif]-->
<!--[if IE 9 ]><body class="ie9"><![endif]-->


Et en suite dans ta feuille de style tu fait tes class, et tes réglage en fonction de la version d'IE.

Il y a aussi les hack CSS, exemple:

.class {
	margin:30px;	 /*Code normal pour les autres navigateurs*/
	ma\rgin:30px;	/*IE hack, Pour IE6 et IE7, car ils ignore les antislash*/
}


Ici tu peu tester ton site sous les diff. version d'IE: http://netrenderer.com/
Bonne chance
Modifié par stephweb (28 Nov 2014 - 19:01)
Je te remercie pour la réponse.

J'ai en effet suivi tes conseils, j'ai créé des commentaires conditionnelles :

     <!--[if IE 7]> 
      <link rel="stylesheet" type="text/css" href="#DOSSIER_SQUELETTE/scripts/ie.css" />
      <![endif]-->

Sur ma page ie.css :

#menutest li ul ul 
{
        margin: -40px 0 0 -115px;
             
}


Alors que dans ma page style.css :
#menutest li ul ul 
{
           margin:  -40px 0 0 240px;
             
}


J'ai fait le test sur IE Tester, et cela n'a pas apporté des modifications...
Modifié par Richie (01 Dec 2014 - 11:57)
Bonsoir,

Au passage, le site "lag" sévère, notamment à cause de l'image de fond (body_5.png) : 2.8Mo à télécharger pour un simple dégradé gris avec une bande orange... ouf !

Vous ne devriez même pas utiliser d'image pour arriver à ce résultat : un simple dégradé css (deux linear-gradient passés en backgroud-image) devrait suffire.
Bonjour,

Je te remercie de m'avoir oté un petit souci, je pensais que le lag venait du traducteur google !

Pour info, j'ai vu que les commentaires conditionnelles ne peuvent pas être testé sur IETester.
Donc, je ne sais pas si ce sont mes codes qui ne marchent pas ou si c'est le fait de ne pas pouvoir voir les commentaires conditionnelles par moi-même (J'ai Internet Explorer 11)
Finalement, j'ai réussi à mettre des commentaires conditionnelles en insérant le code <style></style> sur la page html. Je ne sais pas trop pourquoi je n'ai pas réussi à faire le lien sur la page css mais bon.
Comme vous pouvez le voir, les résultats sont différents sur la page Chrome et IE.
Je me suis arraché les cheveux depuis hier matin à résoudre ce problème sur IE.

Si vous pouviez m'aider, ce serait super !

Voici les commentaires conditionnelles sur IE :
   <!--[if IE 7]> <style>body {

    background-image:url(http://www.isoflex.fr/ald08/images/fond-ecran.png); 
    }

#menutest li ul ul {
margin-top:-20px;
min-width: 350px;
}

#menutest li:hover ul {
  margin-left:-115px;
  margin-top:20px;
  top:auto;
}

.hydraulique:hover ul {
  margin-top:20px;
}

#ul_hydraulique:hover {
  margin-left:-115px;
  top:auto;
    margin-top:0px;
}

#double_ul_hydraulique:hover {

  min-height:300px;
  margin-left:-100px;
  margin-top:0px;
}

#ul_industrie:hover {
  margin-top:20px;
}

#double_ul_industrie:hover {
  margin-top:auto;
  min-height:300px;
}

#ul_inox:hover {
  margin-top:20px;
}

#double_ul_inox:hover {
  margin-top:auto;
  min-height:300px;
}

#ul_lavage:hover {
  margin-top:20px;
}

#double_ul_lavage:hover {
  margin-top:auto;
  min-height:300px;
  margin-left:-100px;
}

#ul_machine:hover {
  margin-top:20px;
}

#double_ul_machine:hover {
  margin-top:auto;
  min-height:300px;
  margin-left:-100px;
}

#menutest, #menutest ul /* Liste */     
{
        margin-top : 0px; /* ni extérieure */
        margin-left: 0px;
        margin-right:0px;
        margin-bottom:0px;
        list-style : none; /* on supprime le style par défaut de la liste */
        line-height : 20px; /* on définit une hauteur pour chaque élément */
        text-align : center; /* on centre le texte qui se trouve dans la liste */
}





</style>
 <![endif]-->


Et le code sur Chrome :
#menutest, #menutest ul /* Liste */     
{
        padding : 0; /* pas de marge intérieure */
        margin : 0; /* ni extérieure */
        list-style : none; /* on supprime le style par défaut de la liste */
        line-height : 20px; /* on définit une hauteur pour chaque élément */
        text-align : center; /* on centre le texte qui se trouve dans la liste */
}

#menutest /* Ensemble du menu */
{
        font-weight : bold; /* on met le texte en gras */
        font-family : Arial; /* on utilise Arial, c'est plus beau */
        font-size : 13px; /* hauteur du texte : 12 pixels */
}

#menutest a /* Contenu des listes */
{
    display : inline-block; /* on change le type d'élément, les liens deviennent des balises de type block */
    padding-left :18px ;
    padding-right:26px;
    text-align:left;
    color : #000000; /* couleur du texte */
    text-decoration : none; /* on supprime le style par défaut des liens (la plupart du temps = souligné) */
    font-size:10px;
    width:310px;
}

#menutest li /* Elements des listes */      
{ 
        float : left;
        /* pour IE qui ne reconnaît pas "transparent" */
        
}

/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menutest li
{
        
}

#menutest li ul /* Sous-listes */
{ 
        position: absolute; /* Position absolue */
        width: 240px; /* Largeur des sous-listes */
        top: -999em; /* Hop, on envoie loin du champ de vision */
}


#menutest li ul li /* Éléments de sous-listes */
{
        /* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
        
}

/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menutest li ul li                
{
        
}

#menutest li ul ul 
{
        margin:  -40px 0 0 240px; /* On décale les sous-sous-listes pour qu'elles ne soient pas au dessus des sous-listes */ 
        /* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */

        min-width:350px;
             
}

/* IE ne reconnaissant pas le sélecteur ">" ... je me répète  [cligne] */
html>body #menutest li ul ul                
{

}


#menutest a:hover /* Lorsque la souris passe sur un des liens */    
{ /* ... et au contraire, le fond en blanc */
    background-image: url(a_menubutton1.png);
    color:#DF7005;
}

#menutest li:hover ul ul, #menutest li.sfhover ul ul /* Sous-sous-listes lorsque la souris passe sur un élément de liste */
{
        top: -999em; /* On expédie les sous-sous-listes hors du champ de vision */
}

#menutest li:hover ul, #menutest li li:hover ul, #menutest li.sfhover ul, #menutest li li.sfhover ul  /* Sous-listes lorsque la souris passe sur un élément de liste ET sous-sous-lites lorsque la souris passe sur un élément de sous-liste */
{
        top: auto; /* Repositionnement normal */
        min-height: 0; /* Corrige un bug sous IE */
}