Bonjour, m'étant acheté le bouquin pour me mettre à la page de l'intégration web et arrêter le full html imbitable, j'ai un problème avec la réalisation du projet. Le lien indiqué pour voir le projet pointe vers une page de promo du livre ne m'apportant aucune aide... je me permet donc de vous solliciter.
Il s'agit tout simplement de l'encart "post-it" dans le contenu global pour ceux qui l'ont eu entre les mains. Je n'arrive pas a mettre ce div à la même hauteur que mon titre <h1> et il ne fait l effet float que avec le contenu de <p> (situé en dessous dans le code html contrairement au <h1>)

voici la partie du code qui m'intéresse :

<body>
<div id="global">
<h1>Concevoir des sites web modernes avec HTML et CSS</h1>
<h2>Présentation du livre</h2>

<div id="encart">
<h3>Récemment :</h3>
	<div id="bloccadre">
    <ul>
    <li>Date : <a href="lien1.html"> événement 1</a></li>
    <li>Date : <a href="lien2.html"> événement 2</a></li>
    <li>Date : <a href="lien3.html"> événement 3</a></li>
    <li>Date : <a href="lien4.html"> événement 4</a></li>
    <li>Date : <a href="lien5.html"> événement 5</a></li>
    </ul>
    </div>

</div>
<p>blahblah</p>
</body>


et les styles associés :

#global {
margin-left: 15.5em;
}

#global h1 {
font-weight: bold;
font-size: 150%;
padding-bottom: 0.2em;
border-bottom: 3px solid #D6FB7D;
font-variant: small-caps;
text-indent: 5px;
color: #1E4D02
}

#global h2 {
margin-top: 1em;
margin-bottom: 1em;
font-size: 110%;
font-weight: bold;
color: #348503;
}

#encart {
float: right;
width: 250px;
margin:0 10px 10px 10px;
padding-top: 50px;
background: url(encarthaut.jpg) left top no-repeat;
}

#encart h3 {
font-size: 130%;
line-height: 0;
margin: 0 0 0 40px;
}

#bloccadre {
background: url(encartbas.jpg) left bottom no-repeat;
padding: 10px 0 30px 40px;
}

#bloccadre ul{
margin: 1em 0 0 0;
padding: 0;
}

#bloccadre li{
margin: 0;
list-style-image: url(postpuce.gif);
}

Mis à part certaines modifications de taille de margin et padding très légères, pour adapter le code a mes images, j'ai strictement le code indiqué dans le bouquin mais un résultat différent de ce qui est prévu. j'ai relu une bonne trentaine de fois mon code et comparé avec le bouquin, je n'ai rien trouvé. Il s'agit très certainement d'une erreur bête comme je suis débutant en positionnement mais si vous pouviez m apporter votre aide sur ce point, je vous en serait reconnaissant !

PS : en effet c'est plus lisible ainsi, désolé de l'oubli.
Modifié par Doriancl (24 Apr 2010 - 19:47)
Salut et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

Bonne continuation Smiley smile

upload/1-code.gif
Salut,

je te conseille déjà de lire les tuto de ce site sur le positionnement.

Ils m'ont permis ( bien que je sois pas du tout intégrateur ) de comprendre les mécanismes
qui permettent de structurer les pages web.

je n'ai pas le livre. je ne sais donc ni ce que promets le livre, ni si tu l'as bien copié.


doriancl a écrit :
Je n'arrive pas a mettre ce div à la même hauteur que mon titre <h1> et il ne fait l effet float que avec le contenu de <p> (situé en dessous dans le code html contrairement au <h1>)


moi j'aurais tendance a dire normal
1/ le h1 ne float pas
2/ tu as un h2 entre les deux.
( un element non flottant entre 2 qui doivent flotter c'est "un peu" problématique.)


soit tu mets un float:left au h1 et un clear:left au h2 en faisant passer le div "encart" au-dessus du h2 dans le html.

soit tu rajoutes un div avec un float left englobant les h et le p et tu mets dessous le div "encart"

(faut faire attention aux largeurs des éléments qui float en général aussi même si sur l'exemple ça a l'air bon comme ça.)

des 2 façons tu auras 2 colonnes. le texte s'arreteras à la "frontiere" des div.

sinon si tu veux pas 2 colonnes, tu peux positionner ton encart en position absolu. mais attention dans ce cas les éléments pourraient se chevaucher.

voilà mon analyse à mon niveau.
il y a peut-être mieux a faire mais je n'en suis pas sûr.

pascal
Merci de ta réponse. En effet pour quelqu'un qui n'as pas le bouquin ma demande n'est pas évidente !
Je ne souhaite pas 2 colonnes mais bien que ce div Encart s'insère en haut à droite du div "global".
Voici 2 schémas pour rendre les choses plus évidentes.
voici ce que j'ai
upload/29138-effetobten.gif

et voici ce que je souhaite
upload/29138-effetsouha.gif

Je sais que je peux le faire tout simplement en sortant l'encart du div global pour avoir l'effet désiré (qui prendra alors body pour parent) mais je souhaite que Encart soit inclu dans global pour profiter des marges et l aligner avec h1. Je suis au maximum le code proposé par le livre et il me parait logique ainsi d'ailleurs.
Je vais aller lire le tuto du site. j'ai déjà fait celui du livre mais quelque chose d'important doit m'échapper.
Modifié par Doriancl (25 Apr 2010 - 12:25)
Bon problème résolu, merci les tutos.
Ce message s'adressant surtout aux gens débutants qui ont le bouquin et qui ont rencontré le même problème que moi, voici la réponse :
le code indiqué dans la partie projet n'a tout simplement pas le même rendu que la capture d'écran qui lui est associé. Sachant que seul ce qui suit le div flottant va l'enrouler si vous voulez que votre encart soit au niveau du titre, vous devez mettre l'html de l'encart juste après la balise ouvrante de votre div "global".
J'en profite pour signaler l'erreur au passage, cette capture d'écran porte a confusion et comme le site associé au bouquin n'existe plus, on ne peut pas voir d'erratum.

Je me pose cependant la question suivante :
pour respecter un ordre sémantique logique j'aurais mis l html de l encart sous le H1 et H2. Par exemple pour un navigateur sans CSS activé on va se retrouver avec un encart avant le titre du contenu. Y'a t'il un moyen de respecter cet ordre tout en ayant l'effet visuel souhaité (voir le schéma de ma réponse précédente) ? Ou est on obligé en ce cas de rendre flottant aussi H1 et h2.
Modifié par Doriancl (26 Apr 2010 - 20:00)
Bonjour,

la encore en passant h1 et h2 en flottant , il n'y a que des navigateurs obsolete qui vont remonter ton encart au niveau du premier floattant (Ie6 , opera 7 ? ) .

Par contre en englobant h1 et h2 dans un element neutre flottant , puis juste derriere ton encart flottant tu devrais obtenir le résultat escompté moyennant une largeur du conteneur principal et des flottants definies a l'avance . L'encart peut ne pas avoir besoin d'etre positionné en flottant , depend que tu souhaites ou non que les textes suivants passent dessous ou buttent dessus et/ou en choissisant la valeur qui convient a clear pour le conteneurs de ces textes.

GC