28172 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

Pour mon premier message sur ce forum je vous amène une petite colle... Smiley lol

Je dois réaliser l'intégration d'une charte graphique en xhtml / css, d'habitude je ne rencontre pas de problèmes particuliers car les charte sont très rectangulaires et optimisées pour la découpe.

Or, avec celle-ci, je galère.... Smiley smile

Tout d'abord voici un aperçu de ce que j'ai déjà intégré (en réalité uniquement le header) (testé sous firefox uniquement).

La contrainte technique qui me bloque, est que le site dois avoir une largeur de 100% afin de s'adapter aux différentes résolutions supérieures à 1024*768.

Le fait que les angles en haut gauche et droite ne soit pas rectangulaires m'a poussé à découper le header en plusieurs div comme ceci :


<div id="main-container">
	<div id="header">
		<div id="header-left"></div>
		<div id="header-middle-left"></div>
		<div id="header-center"></div>
		<div id="header-middle-right"></div>
		<div id="header-right"></div>
		<div class="clearer"></div>
	</div>
</div>


Voici mon css :

@CHARSET "UTF-8";

.clearer {
	clear: both;
	overflow: hidden;
	height: 0;
}

/* Structure */

body {
	background-color: #81879a;
}

#main-container {
	margin: 10px;
}

#header {
	width: 100%;
	height: 172px;
	/*background-color: #707070;*/
	/*border: 1px solid #3A3A3A;*/
}

#header-left {
	background-image: url('../images-test/header-left.jpg');
	background-position: left;
	background-repeat: no-repeat;
	width: 270px;
	height: 270px;
	float: left
}

#header-middle-left {
	background-repeat: y;
	height: 171px;
	float: left;
	border-top: 1px solid #3A3A3A;
	border-bottom: 1px solid #3A3A3A;
	background-color: #707070;
}

#header-center {
	background-image: url('../images-test/header-center.jpg');
	background-position: top center;
	background-repeat: no-repeat;
	width: 188px;
	height: 172px;
	float: left;
	border-bottom: 1px solid #3A3A3A;
	background-color: #707070;
}

#header-middle-right {
	background-repeat: y;
	height: 171px;
	float: left;
	border-top: 1px solid #3A3A3A;
	border-bottom: 1px solid #3A3A3A;
	background-color: #707070;
}

#header-right {
	background-image: url('../images-test/header-right.jpg');
	background-position: right;
	background-repeat: no-repeat;
	width: 341px;
	height: 270px;
	float: left;
}


Bon, pas de problèmes d'affichage particulier, mais comment faire pour que le header prenne 100% de la largeur avec des div qui ont des tailles fixes... Smiley decu

Après réflexion je pensais mettre un width: xx% dans #header-middle-left et #header-middle-right pour qu'ils complètent l'espace vide, mais la encore comment mélanger des tailles fixes et des % pour retrouver un 100% global ?

Je ne voit pas d'issues, je vient donc vous demander si vous avez une idée particulière ? N'hésitez surtout pas a démonter l'intégration que j'ai faite si des choses vous semblent abhérentes, aussi j'accepte volontier n'importe qu'elle technique pour m'en sortir, quitte a abandonner le travail déjà fait.

Je vous remercie par avance pour votre aide et me tient à votre disposition pour tout complément d'information.

(omg la phrase toute faite Smiley sweatdrop )
Modifié par kromack (28 May 2008 - 21:19)
Bonsoir

Pour ce que tu veux faire, je mettrais les 2 images header-left et header-right avec une largeur identique car dans le cas présent c'est un peu de traviole (270px pour un et 341px pour l'autre).

Je supprimerais les header-middle-left et header-middle-right pour n'avoir plus que 3 blocs.

Ensuite pourquoi ne pas prendre par exemple ce gabarit http://css.alsacreations.com/modeles/modele6.htm auquel tu enlèves le header.

Là tu ajustes les colonnes droite et gauche à tes deux blocs header-left et header-right puis tu ajoutes en css dans la colonne centre (background en center top) un fond retravaillé et d'une largeur assez importante pour qu'il s'affiche dans les écrans les plus grands (un 24 pouces doit tourner dans les 1680px).
Bonsoir,

Pour l'instant je trouve ça un peu complexe pour pas grand chose.
Difficile de dire quoi que ce soit sans voir le design complet, mais pour ce qui est intégré j'aurais utilisé:
- un bloc conteneur avec une image de fond global;
- deux blocs pour les colonnes (pas d'image de fond, il s'agit juste de pouvoir positionner du contenu au bon endroit);
- dans chaque colonne, un titre (h1, h2, h3, suivant la structure du site) avec pour contenu une image (et texte alternatif qui va bien).

Bref, quelque chose de très simple.
Bonsoir et merci pour vos réponses,

a écrit :
Je supprimerais les header-middle-left et header-middle-right pour n'avoir plus que 3 blocs.


En fait ce n'est pas possible car l'image en top center est plus basse que le conteneur, ce qui fait que je dois inclure le border dans l'image (d'ou les middle qui re-appliquent un border en top et bottom).

a écrit :
- un bloc conteneur avec une image de fond global;


Ouais mais comment faire pour que la largeur soit a 100 % ?

Quoiqu'il en soit, après discussion avec mon graphiste nous allons laisser tomber cette charte et partir sur quelque chose de beaucoup plus "web 2" et plus facile à intégrer lol...

Merci encore pour votre aide.
kromack a écrit :
Ouais mais comment faire pour que la largeur soit a 100 % ?

J'avais pas compris ça, mais c'est possible avec la structure que je décrivais, et ce assez facilement.

Bon courage pour la maquette suivante. Smiley cligne
a écrit :
Ouais mais comment faire pour que la largeur soit a 100 % ?

Beh je garde mon idée du départ et je ferai un truc de ce genre http://pagesperso-orange.fr/pourinfo3084/forumalsa/index.html

a écrit :
Pour l'instant je trouve ça un peu complexe pour pas grand chose.

Quel taquin ce Florent Smiley cligne

Nota : l'image centrale fait 978px donc selon la largeur de ton écran ce sera un peu court (je n'ai qu'un 17').
Modifié par pastazere (28 May 2008 - 23:11)
Bonjour,

@pastazere :

Je vient de voir ton intégration, bluffant 3 bouts de css et hop ça marche xD

J'aimerais comprendre la logique, en fait tu n'a pas définit de taille pour le bloc central et tu lui applique une grosse image de fond qui vas être masquée en partie ou non selon la résolution de l'écran ?

J'ai testé jusqu'en 1280 et ça passe.

Donc si je comprend bien, admettons que je veuille que cela s'adapte jusqu'en 1800 par exemple, il me suffit d'augmenter la largeur de l'image centrale ?

Je ne connaissais pas cette méthode, je crois que je vais squatter quelques temps par ici...

Merci pour votre aide, finalement si c'est aussi simple que ça peux être que je ne vais pas jeter cette charte.
pastazere a écrit :
Beh je garde mon idée du départ et je ferai un truc de ce genre http://pagesperso-orange.fr/pourinfo3084/forumalsa/index.html

C'est ce que j'avais en tête. Sauf que:
1. j'utiliserais une image de 2000px de large pour l'image centrale;
2. j'utiliserais des images de fond en PNG (sans doute en PNG-8... je pronostique un poids de 6-7 ko pour l'image centrale de 2000px de large);
3. je n'utiliserais pas de div#centre mais placerait l'image de fond centrale directement sur div#conteneur.

Mais c'est du détail. Smiley cligne
Modifié par Florent V. (29 May 2008 - 10:12)
kromack a écrit :
Donc si je comprend bien, admettons que je veuille que cela s'adapte jusqu'en 1800 par exemple, il me suffit d'augmenter la largeur de l'image centrale ?

C'est bien ça !

Ensuite tu n'as qu'à suivre les conseils de Florent (c'est du costaud Smiley cligne ).
a écrit :
1. j'utiliserais une image de 2000px de large pour l'image centrale;
2. j'utiliserais des images de fond en PNG (sans doute en PNG-8... je pronostique un poids de 6-7 ko pour l'image centrale de 2000px de large);
3. je n'utiliserais pas de div#centre mais placerait l'image de fond centrale directement sur div#conteneur.


Ok je vais suivre vos conseils, je re posterai quand j'aurai avancé, encore merci pour vos conseils !