28173 sujets

CSS et mise en forme, CSS3

Bonjour,

Après plusieurs jours de recherches infructueuses, je suis sur le point de laisser tomber, et de revenir aux bons vieux tableaux.

Mais avant de me jeter ainsi par la fenêtre, je tente tout de même un petit message dans l'illustre forum d'Alsacreations...

Il s'agit d'un petit morceau de ma mise en page, ne comportant que des images, et aucun contenu texte.
Tout se passe dans un div de hauteur fluide, et ce conteneur global fonctionne très bien. Du moins pour l'instant sous Firefox, car je m'occuperai d'IE plus tard.

Or donc, dans ce div global de height 70%, j'ai deux colonnes remplissant 100% de hauteur de leur parent. La colonne de gauche est de largeur fixe, et celle de droite est fluide. Jusque là tout va bien.

Soucis dans la colonne graphique de gauche.
Cette colonne contient à son tour trois divs chargées d'afficher trois images : le haut de l'habillage, le milieu étirable, et le bas de l'image.

Quelques contraintes :
le div du bas doit être bien sûr calé au bas de son conteneur
le div du bas ne peut pas se superposer au div du milieu, car les images contiennent des transparences.

Voici où j'en suis :
<div id="blog">
		<div id="colblog">
<!-- Le problème se situe dans l'organisation interne de ce dov colblog -->
			<div id="colblog1"></div>
			<div id="colblog2"></div>
			<div id="colblog3"></div>
		</div>
		
		<div id="inblog">
		Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce sed nibh. Nulla facilisi. Integer libero quam, fringilla ut, ultrices ut, tincidunt malesuada, nisi. Proin consequat accumsan pede. Donec sed nisi ac nisl ullamcorper cursus. Cras rhoncus ante at eros cursus accumsan. Integer hendrerit lorem in pede. In non neque. Nulla nec leo vitae sapien molestie volutpat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed pretium ultrices lacus. Nunc ullamcorper ultrices velit. Aenean massa magna, fringilla id, ullamcorper nec, aliquet et, nunc. Mauris hendrerit sem. In imperdiet leo vitae justo. Mauris varius vehicula ante. Nullam tempor pede. 

Sed tortor diam, sollicitudin eu, ornare non, commodo vitae, quam. Morbi augue. Pellentesque iaculis. Morbi id justo vitae nulla cursus dapibus. Quisque eget massa a ligula elementum suscipit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed eros arcu, tempus at, bibendum vitae, adipiscin
		</div>
	</div>


le CSS :

#blog
{
	margin-top:150px;
	margin-left:200px;
	margin-right:0px;
	z-index:3;
	height:60%;

	filter:alpha(opacity=70);
	-moz-opacity:0.5;
	opacity: 0.5;
}

#inblog
{
		overflow:hidden;
	background-color:#FFFFFF;
	color:#000000;
	padding:0;
	margin:0;
	height:100%;
}

#colblog
{	
	float:left;
	width: 100px;
}

#colblog1
{
	background-image:url(images/blog-up.png);
	background-repeat:no-repeat;
	height:169px;
}
#colblog2
{
	background-image:url(images/blog-middle.png);
	background-repeat:repeat-y;
	
}
#colblog3
{
	background-image:url(images/blog-down.png);
	background-repeat:no-repeat;
	height:285px;
	bottom:0px;
}


(Pour info pour les surpris de cette mise en page pour un blog, certes c'est un blog, mais la mise en page s'orientera vers un scrolling horizontal à la place du div "inblog" ) upload/3630-Capture-sou.jpg

En tout cas, merci de votre aide Smiley smile
Vraiment personne pour m'aider ?
Smiley bawling

Peut-être le sujet a t'il été déjà traité ?

J'ai essayé de chercher dans les alignements en bas de footer, mais les solutions utilisent le contenu pour pousser en bas, ou la fenêtre du navigateur, ce qui ne s'applique pas pour moi...
yakou32 a écrit :
Or donc, dans ce div global de height 70%


Désolé, yakou32: pour ma part, j'ai arrêté de lire là. Brutalement.

Les mises en pages ramenant le contenu dans la zone d'affichage du navigateur en jouant sur les propriété height et le scroll sont heureusement peut-être bien en train de lasser tout le monde. Il était temps qu'on se rende compte que le media screen n'est pas du tout fait pour ce genre de choses.

Laissez donc votre contenu s'étendre en hauteur, nom d'une pipe ! Smiley cligne
Modifié par Laurent Denis (28 Jul 2006 - 13:12)
Si je peux me permettre, il me semble que ta remarque soit un parti-pris sur la forme graphique que devrait a-priori revêtir un site internet.

Pour ma part (et je respecte vraiment tous les autres points de vue, même si je ne les partage pas forcément), je suis lassé des mises en page verticales, qui débouchent le plus souvent sur un arrière-plan tristoune dès lors que l'on dépasse le header. D'autre part, ce type de structure tend à l'uniformisation des sites... Tout le monde fait ça, colonne à droite, à gauche, etc etc...
J'essaie donc de temps à autre d'explorer de nouvelles voies, et c'est vrai, en plus, que j'apprécie les formats paysage plutôt qu'en portrait...
Et puis, de plus en plus d'écran, portable ou de bureau, se rapprochent d'un format 16/9, et bien peu de sites Internet en tirent parti...
Bon mon site qui est encore en cours de construction n'est pas un bon exemple de ce que je défends... Mais si j'arrive à le terminer, ce serait peut-être une base de discussion sur les avantages et inconvénients des différents partis de mise en page.

Ceci dit, si mon parti graphique est différent, cela justifie t'il de ne pas m'aider à apprendre sur la technique ?
Bon, alors, pour ne pas passer pour un affreux : voir la CSS de fast clemmy, un classique du genre : http://www.fastclemmy.com et sa variante sur CSSzen Garden (pas le lien exact sous la main)

Comme quoi, on croit explorer... Smiley cligne

Les possibilité offertes par CSS2.1 sont à très peu de choses près épuisées depuis deux ans en matière d'inventivité, en fait. Tournez-vous plutôt vers CSS3 pour inventer la suite. Une suite verticale Smiley cligne

<edit>Tiens, les écran 16/9 et le module CSS media queries, on peut faire des choses merveilleuses, là. Et vraiment inventives.
Modifié par Laurent Denis (28 Jul 2006 - 13:43)
ok, merci pour le lien Smiley smile

Mais sinon, comment coller un bloc au bas d'un bloc conteneur parent, et en étirant du même coup le bloc précédent ?
yakou32 a écrit :
Mais sinon, comment coller un bloc au bas d'un bloc conteneur parent, et en étirant du même coup le bloc précédent ?


L'une des raisons de ma réponse pleine de lassitude est qu'on ne peut pas en CSS2.1
Modifié par Laurent Denis (28 Jul 2006 - 13:44)