Pages :
Bonjour à tous, je souhaiterai réduire la taille d'un bloc paragraphe et ajouter un petit onglet "lire la suite" pour que s'affiche le reste du texte flottant qui serait cachée. je débute avec html et css.

Je ne sais pas si je suis claire je vous met un lien en exemple http://www.quistic.com/seminar/get-your-dream-job-now

dans le première paragraphe "get your dream job now" à côté de la foto, il y a cette possibilité.

Merci à tous
Je suis jamais très fan de ces trucs qui rajoute des clics inutiles mais voici comment faire en js.

En gros il suffit d'avoir cette structure html :

<div class="more">
  <p>
    Le texte non caché
  </p>
  <p class="hidetext">
    le texte caché pense bien a mettre la classe hidetext
  </p>
  <a href="javascript:void(0);" onclick="readMore(this);" class="hidebutton"><span class="plus">Lire plus</span><span class="moins">Lire moins</span></a> <!-- le lien  qui doit bien contenir [onclick="readMore(this);"]-->
</div>  


Puis après il te suffit de mettre ce code js jsute avant la balise fermante de ton body :

<script>
     function readMore(link){
      var regex = /\bread\b/;
      var article = link.parentNode;
      if(regex.test(article.className)){
        article.className = article.className.replace(regex, '');
      }else{
        article.className += ' read';
    }
 }
</script>

et enfin un peu de css pour que ca marche :
.more p.hidetext{
  display: none
}
.more a.hidebutton span.moins{
  display: none;
}
.more.read p.hidetext{
  display: block; 
}
.more.read a.hidebutton span.moins{
  display: block;
}
.more.read a.hidebutton span.plus{
  display: none;
}


Il y a surement de meilleur méthodes mais celle la à l'avantage d'être simple à mettre en place.
Merci pour vos réponses.

Thej8 ta méthode fonctionne mais pas complétement. elle ne prends en charge que les blocs paragraphes mais pas les autres. je te montre CE QUE JE DOIS LAISSER VISIBLE:

<p>
Que vous ayez déjà choisi votre orientation ou que vous hésitiez encore, une chose est sûre : vous n'avez pas le droit à l'erreur.

Trop de gens choisissent une orientation pour des raisons impersonnelles mais se rendent compte au bout de quelques année en poste qu'ils ont fait fausse route.

Vous devez choisir des études qui vous correspondent vraiment.

Vous ne choisirez la filière d'étude qui vous correspond que si vous apprenez à vous connaître de façon claire

ET CE QUE JE DOIS CACHER

et honnête.

Pour choisir votre orientation idéale il faut respecter certaines étapes.

Entre test d'orientation, test de personnalité et étude de marché, ce cours vous propose une méthode efficace en 8 étapes qui vous amènera pas à pas à mieux vous connaître et à choisir votre orientation idéale.
</p>
<p class="soutitre">
QUI DEVRAIT PRENDRE CE COURS?</p></br>
<ul>
<li>Tout étudiant ayant déjà choisi son orientation scolaire et/ou professionnelle et souhaitant vérifier si son choix et bon.</li>
<li>Tout étudiant qui hésite sur son orientation et qui n'arrive pas à choisir.</li>
</ul>
Il te suffit pour cela de changer le css :


.more .hidetext{ //j'ai supprimer le p dans le selecteur pour qu'il selectionne toute les class hidetext quelque soit son type
  display: none
}
.more a.hidebutton span.moins{
  display: none;
}
.more.read .hidetext{ //et ici aussi.
  display: block; 
}
.more.read a.hidebutton span.moins{
  display: block;
}
.more.read a.hidebutton span.plus{
  display: none;
}


Ensuite il suffit de rajouter a la balise (autant div, que ul, ol, a, ...) la classe "hidetext".
Merci beaucoup, ça marche.

Le texte est bien caché et quand je clique sur lire plus il apparaît.

Par contre il se superpose sur le texte en dessous alors que si tu regardes sur le site exemple que je t'ai donné le texte en dessous descend.

de plus quand je clique sur lire moins, le texte ne dispara^t pas.
Bonjour,
en css avec :focus, le lien utiliser comme une simple ancre et pointer-events ça donnerait : http://codepen.io/anon/pen/BjtLH/

HTML :
<div class="more">
  <p>
    Le texte non caché
  </p> 
  <a class="more-text" href>
    <span class="plus">Lire plus</span>
    <span class="moins">Lire moins</span>
  </a>
  <p class="hidetext">
    le texte caché pense bien a mettre la classe hidetext
  </p>
</div> 

CSS:
.more {
  position:relative;
  padding-bottom:2em;
}
.more-text {
  position:absolute;
  bottom:0.5em;
}
.moins, 
.hidetext,
.more-text:focus .plus{
  display:none;
}
.more-text:focus +.hidetext,
.more-text:focus .moins{
  display:block;
}
.more-text:focus {
  pointer-events:none;
}


pointer-events ne passe pas forcement bien dans les vieux nav Smiley smile
Merci gc-nomade.

Le texte est bien caché et il y a un onglet lire plus mais il ne fonctionne pas. Quand je clique dessus le texte reste caché
Si il y a un problème de superposition cela ne vient pas du bout de code que je tes données, mais d'autre problème se positionnement. Est ce que le bloc sur lequel se superpose le texte cache est en position absolue ? Au quel cas il faut revoir tes positionnement. Met tout le code de ta page dans un cssdeck pour voir ce qui ce passe.
Pour le changement de texte mois, plus il faut bien penser à mettre les span avec la classe dans ton lien.
je pense que j'ai encore besoin de travailler je commence le html seulement depuis hier matin et j'avoue ne pas tout comprendre Smiley smile

je je joins le code html de ma page:

<!DOCTYPE html>
<html>
<head> <meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<!--[if lte IE 7]>
7 <link rel="stylesheet" href="style_ie.css" />
8 <![endif]-->
<title>Atelier d'orientation scolaire. Plus qu'un test d'orientation ou qu'un test de personnalité, une methode efficace qui vous assurera, dès le lycée, la réussite dans vos études et en tant que futur professionnel.</title>
</head>

<body>
<section class="illustration">
<img src="dortsurlivre.jpeg" alt=foto d'étudiant dormant sur ses livres" /></section>
<section class="descriptif">
<h1>Choisissez les bonnes études!</h1>
<h2> Une méthode efficace, élaborée à partir de techniques de coaching, d'outils de PNL et de psychologie positive.</h2></br>
<p class="soutitre">
POURQUOI PRENDRE CE COURS?</p></br>
<p>
Que vous ayez déjà choisi votre orientation ou que vous hésitiez encore, une chose est sûre : vous n'avez pas le droit à l'erreur.

Trop de gens choisissent une orientation pour des raisons impersonnelles mais se rendent compte au bout de quelques année en poste qu'ils ont fait fausse route.

Vous devez choisir des études qui vous correspondent vraiment.

Vous ne choisirez la filière d'étude qui vous correspond que si vous apprenez à vous connaître de façon claire et honnête.

Pour choisir votre orientation idéale il faut respecter certaines étapes.

Plus qu'un test d'orientation ou qu'un test de personnalité, ce cours vous propose une méthode efficace en 6 étapes élaborée à partir de techniques de coaching, d'outil PNL et de psychologie positive.
Cette méthode qui vous amènera pas à pas à mieux vous connaître et à choisir votre orientation idéale.
</p>
</section></br></br></br>

<section class="programme">
<p class="soutitre">PROGRAMME</p>
<p> hhhhhttttttttttttdkpspspcjnssucisoppz^z^z^z^^z^z^z^z^z^z^z^d^d^d^dehehhehrjfvlvlvllrlrlrlrlrlllflflflflflrlrlrlrllllflflflf</p>
</section></br></br></br>
<section class="qui">
<p class="soutitre">
QUI DEVRAIT PRENDRE CE COURS?</p></br>
<ul>
<li>Tout étudiant ayant déjà choisi son orientation scolaire et/ou professionnelle et souhaitant vérifier si son choix et bon.</li>
<li>Tout étudiant qui hésite sur son orientation et qui n'arrive pas à choisir.</li>
</ul>
</section>
<section class="instructeur">
<p class="soutitre">INSTRUCTEUR: PASCAL DUBAELE</p>
<p>Dans la relation d'aide depuis une dizaine d'année, comprendre l'homme et le pousser à se dépasser à toujours été pour moi un challenge.
Passionné par les sciences humaines et Coach certifié à la haute école de coaching de paris, j'ai accompagné des personne dans leur reconversion professionnelle. De ces accompagnements au sein desquels une orientation scolaire avait souvent été négligée est née l'idée de proposer ce cours « Faites de votre choix d'études une réussite ».
</p>
</section>

</body>

<footer></footer>
</html>


et le css

h1
{ text-align: justify; font-family: Verdana ; font-size: 21px; }
h2
{ text-align: justify; font-family: Verdana ; font-size: 15px; color: gray; }
p
{ color: gray; text-align: justify; font-family: Verdana ; font-size: small; word-wrap: break-word; }
.illustration
{ display: inline-block; width: 56%; vertical-align: top; padding: 2%; }
.descriptif
{ display: inline-block; width: 30%; vertical-align: top; }
.soutitre
{ font-size: 16px; }
.programme
{position: absolute;
right: 120px;
left: 473px;
top: 550px; }
.instructeur
{position: absolute;
right: 120px;
left: 300px;
bottom: 80px;}

ul
{ color: gray; text-align: justify; font-family: Verdana ; font-size: small; word-wrap: break-word; }
.qui
{position: absolute;
left: 40px;
right: 800px;
top: 550px; }
Oui ton code est a retravaillé, mais ca ne vient pas en un jour. Il faut déja proscrire l'utilisation de l balise br qui doit être exclusivement utilisé pour faire des sauts de lignes dans un texte pas pour gérer les espacement entre différentes div, pour cela il y a les marges et padding en css.
Il faut que tu revoies tout le positionnement de tes blocs, il faut éviter le plus possible d'utiliser la position : absolute, qui fait sortir tes éléments du flux et qui débouche souvent sur des problème de superposition, mais pour cela relis quelque tuto pour mieux comprendre le fonctionnement du css.
dubaskal a écrit :
Merci gc-nomade.

Le texte est bien caché et il y a un onglet lire plus mais il ne fonctionne pas. Quand je clique dessus le texte reste caché

avec quel navigateur n'as tu aucun resultat ?
Si c'est chrome et simili, l'attribut tabindex doit etre ajouter pour que <a> prenne le focus, ce vieux defaut existe toujours , tiens donc Smiley smile
Modifié par gc-nomade (19 Mar 2014 - 12:52)
salut,
je pense que pour réaliser cet effet il faudrait éviter un "display:none" mais plutôt jouer sur l'opacité de l'élément. Un exemple simple où il faudra cependant ajouter un "filter" pour reproduire l'opacité sur IE8.
Pour le code, il faut savoir que sémantiquement c'est très mauvais. Les <p class="soustitre"> devraient tout simplement être des <h2> vu qu'ils représentent des sous titres et on n'écris pas en majuscule tout un titre, il y a une propriété CSS qui le fait, à savoir "text-transform:uppercase".
Je pense qu'il y a beaucoup à dire mais disons que c'est ce qui pique le plus les yeux Smiley langue .

EDIT: juste amélioration du code en ligne où j'utilisais un truc énorme pour rien.
Modifié par Zelalsan (21 Mar 2014 - 14:40)
Comme le dit Zelasan, une structure plus saine peut se suffire. CSS ou javascript pourront tout de même montrer/cacher un ou plusieurs elements: http://codepen.io/anon/pen/bFjDl/
JavaScript à l'avantage de donner plus de contrôle sur l'effet voulu (c'est son job aprés tout), tandis que CSS dépendra des capacité du navigateur a comprendre les règles utiliser.
Je pense qu'un fallback CSS serait tout aussi bien. D'ailleurs très personnellement, j'aurais privilégié une solution CSS mais parfois l'existence des vieux navigateurs freinent un peu tout ça (quoi que...)
gc-nomade a écrit :

avec quel navigateur n'as tu aucun resultat ?
Si c'est chrome et simili, l'attribut tabindex doit etre ajouter pour que &lt;a&gt; prenne le focus, ce vieux defaut existe toujours , tiens donc Smiley smile


je suis sur safari
thej8 a écrit :
Oui ton code est a retravaillé, mais ca ne vient pas en un jour. Il faut déja proscrire l'utilisation de l balise br qui doit être exclusivement utilisé pour faire des sauts de lignes dans un texte pas pour gérer les espacement entre différentes div, pour cela il y a les marges et padding en css.
Il faut que tu revoies tout le positionnement de tes blocs, il faut éviter le plus possible d'utiliser la position : absolute, qui fait sortir tes éléments du flux et qui débouche souvent sur des problème de superposition, mais pour cela relis quelque tuto pour mieux comprendre le fonctionnement du css.



merci je suis en train de corriger tout ça
Zelalsan a écrit :
salut,
je pense que pour réaliser cet effet il faudrait éviter un &quot;display:none&quot; mais plutôt jouer sur l'opacité de l'élément. Un exemple simple où il faudra cependant ajouter un &quot;filter&quot; pour reproduire l'opacité sur IE8.
Pour le code, il faut savoir que sémantiquement c'est très mauvais. Les &lt;p class=&quot;soustitre&quot;&gt; devraient tout simplement être des &lt;h2&gt; vu qu'ils représentent des sous titres et on n'écris pas en majuscule tout un titre, il y a une propriété CSS qui le fait, à savoir &quot;text-transform:uppercase&quot;.
Je pense qu'il y a beaucoup à dire mais disons que c'est ce qui pique le plus les yeux Smiley langue .


merci je modifie ça au fur et à mesure, je suis vraiment novice. je pense que je vais d'abord créer un blog pour proposer mes services et je constituerai mon site internet au fur et a mesure de mon apprentissage. j'y intégrerai un blog plus tard
dubaskal a écrit :


je suis sur safari


Okay , merci du retour, il s'agit bien de l'attribut tabindex qui est nécessaire pour pouvoir activer la prise de focus ... il y a des choses qui ne changent pas Smiley smile . demo mise a jour si tu est curieux http://codepen.io/anon/pen/bFjDl/
Bonne continuation et bon apprentissage
Cdt,
Pages :