RYN RYN - 3 months ago 21
Javascript Question

Changing width property of a :before css selector using JQuery

I have a page that has an image in it and I styled it using :before CSS selectors.

The image is dynamic so it hasn't a fixed width; So I need to set :before rule's width dynamically.

I want do it in client side using JQuery.

Assume this:

.column:before{
width: 300px;
float: left;
content: "";
height: 430px;
}

.column{
width: 500px;
float: right;
padding: 5px;
overflow: hidden;
text-align: justify;
}


How Can I only change the width property of class with
:before
selector (and not one without it) using JQuery?

m90 m90
Answer

I don't think there's a jQuery-way to directly access the pseudoclass' rules, but you could always append a new style element to the document's head like:

$('head').append('<style>.column:before{width:800px !important;}</style>');

See a live demo here

I also remember having seen a plugin that tackles this issue once but I couldn't find it on first googling unfortunately.

Comments