28173 sujets

CSS et mise en forme, CSS3

Bonjour,

Je voudrais savoir si il est possible de réaliser l'effet suivant avec un unique paragraphe au lieu de 2.

<p>blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla </p>
<div style="float left"><ul><li>Lien 1</li> <li>Lien 2</li></ul></div>
<p>blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla </p>

Je souhaite avoir une zone de texte dans un paragraphe mais qui soit plus basse que le début du paragraphe.

Des idées ?

Merci pour vos réponses.
Modérateur
Bonjour et bienvenue Folken, Smiley smile

Un paragraphe ne peut pas contenir d'élément de type "block", donc pas de div. Tu peux t'en rendre compte facilement en passant ton code au validateur W3C.

Pour ce que tu souhaites faire la structure suivante suffit :
<p>blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla </p>
<ul>
     <li>Lien 1</li>
     <li>Lien 2</li>
</ul>
<p>blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla</p>
Il n'y a qu'à ajouter les styles sur la liste (margin, padding,...).

PS: Attention à la mise en forme des codes inclus dans tes posts. Je pense que tu ferais bien de relire les règles que tu as lues et acceptées en t'inscrivant. Smiley cligne
Arf autant pour moi pour le code.
En fait je ne veux pas mettre la div dans le paragraphe mais j'aimerais avoir un code du genre :

<ul style="[qqchose]">
     <li>Lien 1</li>
     <li>Lien 2</li>
</ul>
<p>blablabla  [...]  blablabla</p>


et qui rende

blablabla blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla blablabla
Lien 1 blablabla blablabla blablabla blablabla
Lien 2 blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla blablabla

bien sur en plus joli Smiley smile

Thx
bonjour,

Si tu veux faire comme cela, ça signifie que tes liens doivent se trouver dans le texte et ceux qui suit a un rapport avec.

Donc pourquoi tu ne mets pas un style directement a tes liens sans avoir une liste.

Je ne comprends pas le but de ceux que tu veux faire déjà.
Halindel a écrit :
Je ne comprends pas le but de ceux que tu veux faire déjà.

Tu vois les encarts placés au milieu du texte dans une mise en page de journal? Ben pareil.

Et effectivement, ça n'est techniquement pas possible sans passer par des ruses de sioux.
Florent V. a écrit :

Tu vois les encarts placés au milieu du texte dans une mise en page de journal? Ben pareil.


A oky, donc oui ca pourrai etre interressant

Florent V. a écrit :

Et effectivement, ça n'est techniquement pas possible sans passer par des ruses de sioux.


Tu sais pas ou il est le sioux pour lui demande une petite ruses
Smiley biggol
Halindel a écrit :
Tu sais pas ou il est le sioux pour lui demande une petite ruses Smiley biggol

Dans le genre ruse de sioux, il y a ça:
Exercice -- correction.

Mais ça ne correspond pas au cas qui nous intéresse... et pas sûr que ça soit adaptable.
Modifié par Florent V. (05 Sep 2007 - 15:31)
Une base de test cependant:
<!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=UTF-8" />
	<title>Test</title>
	<style type="text/css">
	body {
		width: 500px;
		margin: 0 auto;
		padding: 50px 0;
	}
	p {
		text-align: justify;
	}
	#test {
		float: left;
		width: 140px;
		height: 200px;
		margin: 10px 15px 5px 5px;
		background: burlywood;
	}
	</style>
</head>

<body>
<p>Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue.
<span id="test"></span>
Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit.</p>

<p>Ut velit mauris, egestas sed, gravida nec, ornare ut, mi. Aenean ut orci vel massa suscipit pulvinar. Nulla sollicitudin. Fusce varius, ligula non tempus aliquam, nunc turpis ullamcorper nibh, in tempus sapien eros vitae ligula. Pellentesque rhoncus nunc et augue. Integer id felis. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim.</p>
</body>
</html>

On obtient quelque chose du genre:
upload/2043-tttest.png

Le problème, c'est que le bloc en encart est placé à l'intérieur du premier paragraphe (c'est un span). Si on lui donne un contenu, notamment de type bloc, ça donne des problèmes de validité (éléments de type bloc à l'intérieur d'un élément p), mais surtout d'accessibilité: l'ordre de lecture sans mise en forme CSS est incohérent.

De fait, ce genre d'encart journalistique s'accorde mal avec la lecture linéaire. En général, on aura intérêt à les placer en introduction d'article, en fin d'article, ou entre deux parties suffisamment distinctes.

Une solution intéressante (à voir si c'est jouable techniquement) serait d'avoir dans le paragraphe voulu un simple «marqueur» (un span avec un identifiant précis), de placer l'encart à un endroit logique (début, fin, entre deux parties), puis... d'utiliser Javascript pour:
- donner un style au marqueur (largeur fixe en pixels, hauteur fixe en EM, flottant à gauche ou à droite);
- récupérer l'emplacement du marqueur;
- positionner l'encart en absolu à l'emplacement du marqueur, en stylant l'encart comme il faut (largeur fixe en pixels et hauteur fixe en EM correspondant à la largeur et à la hauteur du marqueur, overflow: auto pour avoir une barre de défilement si ça dépasse, ou au pire overflow: hidden).

Bref, il s'agit de faire sensiblement la même chose que dans la correction de l'exercice sur l'AJblog, mais avec la nuance suivante: on ne sait pas à l'avance où le marqueur sera placé.

Il y a quelque chose à travailler, là. Smiley smile