J'essaie de sélectionner chaque premier mot, de l'envelopper dans une plage spécifique. P>
lorem fort> ipsum dolor sit amet, Consectetur Adipiscing Elit. Cras sagittis nunc non nisi vénénatisé Aducteur. Aliquam Strong> Consectetur Pretium Sapien, Eget Congue Purus Eangeas Nec. MAECENAS SED PURUS UT TURPIS VARIUS STRUT> affirmation. Praesent a nunc ipsum, id Mattis Odio. Donec Rhoncus Posuere Bibendum. Fusce Nulla Strong> Elit, Laoreet Non Posuere. P> blockQuote> S'il s'agit du texte, le script doit sélectionner Lorem, Aliquam, Varius et Nulla. P>
3 Réponses :
vous peut em> le faire, en utilisant JavaScript pour envelopper chaque mot dans le paragraphe dans sa propre plage, puis en parcourant les effectifs découvrant quelle position réelle sur la page est, puis appliquant Votre style change dans les effondres dont la position Y est supérieure à la portée précédente. (Le mieux le fait de commencer à se terminer, cependant, comme étant précédemment peut avoir une incidence sur l'emballage de ce dernier.) Mais cela va être un beaucoup de travail em> pour le navigateur, et vous aurez Pour le répéter chaque fois que la fenêtre est redimensionnée, l'effet devra donc valoir le coût. Quelque chose comme ceci (utilisé jQuery comme vous avez répertorié la balise p> jQuery code> tag sur votre question): P> <div id='target'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sagittis nunc non nisi venenatis auctor. Aliquam consectetur pretium sapien, eget congue purus egestas nec. Maecenas sed purus ut turpis varius dictum. Praesent a nunc ipsum, id mattis odio. Donec rhoncus posuere bibendum. Fusce nulla elit, laoreet non posuere. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sagittis nunc non nisi venenatis auctor. Aliquam consectetur pretium sapien, eget congue purus egestas nec. Maecenas sed purus ut turpis varius dictum. Praesent a nunc ipsum, id mattis odio. Donec rhoncus posuere bibendum. Fusce nulla elit, laoreet non posuere. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sagittis nunc non nisi venenatis auctor. Aliquam consectetur pretium sapien, eget congue purus egestas nec. Maecenas sed purus ut turpis varius dictum. Praesent a nunc ipsum, id mattis odio. Donec rhoncus posuere bibendum. Fusce nulla elit, laoreet non posuere. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sagittis nunc non nisi venenatis auctor. Aliquam consectetur pretium sapien, eget congue purus egestas nec. Maecenas sed purus ut turpis varius dictum. Praesent a nunc ipsum, id mattis odio. Donec rhoncus posuere bibendum. Fusce nulla elit, laoreet non posuere. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sagittis nunc non nisi venenatis auctor. Aliquam consectetur pretium sapien, eget congue purus egestas nec. Maecenas sed purus ut turpis varius dictum. Praesent a nunc ipsum, id mattis odio. Donec rhoncus posuere bibendum. Fusce nulla elit, laoreet non posuere.</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
Est-il possible de faire quelque chose de similaire pour le dernier mot de chaque ligne? (Ou devrais-je commencer un nouveau sujet pour cette question?)
@Teis: Bien sûr, enregistrez simplement une référence au dernier mot de la boucle (comme litigy code>, et si vous voyez que le mot suivant démarre une nouvelle ligne, appliquez le CSS ou quoi que ce soit pour le dernier à la place. de l'actuel.
Essayez ceci:
p>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sagittis nunc non nisi venenatis auctor.</p> <p>Aliquam consectetur pretium sapien, eget congue purus egestas nec. Maecenas sed purus ut turpis varius dictum.</p> <p>Praesent a nunc ipsum, id mattis odio. Donec rhoncus posuere bibendum. Fusce nulla elit, laoreet non posuere.</p>
Cela ne semble pas fonctionner - lorsque le texte est plus long que la page et les enveloppements, le premier mot de la deuxième ligne n'est pas également mis en surbrillance, comme demande OP.
Pour gras chaque premier mot d'un code> étiquette, y compris avec espace après le code>, utilisez des expressions régulières: $('p').each(function(){
var me = $(this);
me.html( me.text().replace(/(^\w+|\s+\w+)/,'<strong>$1</strong>') );
});
Cela effacera tout élément supplémentaire à l'intérieur de ces éléments p code>.
Je suppose que vous n'avez pas chaque ligne dans une balise
distincte ou que chaque ligne se termine avec un
?
Améliorez votre question avec une certaine description