问题
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;
}
回答1:
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.
回答2:
Rather than setting the width and height using .css()
, you should just use .width()
and height()
directly.
来源:https://stackoverflow.com/questions/7164709/pseudo-element-css-dynamically-using-javascript