I have a css like a:
body, html { aaa: aaa }
h1, h2 { bbb: bbb; }
h3, h4, h5 { ccc: ccc; }
and i want to parse this string and get an ordered dict / or something like:
{
'body, html': 'aaa: aaa',
'h1, h2': 'bbb: bbb;',
'h3, h4, h5': 'ccc: ccc;'
}
I want to know all selectors and their properties
anybody knows any python library for accomplish this?
thanks!
I would suggest to use the cssutils
module.
import cssutils
from pprint import pprint
css = u'''
body, html { color: blue }
h1, h2 { font-size: 1.5em; color: red}
h3, h4, h5 { font-size: small; }
'''
dct = {}
sheet = cssutils.parseString(css)
for rule in sheet:
selector = rule.selectorText
styles = rule.style.cssText
dct[selector] = styles
pprint(dct)
Output:
{u'body, html': u'color: blue',
u'h1, h2': u'font-size: 1.5em;\ncolor: red',
u'h3, h4, h5': u'font-size: small'}
In your question you asked for a key/value representation. But if you do want to access the individial selectors or proprties, use rule.selectorList
and iterate over its properties for rule.style
:
for property in rule.style:
name = property.name
value = property.value
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With