如何在pyquery中获取单个CSS样式

8 投票
3 回答
836 浏览
提问于 2025-04-16 11:58

你可以通过几种方法来设置一个CSS样式:

p = PyQuery('<p></p>')
p.css('font-size','16px')
p.css(['font-size'] = '16px'
p.css = {'font-size':'16px'}

很好,但怎么获取一个单独的CSS样式呢?

p.css('font-size') # jquery-like method doesn't work
[<p>]
p.css['font-size'] # pythonic method doesn't work!
[<p>]
p.css.font_size # BeardedO's suggestion.
[<p>]
p.attr('style')    # too much information.
'font-size: 16px; font-weight: bold'

这听起来有点奇怪,不太方便,也不太像pyquery和python!前面提到的两种方法中,应该有一种能直接返回样式文本吧?

有没有办法单独获取一个CSS样式,而不需要使用像split()这样的工具呢?

3 个回答

1

从你的评论来看,你似乎已经搞明白了,但PyQuery并不提供这个功能。

css这个方法(在pyquery.py的第824行)只能设置属性,不能获取属性,这真是有点遗憾。不过,考虑到PyQuery并不是在处理样式表,获取CSS的用处本来就有限。

目前,手动查看p.attr(style)的结果似乎是最好的办法。我希望如果只传一个参数给css方法时,能有一个获取CSS值的选项,但我们拭目以待吧。

1

你可以把这个字符串拆分开,然后把它转成一个字典。

1

p.css.font_size

这个可以用吗?

撰写回答