3

Is it possible to set the CSS of a pseudo-element dynamically? For example:

jQuery dynamically styling help container

$('#help').css({
    "width" : windowWidth - xOffset,
    "height" : windowHeight - yOffset,
    "bottom" : -windowHeight,
    "left" : 200
});

jQuery Attempt at setting the inner border of the help container:

$('#help:before').css({
    "width" : windowWidth - xOffset,
    "height" : windowHeight - yOffset
});

CSS file for the above

#help
{
    opacity: 0.9;
    filter:alpha(opacity=90);   
    -moz-opacity: 0.9;          
    z-index: 1000000;
    bottom: -550px;
    left: 400px;
    background-color: #808080;
    border: 5px dashed #494949;
    -webkit-border-radius: 20px 20px 20px 20px;
    -moz-border-radius: 20px 20px 20px 20px;
    border-radius: 20px 20px 20px 20px;        
}
#help:before 
{
    border: 5px solid white;
    content: '';
    position: absolute;
    -webkit-border-radius: 20px 20px 20px 20px;
    -moz-border-radius: 20px 20px 20px 20px;
    border-radius: 20px 20px 20px 20px;          
}
BoltClock
  • 700,868
  • 160
  • 1,392
  • 1,356
Jack
  • 15,614
  • 19
  • 67
  • 92
  • possible duplicate of [Setting CSS pseudo-class rules from JavaScript](http://stackoverflow.com/questions/311052/setting-css-pseudo-class-rules-from-javascript) – thirtydot Aug 23 '11 at 17:09

2 Answers2

5

You can't do it directly through jQuery.

Look at this question: Setting CSS pseudo-class rules from JavaScript

@Box9's answer is probably the one you should actually use:

I threw together a small library for this since I do think there are valid use cases for manipulating stylesheets in JS.

Community
  • 1
  • 1
thirtydot
  • 224,678
  • 48
  • 389
  • 349
0

Rather than setting the width and height using .css(), you should just use .width() and height() directly.

Blazemonger
  • 90,923
  • 26
  • 142
  • 180
  • 1
    Can you post the code for this, my code doesn't work: $('#help:before').width(windowHeight - 410) .height(windowHeight - 210); – Jack Aug 23 '11 at 17:05