28172 sujets

CSS et mise en forme, CSS3

Bonjour Cher ami du forum,

Étant très débutante dans le domaine de conception de site web, je rencontre plusieurs problèmes pour l'image de fond de mon futur site web.

le fond de mon futur site web sera composé en plusieurs images. J'insère mes images avec un float:left avec un position : relative. Mes images ont tous un height et un width en %.

voici mon html
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Bienvenue sur Pur Saphir</title>
    <link rel="stylesheet" media="screen" type="text/css" title="ps_style" href="ps_style.css" />
</head>

<body>
<div class="contenu">
    <div id="header">
    
        <div id="logo">
        	 <img src="images/logo.jpg" alt="logo" id ="img_logo"> 
            
        </div>
        
        <div id ="menu_haut">
            <img src="images/menu_haut.jpg" alt="menu du haut" id ="img_menu_haut">
        </div> <!-- fin du menu_haut -->
        
        <div id = "login">
            <img src="images/login.jpg" alt="boite d'inscription" id ="img_login">
        </div> <!-- fin du login -->
 
        
        <div id ="bread_crumb">
            <img src="images/bread_crumb2.jpg" alt="affichage des sous-menu" id ="img_bread_crumb">
        </div> <!-- fin du bread_crumb -->
                      
        <div id = "panier">
            <img src="images/panier.jpg" alt="boite d'achat" id ="img_panier">
        </div> <!-- fin du panier -->
            
    </div> <!-- fin du header -->
    <div class="next_line"> </div>
    <div id="corps">
    
        <div id="menu_side">
        	<img src="images/menu_side.jpg" alt="menu sur le cote" id ="img_menu_side">
        </div> <!-- fin du menu_side -->
        	
        <div id="zone_travail">
        	<img src="images/zone_travail.jpg" alt="zone d'affichagee" id ="img_zone_travail">
        </div> <!-- fin de la zone_travail -->
        
        <div id="design">
        	<img src="images/design.jpg" alt="design" id ="img_design">
        </div> <!-- fin du design -->
        
     </div> <!-- fin du corps -->
        
        
     <!-- <div class="clr"></div> -->
    <!--<div class="next_line"> </div>-->
    <div id="footer">
    	<div id="affichage_footer">
    		<img src="images/footer2.jpg" alt="pied de page" id ="img_footer">
     	</div>  
        
        <div id="footer_design">
        	<img src="images/design_footer.jpg" alt="pied de page avec image" id ="img_footer_design">
        </div>
    </div> <!-- fin du footer -->
    
</div>    
    
</body>
</html> 


mon css est :

html body {
height:100%;
margin:0 0 0 0;
}

.contenu
{
	height: 100%;
	width:100%;
}

#img_logo {
        position: relative;
		float: left; 
        width: 20%;
        height: 15%;
		padding: 0px
        /*top: 0px;
        right: 0;*/
        /*bottom: auto;
        left: 0;*/
}
#img_menu_haut {
        position: relative;
		float: left; 
        width: 60%;
        height: 10%;
        top: 0px;
        right: 0;
        bottom: auto;
        left: 0;
}

#img_bread_crumb {
        position: relative;
		float: left; 
        width: 60%;
        height: 5%;
        top: 0px;
        right: 0;
        bottom: auto;
        left: 0;
}	  
	  
#img_login {
        position: relative;
		float: left; 
        width: 20%;
        height: 10%;
        top: 0px;
        right: 0;
        bottom: auto;
        left: 0;
}	  
	  
#img_panier {
        position: relative;
		float: left; 
        width: 20%;
        height: 5%;
        top: 0px;
        right: 0;
        bottom: auto;
        left: 0;
}	  
	  
#img_menu_side {
        position: relative;
		float: left; 
        width: 20%;
        height: 85%;
        top: 0;
        right: 0;
        bottom: auto;
        left: 0;
}

#img_zone_travail {
        position: relative;
		float: left; 
        width: 60%;
        height: 85%;
        top: 0;
        right: 0;
        bottom: auto;
        left: 0;
}
	  
#img_design {
        position: relative;
		float: left; 
        width: 20%;
        height: 85%;
        top: 0;
        right: 0;
        bottom: auto;
        left: 0;
}
	  
#img_footer {
        position: relative;
		float: left; 
        width: 80%;
        height: 10%;
        top: 0;
        right: 0;
        bottom: auto;
        left: 0;
}

#img_footer_design {
        position: relative;
		float: left; 
        width: 20%;
        height: 10%;
        top: 0;
        right: 0;
        bottom: auto;
        left: 0;
    }


Avec Chrome je rencontre un léger problème : une petite ligne blanche. J'ai comparé si toutes mes images avaient les height et width en format jpg ( car j'ai pensé qu'une dimension était légèrement différente qui fait apparaître cette ligne blanche) identique l'un à l'autre. Tout est correct sur se coté. Donc, je ne sait plus où chercher. Par contre lorsque je passe en "full screen", la ligne disparaît comme par magie. Wow, je n'y comprends absolument rien.

Avec IE8, là c'est la galère ... Ma première image (logo) ne n'apparaît pas très bien ainsi que l'autre image en dessous (menu_side) donc toutes mes autres images décales.

De plus, dans mes 2 tests (sur Chrome et sur IE8), j'ai une petite bordure blanche. Comment peut-on faire pour qu'il n'existe plus et que mes images occupent toute l'espace.

Comme je l'ai spécifié, je suis débutante donc je ne suis pas capable (pour l'instant ) de vous envoyer un lien web pour vous montrer mon problème. Donc, j'ai fait un "print screen" pour que vous voyez.
voici sur Chrome
upload/38298-chrome.jpg

voici sur IE8

upload/38298-ie8.jpg

Merci d'avance de votre aide si précieuse, je l'apprécie beaucoup.

Clo
Salut,


Il y a plusieurs chose qui me dérange dans ton code:

1) La sémantique
Tu utilises des images pour réaliser les fonds de tes différents bloc, or dans ce cas, tes images ne doivent pas être intégrées dans le code (x)Html, mais dans le code CSS avec la balise background-image (Ceci à l'exception du logo).

2) La taille des bloc
Il me paraît très aléatoire de réaliser un site adaptatif (avec des bloc de dimensions variables) avec des images qui par définitions ont des dimensions fixes. On peut certes toujours les étirer, les rogner, etc. mais le résultat ne sera pas toujours au rendez-vous.

3) Le positionnement
L'utilisation du Float et du position: Relative tel que tu le fais me semble pas être la bonne solution.

Les experts du forum auront sans doute des conseils supplémentaires.

Enfin, une petite page en ligne pourrait être sympa pour te donner plus de réponse pratiques.
Modifié par mamax (14 Jun 2011 - 14:37)
mamax a écrit :

Il y a plusieurs chose qui me dérange dans ton code:


Moi c'est l'absence de Doctype qui me fait bondir Smiley lol
Bonjour cher ami,

Pour répondre à ton message Mamax, je suis débutante et lorsque j'essaie de faire quelques choses, je lis sur le net. Je sais que j'en ai beaucoup à apprendre mais je crois que c'est lorsque l'on fait des petits pas que l'on avance.

J'ai essayé de mettre l'intégralité de mon image en background. J'ai réussi mais par contre mon image était toujours trop grande. Un ami m'a conseillé de segmenter mon image en fonction de des éléments de programmation et les insérer via des float (le float ne peut insérer des images en background... si j'ai bien lu sur le net), par exemple : un menu_haut car lorsque la souris de l'utilisateur passera sur le mot du menu ( qui sera un image ou lieu d'un texte), il y aura une autre image différente (il y aura des étoiles). De plus, un de mes critères c'est que je ne désire pas de zone étirable (caprice de mon moi car j'aime bien avoir une vue d'ensemble de l'information qu'un site me fournis du premier coup d'oeil).

Lorsque j'ai évaluer mes images (par exemple : la section du milieu) ils sont tous la même hauteur un par rapport à l'autre et la même largeur de l'image au dessus.

Que me suggères-tu au lieu du float? je n'ai pas eu le choix de mettre un positionnement relatif car cela ne fonctionnait pas.

J'aimerais aussi préciser que ce que je vous ai envoyé c'est mon html et mon css sont des programmes de pratique, un fois que j'aurais résolu mon problème c'est sûre que mon html et mon css seront documentés... Je suis de la vieille école de programmation qui m'ont appris qu'il est nécessaire de documenter... Je ne voulais pas alourdir le tout mais je comprend que cela peut simplifier la programmation et votre compréhension. Désolé

J'essaie seulement de savoir comment mettre ma première image de façon qu'il sort en IE8 de la même façon sur Chrome.

Merci de votre compréhension
Salut,

En fait, il faut que tu reprennes les bases de la construction d'un site:

1) Comme l'a fait remarquer JB, il faut que tu indiques un DOCTYPE. regarde dans les tuto alsa pour plus d'informations.

2) Il faut que tu comprenne comment fonctionne le positionnement des bloc en CSS, il n'y a pas que float dans la vie Pour cela, je ne peux que te conseiller de regarder les tutos alsa, comme celui-ci:
http://www.alsacreations.com/article/lire/533-initiation-au-positionnement-en-css.html

3) Dans ton code CSS tu indiques les taille de tes bloc avec des "%" or si tu veux que ceux-ci ai la taille de l'image, il faut absolument leur donner une taille fixe en px correspondant à la taille de l'image de fond.

4) On en reviens à la sémantique, il faut comprendre ce que ton image va indiquer: est-ce un élément purement décoratif? ou un élément actif qui apporte de l'information?
dans le premier, il est préférable d'inséré l'image via le code CSS , dans le seconds, via la balise HTML <img>

5) le CSS que tu as fournit ne contient pas toutes les déclarations des balise que tu as utilisées

Enfin un page en ligne est beaucoup mieux pour la résolutions des problèmes comme le tiens car, on a accès bien plus d'informations utiles.
Merci beaucoup mamax,

je vais lire très attentivement les liens que tu m'as mis.

Pour répondre à la section 3, je mets mes blocs en % car j'aimerais qu'il soit adaptable à toutes les résolution d'écran des utilisateur du net. Je sais qu'il peut y avoir des barres de défilement mais je préfère ne pas en avoir sauf peut-être dans ma zone de travail. Donc, si j'utilise la taille en px, je me trouvais à avoir une image trop grande... mais je peux travailler sur ce point.

Je suis d'accord avec ton point #4. J'avais oublié cette information, donc de mes 9 images, il y en a 6 qui seront des éléments actifs et trois décoratifs... je vais corriger cela.

Pour le point #5, je le sais car ce css est plutôt un essai donc, je n'ai mis que le minimum. désolé.

J'aimerais bien avoir une page en ligne mais pour l'instant je n'ai pas d'hébergeur car il se peut que mon projet prend beaucoup plus de temps que je le pense, donc il n'est pas en ligne. Existe-t-il un moyen de mettre mon code en ligne facilement et ne pas utiliser d'hébergement car il n'est pas actif?

Merci