web-dev-qa-db-fra.com

Insérer du HTML à partir de CSS

Existe-t-il un moyen d'insérer un élément HTML, un dom ou un code à partir de CSS (3)?

42
methyl

Contenu (pour le texte et non html):

http://www.quirksmode.org/css/content.html

Mais pour être clair, c'est une mauvaise pratique. Son support dans tous les navigateurs est fragile, et ce n'est généralement pas une bonne idée. Mais dans les cas où vous devez vraiment l'utiliser, le voilà.

13
fiiv

Non. La seule chose que vous pouvez faire est d'ajouter du contenu (et non un élément) en utilisant :before ou :after pseudo-élément.

Plus d'informations: http://www.w3.org/TR/CSS2/generate.html#before-after-content

29
Sotiris

Non tu ne peux pas. La seule chose que vous pouvez faire est d'insérer du contenu. Ainsi:

p:after {
    content: "yo";
}
10
alexn

Une alternative - qui peut fonctionner pour vous en fonction de ce que vous essayez de faire - est d'avoir le code HTML en place, puis d'utiliser le CSS pour l'afficher ou le masquer en fonction de la classe d'un élément parent.

OR

Utilisez jQuery append ()

3
Stu

Ceci peut être fait. Par exemple avec Firefox

CSS

#hlinks {
  -moz-binding: url(stackexchange.xml#hlinks);
}

stackexchange.xml

<bindings xmlns="http://www.mozilla.org/xbl"
  xmlns:html="http://www.w3.org/1999/xhtml">
  <binding id="hlinks">
    <content>
      <children/>
      <html:a href="/privileges">privileges</html:a>
      <html:span class="lsep"> | </html:span>
      <html:a href="/users/logout">log out</html:a>
    </content>
  </binding>
</bindings>

ref 1

ref 2

2
Steven Penny