Comment voulez-vous montrer la première ligne de texte d'un div et de développer cliquez sur?
J'en veux pour preuve la première ligne d'un bloc de texte enveloppé, et ensuite révéler l'ensemble du bloc sur cliquez sur. Aussi, j'aimerais savoir comment faire pour réactiver le compact version d'une ligne sur un deuxième clic.
Est-il un moyen facile de le faire par css + javascript? J'utilise jQuery.
- Pas tout à fait sûr, mais je suppose que
height:1em
devrait faire l'affaire pour l'affichage de la première ligne. Pour l'extension, je pense que javascript est nécessaire. - Quelle que soit la solution, le contenu doit être caché par l'ajout d'une classe en JS le plus tôt possible après le chargement. Ensuite, si le JS est désactivé, le contenu sera toujours montré.Pour info, les personnes aveugles et malvoyantes à l'aide d'un lecteur d'écran ainsi que les utilisateurs de surf avec CSS désactivé, ainsi que les robots de recherche et leur cache d'accès à l'ensemble du contenu de w/o clic. Peut être une bonne ou une mauvaise chose selon votre besoin.
Vous devez vous connecter pour publier un commentaire.
En supposant que vous ne voulez pas utiliser la bibliothèque JavaScript (qui est bizarre).
Voir: http://jsfiddle.net/JUtcX/
HTML:
CSS:
JavaScript:
Alternativement, si vous souhaitez utiliser un framework JavaScript comme jQuery, vous pouvez l'animer.
Voir: http://jsfiddle.net/JUtcX/2/
Cela se fait facilement à l'aide de CSS + JavaScript. Vous avez juste besoin de régler la hauteur de la div à la hauteur d'une ligne, et de cacher tout débordement. Ensuite, lorsque l'utilisateur clique sur le div, utiliser une belle animation gestionnaire pour effectuer un aveugle ou d'autres semblables à l'effet d'afficher la totalité du contenu de la div.
Voici un exemple très simple (pas d'animation): http://jsfiddle.net/9Lw6T/
$(".expander").click(function() { $(this).toggleClass("expander"); });
JS:
CSS:
HTML:
cela peut être optimisé et peut être fait pour utiliser l'un des libs
Vous pouvez le faire avec certains jQuery.
script
http://jsfiddle.net/jasongennaro/dC32A/
En CSS définir la taille de la div à la taille de la ligne (important: vous devrez peut-être utiliser l'espacement des lignes d'attribut pour obtenir bon rembourrage sur le fond avec de la deuxième ligne).
Je ne sais pas à propos de clic, mais vous pouvez utiliser
:hover
dans le CSS pour modifier le style (réinitialisation de l'espacement des lignes, la réinitialisation de la div de taille et de dépassement de valeurs propres) pour obtenir sur le vol stationnaire-montrer l'effet.Ou vous pouvez utiliser JavaScript et modifier la CSS sur la souris (facile à faire avec jQuery).
De poster mon commentaire comme une réponse:
Une autre approche pourrait être, la définition de la classe
height: 1em; overflow-y: hidden;
puis ajout/suppression de sur cliquez avec javascript.Ou peut-être vous pouvez également gérer dans le
:active
-pseudo-classe en enveloppant votre<div>
avec un<a>
-tag, donc pas de javascript serait nécessaire. Mais alors la div allait s'effondrer à nouveau sur la perte de focus.Ce sera suffisant:
Pour masquer toutes les mais la première ligne:
Pour afficher tout le texte:
Ou, si vous utilisez jQuery:
Réglage de la cacher de la div pour cadratin (1 em et puis exapnd il onclick est la solution.
Vérifier ce point. Je n'ai pas utilisé toute bibliothèque JS.
CSS
HTML
JS
Ici est le violon
http://jsfiddle.net/RwM8S/1/