Niveau Niveau débutant

Réalisation d'un design complet (HTML / CSS) en 5 étapes

Tutorielhtml

Publié par le , mis à jour le (137330 lectures)

css xhtml design

Le titre et le menu

Nous passons à quelque chose d'un peu plus technique mais qui reste assez simple tout de même, du moins si l'on prend ça calmement. Pour ce qui est de la mise en forme du titre, c'est juste une petite astuce pour faire un lien cliquable de la taille de l'image de titre, et il faut aussi cacher le texte puisque nous utilisons une image. Et pour le menu, un peu le même style de travail. Examinons le code source et les commentaires :

body
{
	margin: 10px 0 ;
	padding: 0 ;
	text-align: center ;
	font: 0.8em "Trebuchet MS", helvetica, sans-serif ;
	background: #dea ;
}

div#conteneur
{
	width: 770px ;
	margin: 0 auto ;
	text-align: left ;
	border: 2px solid #ab4 ;
	background: #fff ;
}

h1#header
{
	height: 258px ;
	background: url(apple.jpg) no-repeat left top ;
	margin: 0 ;
}

h1#header a
{
	width: 400px ;
	height: 70px ;
	display: block ;
	background: url(title.gif) no-repeat ;
	position: relative ;
	left: 350px ;
	top: 15px ;
	text-indent: -5000px ;
}

On donne les mêmes dimensions au lien, chose possible grâce à la propriété display: block; qui transforme le lien en élément de type block, auquel on peut donner des propriétés de taille. On met aussi l'image de fond qui a les mêmes dimensions que le cadre ainsi créé.

Le text-indent négatif est fait pour pouvoir ne cacher le texte hors de la page, ce que nous voulons. Ainsi il reste exploitable pour les syntèses vocales.

ul#menu
{
	height: 35px ;
	margin: 0 ;
	padding: 0 ;
	background: url(bg_menu.gif) repeat-x 0 -25px ;
	list-style-type: none ;
}

On donne une hauteur au menu, correspondant à la taille de l'image utilisée en fond, on met ensuite l'image de fond avec un décalage de 25 pixels vers le haut pour utiliser la technique de roll over expliquée dans un autre tutoriel.

ul#menu li
{
	float: left ;
	text-align: center ;
}

On rend les li en flottant pour pouvoir les afficher horizontalement, on cache les puces, et on centre le texte.

ul#menu li a
{
	width: 130px ;
	line-height: 25px ;
	font-size: 1.2em ;
	font-weight: bold ;
	letter-spacing: 2px ;
	color: #fff ;
	display: block ;
	text-decoration: none ;
	border-right: 2px solid #dea ;
}

C'est sur les liens que le gros du travail est effectué, largeur, hauteur de ligne, taille de police, graisse de police, espacement des lettres, couleur, bordure et decoration du texte. Nous pouvons dimensionner les a grâce à la propriété display: block;

ul#menu li a:hover
{
	background: url(bg_menu.gif) repeat-x 0 0 ;
}

Et pour finir on décale l'image de fond au passage de la souris pour laisser aparaître l'état survolé de l'image, voir le tutoriel sur les roll over pour plus de détails.

div#contenu
{
	padding: 0 25px 0 100px ;
	background: url(bg_page.gif) no-repeat 15px 15px ;
}

div#contenu h2
{
	padding-left: 25px ;
	line-height: 25px ;
	font-size: 1.4em ;
	background: url(little_apple.gif) no-repeat left bottom ;
	color: #9b2 ;
	border-bottom: 1px solid #9b2 ;
}

div#contenu h3
{
	margin-left: 15px ;
	padding-left: 5px ;
	border-bottom: 1px solid #9b2 ;
	border-left: 3px solid #9b2 ;
	color: #9b2 ;
}

div#contenu p
{
	text-align: justify ;
	text-indent: 2em ;
	line-height: 1.7em ;
}

div#contenu a
{
	color: #8a0 ;
}

div#contenu a:hover
{
	color: #9b2 ;
}

p#footer
{
	margin: 0 ;
	padding-right: 10px ;
	line-height: 30px ;
	text-align: right ;
	color: #8a0 ;
}

pre
{
	overflow: auto ;
	background: #dea ;
	border: 2px solid #9b2 ;
	padding: 5px 0 0 5px ;
	font-size: 1.2em ;
}

pre span
{
	color: #560 ;
}

pre span.comment
{
	color: #b30000 ;
}

Et voilà !

 Voir le résultat final avec un peu plus de contenu