28221 sujets

CSS et mise en forme, CSS3

Salut,
Voici à quoi je voudrais arriver :
http://www.cours-info.net/tmp/test.jpg
Cependant je n'y arrive pas... Je suis bloqué avec le CSS. Voici mes sources :

<?
	include( 'configuration.inc.php' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
	<head>
		<title>GestMag</title>
		<link rel="stylesheet" href="style.css" type="text/css"/>
		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
	</head>
	<body>
		<div id="page">
			<div id="header">

			</div>
			<div id="bloc">

			</div>
			<div id="footer">
				© 2005 GestMag - Version <? echo $version ?><br/><br/>
				<a href="http://validator.w3.org/check/referer"><img src="images/xhtml.png" width="80" height="15" border="0" alt="Validation XHTML 1.0"/></a>
				<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="images/css.png" width="80" height="15" border="0" alt="Validation CSS"/></a>
				<br/><br/>
			</div>
		</div>
	</body>
</html>

Le CSS :

body
{
	background : #0099FF;
	color : #000000;
}

#page
{
	background : #FFFFFF;
	border-style : solid;
	border-width : 1px;
	border-color : #000000;
	margin-left : auto;
	margin-right : auto;
	width : 800px;
}

#header
{
	background : #FFFFFF;
	text-align : center;
}

#bloc
{
	background : #99CCCC;
	border-style : solid;
	border-width : 1px;
	border-color : #000000;
	color : #000000;
	width : 200px;
}

#footer
{
	background : #FFFFFF;
	font-family : verdana, helvetica, arial, sans-serif;
	font-size : 10px;
	text-align : center;
}

Comment puis-je faire pour arriver au résultat recherché ?
Merci d'avance,
MaTHieU
Modifié par mrousse (16 Mar 2005 - 23:55)
Bonjour et bienvenue à toi sur ce forum,

Délicat de tenter une réponse sans connaître ton degré de connaissance dans les feuilles de style.
Toutefois à la lecture des règles css que tu cites dans ton message je te conseillerais de lire les articles d'Openweb consacrés au positionnement des éléments et celui de Raphaël sur Alsacréations. Les liens sont disponibles ici:
http://del.icio.us/Igor/cssp

Il serait aussi plus aisé aux autres membres du forum de te répondre si ton titre était plus précis que [CSS] => Je n'y arrive pas... Smiley decu Smiley cligne et pointait un problème particulier. Je t'invite à le reformuler par exemple en "positionnement d'élément", libre à toi d'exprimer ton probème autrement.
Modifié le 07 Feb 2005 - 23:42
Salut,

Merci pour ton lien, je vais regarder !

En ce qui concerne mon niveau de connaissance en CSS : débutant Smiley ohwell
Je penssai seulement que ça serai plus simple de réaliser ce genre de présentation Smiley fache

Merci d'avance à vous tous,
MaTHieU
Je ne comprend pas bien ton schema. Tu veux trois blocs, un gros au centre et deux petits qui débordent du gros vers la gauche, c'est ça?
Salut,
En effet, je veux un bloc main avec deux petits blocs qui débordent sur le coté de celui-ci ( les menus ) avec un header et un footer.
Merci pour ton aide, je m'en sors pas !
MaTHieU
Administrateur
Salut,

En attendant de trouver une solution, aurais-tu l'obligeance de bien vouloir suivre le conseil d'Igor ?
Igor a écrit :
Je t'invite à le reformuler par exemple en "positionnement d'élément", libre à toi d'exprimer ton probème autrement.


Si tu ne sais pas comment éditer tes messages, tu trouveras la réponse dans la FAQ Smiley cligne
Salut,
En effet, je ne trouvais pas comment éditer le titre de mon message. C'est maintenant fait Smiley cligne
Merci,
MaTHieU
Bonsoir,
Voici une solution basique pour le modèle de mise en page que tu envisages.

Je te détaille les différentes propriétés de style avec un commentaire:

Tu as a priori besoin d'un bloc centré, voici une méthode qui permet de centrer un bloc en css (un lien explicatif de Raphaël est dans les commentaires:

#conteneur{
  position:absolute;/*voir [url=http://www.alsacreations.com/articles/centrer/]Centrer les éléments ou un site web en CSS[/url]*/
  left: 50%; 
  top: 3%;
  width: 80%;
  margin-left: -40%;
  border: 1px solid #000;
  background:#fff;
}

Le cas des 2 (ou plus) boîtes décalés à gauche, je te propose un bloc qui contiendra d'autres éléments, je part du principe que les blocs que tu souhaites ont trait à la navigation, ce seront des listes (ul):


#navig{
  position:absolute;/*mode de positionnement*/
  width:150px;/*largeur de l'élément*/
  left:-50px;/*positionné à -50px du bord gauche de l'élément lui même positionné qui l'englobe (#conteneur)*/
  top:80px;/*positionné à 80px du bord haut de l'élément lui même positionné qui l'englobe (#conteneur)*/
  background:transparent;}
/*[url=http://openweb.eu.org/articles/initiation_absolue/]Initiation au positionnement CSS : 3. position absolue et fixe[/url]*/

Les blocs décalés en eux-même dans le cas où ce sont des éléments de navigation seront des listes (ul) contenu dans le bloc défini précédement à savoir #navig:

ul.menu{
background:#eee;/* il suffit d'appliquer cette class menu aux listes qui constituent les différentes parties de navigation*/
margin-bottom:2em;
padding:.5em;
border:solid 1px #eee;
}

Le contenu principal de ta page pourrait être contenu dans un autre élément que je nomme #contenu:

#contenu{margin-left:130px;/*une marge pour que ce qu'il contient ne soit pas en supperposition de #navig*/}

Précision, je n'ai défini des valeurs de marge que là où j'en avais besoin car j'utilise un sélecteur universel permettant de réduire à zéro toutes les marges internes et externes des éléments:

*{
margin:0;
padding:0}


Voici un exemple de code html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"
lang="fr">
  <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=iso-8859-15" />
    <title>
      Titre
    </title>
    <style type="text/css">
 
    /*<![CDATA[*/
<!-- 
*{
  margin:0;
  padding:0;
}
body{
  background: Blue;
  font:1em/normal sans-serif;
  color:#000;
}
#conteneur{
     position:absolute;
     left: 50%; 
     top: 3%;
     width: 80%;
     margin-left: -40%; /* moitié de la largeur */
     border: 1px solid #000;
     background:#fff;
}
h1{font-size:2em;}

li{list-style:none;}

p{margin-bottom:.8em;}

p,li{font-size:.8em;}

#contenu{margin-left:130px;}

#navig{
position:absolute;
width:150px;
left:-50px;
top:80px;
background:transparent;}
ul.menu{
background:#eee;
margin-bottom:2em;
padding:.5em;
border:solid 1px #eee;
}
-->
    /*]]>*/
                </style>
  </head>
  <body>
    <div id="conteneur">
      <h1>
        Titre de ma page
      </h1>
      <div id="contenu">
        <h2>
          Un titre de 2<sup>nd</sup> niveau
        </h2>
        <p>
          Lorem ipsum dolor sit amet, consectetuer adipiscing
          elit. Donec lorem libero, iaculis ullamcorper,
          consectetuer ut, dignissim vulputate, dolor. Duis ac
          lacus. Maecenas dignissim ante vitae dui. Vivamus
          lacinia feugiat arcu. Suspendisse pretium, velit et
          semper nonummy, tortor elit blandit arcu, vitae
          ultrices lectus quam nec felis. Aliquam porttitor
          pharetra dolor. Ut vel odio. Nullam lacinia. Ut justo
          dolor, nonummy et, interdum a, hendrerit ac, erat.
          Donec sed ligula in elit consectetuer mollis. Fusce
          wisi odio, imperdiet vel, luctus vel, blandit vitae,
          quam. Nam at dolor quis dui molestie suscipit. Nunc
          velit odio, molestie nec, hendrerit at, ullamcorper
          non, wisi. Nullam gravida neque at leo. Integer luctus.
          Aenean sed pede.
        </p>
        <h2>
          Un titre de 2<sup>nd</sup> niveau
        </h2>
        <p>
          Lorem ipsum dolor sit amet, consectetuer adipiscing
          elit. Donec lorem libero, iaculis ullamcorper,
          consectetuer ut, dignissim vulputate, dolor. Duis ac
          lacus. Maecenas dignissim ante vitae dui. Vivamus
          lacinia feugiat arcu. Suspendisse pretium, velit et
          semper nonummy, tortor elit blandit arcu, vitae
          ultrices lectus quam nec felis. Aliquam porttitor
          pharetra dolor. Ut vel odio. Nullam lacinia. Ut justo
          dolor, nonummy et, interdum a, hendrerit ac, erat.
          Donec sed ligula in elit consectetuer mollis. Fusce
          wisi odio, imperdiet vel, luctus vel, blandit vitae,
          quam. Nam at dolor quis dui molestie suscipit. Nunc
          velit odio, molestie nec, hendrerit at, ullamcorper
          non, wisi. Nullam gravida neque at leo. Integer luctus.
          Aenean sed pede.
        </p>
      </div>
      <div id="navig">
        <ul class="menu">
          <li>item</li>
          <li>item</li>
          <li>item</li>
          <li>item</li>
        </ul>
        <ul class="menu">
          <li>item</li>
          <li>item</li>
          <li>item</li>
          <li>item</li>
        </ul>
      </div>
    </div>
  </body>
</html>