Est-il possible dans mon fichier css de faire quelque chose comme ça ?:
.myclass:after{
content:"click me";
onclick:"my_function()";
}
Je souhaite ajouter après toutes les instances de myclass
un texte cliquable, dans la feuille de style css.
Est-il possible dans mon fichier css de faire quelque chose comme [voir le code ci-dessus]?
Non
La question importante à poser est pourquoi.
HTML a le contrôle des données de la page Web. Tout CSS ou JS est spécifié via le HTML. C'est le Modèle.
CSS contrôle le styles, il n'y a pas de lien entre CSS et HTML ou JavaScript. C'est le View.
JavaScript a le contrôle des interactions au sein de la page Web et est relié à tous les nœuds DOM. C'est le contrôleur.
En raison de cette structure MVC: HTML appartient aux fichiers .html
, CSS à des fichiers .css
et JS à des fichiers .js
.
Les pseudo-éléments CSS ne créent pas de nœuds DOM. Il n’existe aucun moyen direct pour JavaScript d’accéder à un pseudo-élément défini en CSS, et il n’existe aucun moyen de lier un événement à ces pseudo-éléments.
Si vous disposez d'une structure définie et que vous ne pouvez pas ajouter le contenu supplémentaire nécessaire pour générer de nouveaux liens dans le code HTML, JavaScript peut ajouter dynamiquement les nouveaux éléments nécessaires, qui peuvent ensuite être stylés via CSS.
jQuery rend cela très simple:
$('<span class="click-me">click me</span>').appendTo('.myclass').click(my_function);
Bien,
si vous utilisez expression , cela pourrait être possible uniquement avec Internet Explorer.
Autrement:
Non, pas du tout, css n'est pas ce que css est fait et destiné.