28173 sujets

CSS et mise en forme, CSS3

Pages :
Bonjour à tous, voila mon souci du jour, j'ai une div menuhaut, et un design extensible en largeur, la div doit donc pouvoir s'étirer en largeur.

Jusque la pas de souci, seulement dans cette div je veux une image qui reste toujours collé a gauche et une toujours a droite, et au milieu une qui se répète selon la largeur de la page.

J'ai essayé en mettant des h1 h2 h3 dans la page html et dans le css comme ça

h1#menuhaut{ 
background: url('./img/barre_infos_gauche.png') no-repeat left;
}



Mais Smiley lol rien ne s'affiche je sais que c'est possible mais je doit avoir une souci qqpart, si vous pouviez éclairez ma lanterne je vous en serez très reconaissant !

Voici un apercu de la mise en page CSS

http://oskdvd.free.fr/modele16.htm
Modifié par wpcJack (02 May 2007 - 10:07)
Yep Smiley smile

EDIT : Arf tu viens de rajouter un lien, j'ai mal compris ce que tu voulais faire... le code que je donne ci-dessous permet d'aligner 3 images côte à côte sans aucune marge, alors que toi tu souhaites faire un gabarit de site avec 3 colonnes. Fais une recherche sur le forum ton problème a déjà été traité plusieurs fois Smiley cligne

Essaye ça :

HTML


<div id="menu_haut">

     <div id="img_gauche">
     </div>

     <div id="img_droite">
     </div>

     <div id="img_centre">
     </div>

</div>



CSS


#menu_haut {
height:...px;
position:relative; }

#img_gauche {
background:url(images/...) no-repeat;
width:...px;
position:absolute;
left:0;
top:0; }

#img_centre {
background:url(images/...) repeat-x;
display:block;
margin:0; }

#img_droite {
background:url(images/...) no-repeat;
width:...px;
position:absolute;
right:0;
top:0; }



Attention à bien placer la div "img_centre" après "img_gauche" et "img_droite" dans le code HTML !

Voilà Smiley cligne
Modifié par BeliG (30 Apr 2007 - 10:42)
bah en fait nan je veux bien mettre 3 images cote a cote dans la div entre le header et le reste du site mais j'arrive pas Smiley ohwell ça vient pas du fait que je fait un design en 3 colonnes si ?
a écrit :
bah en fait nan je veux bien mettre 3 images cote a cote dans la div entre le header et le reste du site mais j'arrive pas

Ah bah non, tu peux faire avec ce que je t'ai donné alors Smiley langue
Bonjour,

Les div vides que tu as placé dans ton code pour afficher tes petites images ont au final une hauteur de 0px. Forcément, si chaque div est vide de contenu et n'a pas de hauteur ou de hauteur minimale spécifiée, c'était couru d'avance.

Le fait de placer une image de fond sur un bloc ne suffit pas à attribuer une hauteur à ce bloc (et encore heureux !).


Sinon, j'ai l'impression que tu t'embrouilles dans une construction excessivement tarabiscotée pour faire ta mise en page. On peut voir un aperçu de ce qu'est censé donner le résultat final ?
Hum... Ton code est pas ce que j'ai vu de plus propre Smiley ravi Pas de feuille de style ? Et sinon :

Ton #menu_haut :


#menuhaut {
list-style-type: none; /* euh... ça sert à quoi ça ? [langue] */
margin: 0; /* ça c'est déjà dans ton body {} */
padding:0; /* ça aussi */
position:relative;
/* et le height l'est où ? */ }


De plus tu n'as precisé aucune taille (width) dans #img_gauche et #img_droite et regarde un peu ça y a rien qui te choque ?


#img_droite {
background: url('./img/barre_infos_droit.png') no-repeat bottom center;
width:...px;
position:absolute;
right:0;
top:0; }


Autre problème : les bottom center dans #img_gauche et #img_droite, à quoi ils servent vu que le positionnement se fait par position absolue ?

Mets un peu d'ordre déjà on verra ensuite Smiley cligne
Modifié par BeliG (30 Apr 2007 - 11:21)
http://oskdvd.free.fr/1.jpg

Voili pour le final.

J'ai rangé un peu ^^

Pour l'instant je bosse sur le modèle de alsacreation c'est pour ça que la feuille de style est integrée, je la séparerai plus tard là j'essaye d'avancer un max sur la mise en forme. J'ai pas du tout l'habitude de bosser sur un site extensible Smiley ohwell

edit : les image fonctionne ^^
Modifié par wpcJack (30 Apr 2007 - 11:31)
T'as la solution dans mon dernier post (en tout cas pour les 3 images côte à côte, le reste...) Smiley cligne
Modifié par BeliG (30 Apr 2007 - 11:29)
Et sinon, tout simplement, travailleur avec deux images HTML flottantes ?

[b]HTML :[/b]
<div id="haut">
<img alt="" src="haut-gauche.png" class="gauche" />
<img alt="" src="haut-droite.png" class="droite" />
</div>

[b]CSS :[/b]
div#haut {
	height: 30px;
	overflow: hidden; /* empeche le dépassement de flottants au cas où... */
	background: gray url(haut-fond.png) repeat-x center top;
}
div#haut img.gauche {
	float: left;
}
div#haut img.droite {
	float: right;
}


Pas bien sorcier, à priori. Smiley cligne
wpcJack a écrit :
J'ai rangé un peu ^^

...

edit : les image fonctionne ^^

Moué...t'as pas fais attention à mes conseils pour autant, libre à toi Smiley ravi

[Résolu] ?
BeliG a écrit :

Moué...t'as pas fais attention à mes conseils pour autant, libre à toi Smiley ravi

[Résolu] ?


Là j'en suis plutot a la phase, ça marche c'est bien, on verra plus tard pour optimisé Smiley lol je tiendrai compte de vos posts.

Merci a vous deux et oui résolu Smiley smile
Hello Smiley smile

Si tu veux aligner 3 images qui ont chacunes des tailles définies (plus de repeat-x sur l'image au centre) alors tu n'es plus obligé d'utiliser :
- position:relative; sur le conteneur
- position:absolute; sur les images gauche et droite (ainsi que les top, left et right).

Fais simplement :


<img src="img_gauche"><img src="img_centre"><img src="img_droite">


et joue avec les marges au besoin.

Mais dis-moi, une seule image suffirait pas ?
Modifié par BeliG (02 May 2007 - 10:24)
BeliG a écrit :
Hello Smiley smile

Si tu veux aligner 3 images qui ont chacunes des tailles définies (plus de repeat-x sur l'image au centre) alors tu n'as plus besoin :
- du position:relative; sur le conteneur
- des position:absolute; sur les images gauche et droite (ainsi que les top, left et right).

Fais simplement :


<img src="img_gauche"><img src="img_centre"><img src="img_droite">


et joue avec les marges au besoin.

Mais dis-moi, une seule image suffirait pas ?


non, puisqu'une anime flash va etre inseré entre les deux image Smiley ohwell
Bon alors essaye ça :

HTML

<div id="header">

    <div id="image_gauche">
    </div>

    <div id="image_droite">
    </div>

    <div id="image_centre">
    </div>

</div>



CSS


#image_gauche {
float:left; }

#image_droite {
float:right; }



Et si ton anim flash n'est pas centrée correctement tu pourras essayé un text-align:center; dans le #header...
et j'ai besoin que le logo reste toujours a gauche et l'image de droite toujours a droite puisque le site est extensible dans la largeur Smiley ohwell

edit : j'essaye ta solution
Modifié par wpcJack (02 May 2007 - 10:35)
Effectivement, avec un design fluide, accoler trois images risque d'être difficile.

Si je regarde ton en-tête, tu as :
- une image décorative à droite ;
- une image de contenu à gauche ;
- un bandeau Flash entre les deux.

L'image décorative devrait être placée comme image de fond du bloc d'en-tête, pas comme image de fond d'un bloc créé spécialement pour ça.

L'image de contenu devrait être placé dans le code HTML, avec une alternative textuelle qui va bien.
<img src="..." alt="bixos informatique" />

À la rigueur, il sera peut-être intéressant de faire flotter à gauche cette image.

Pour l'animation Flash, pas le choix, c'est forcément dans le code HTML via l'élément object.
ouai bon j'ai utilisé floatn est maintenant Ie n'arrive plus a afficher l'image qui sera remplacé par l'animation flash, sous FX c'est niquel -_____-


Je comprend pas ce que tu veux dire par image décorative et image de contenu.

En fait moi je voyais le truc comme ça

logo | flash | bordel qui se repete couleur ou nimport quoi | image de droite

C'est pas faisable ?
wpcJack a écrit :
Je comprend pas ce que tu veux dire par image décorative et image de contenu.

Une image décorative ne transmet pas d'information essentielle et explicite.
Une image de contenu (ou image non décorative) transmet une information essentielle et explicite ; par exemple : le nom de site voire son logo, un titre mis en image, une image appartenant au contenu principal de la page et nécessaire à sa compréhension, etc.

Au passage, si tu fais flotter l'image de gauche il peut être intéressant de placer un margin-left: 160px sur ton bloc destiné à abriter une animation Flash.
Pages :