methyl
methyl

Reputation: 3312

Insert HTML from CSS

Is there any way to insert an HTML element, dom or code from CSS(3)?

Upvotes: 57

Views: 142658

Answers (5)

fiiv
fiiv

Reputation: 1287

Content (for text and not html):

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

But just to be clear, it is bad practice. Its support throughout browsers is shaky, and it's generally not a good idea. But in cases where you really have to use it, there it is.

Upvotes: 16

Stu
Stu

Reputation: 69

An alternative - which may work for you depending on what you're trying to do - is to have the HTML in place and then use the CSS to show or hide it depending on the class of a parent element.

OR

Use jQuery append()

Upvotes: 3

Zombo
Zombo

Reputation: 1

This can be done. For example with 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

Upvotes: 2

Sotiris
Sotiris

Reputation: 40066

No. The only you can do is to add content (and not an element) using :before or :after pseudo-element.

More information: http://www.w3.org/TR/CSS2/generate.html#before-after-content

Upvotes: 40

alexn
alexn

Reputation: 58962

No you cannot. The only thing you can do is to insert content. Like so:

p:after {
    content: "yo";
}

Upvotes: 14

Related Questions