【问题标题】:How to get an individual css style in pyquery如何在pyquery中获得单独的css样式
【发布时间】:2011-06-28 17:39:39
【问题描述】:

您可以使用多种方法设置 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'

这看起来很奇怪,不方便和unpyquery 和unpython 一样!前两个中的一个应该返回样式文本,当然?

有没有办法在不借助 split() 之类的工具的情况下单独获得单一的 css 样式?

【问题讨论】:

    标签: python css pyquery


    【解决方案1】:

    p.css.font_size

    这行得通吗?

    【讨论】:

    • 我真的希望下划线能解决它:(。
    • 也许 p.css('fontSize') 可能有效?驼峰式风格在 jQuery 中有效,或许在这里也有效。
    • 那也没用。我查看了 pyquery 代码,它只返回 self.也许我应该就此事联系作者。是否值得将我添加的代码发送给他以获取 css() 以返回值?
    • 我没有发给他。我刚刚编写了一个简单的函数,通过在 attr('css') 上使用 split() 并获取适当的值来返回 css 值。我认为很多这些包都处于不断变化的状态,python 3 即将推出。
    【解决方案2】:

    您可以拆分字符串并将其转换为字典。

    【讨论】:

    • 好主意!这可能是一个太长的列表理解:dict((name.strip(), val.strip()) for name, val in (pair.split(':') for pair in pq.attr('style').split(';'))) 其中pPyQuery 的一个实例
    【解决方案3】:

    从您的评论看来,您已经知道了这一点,但 PyQuery 不提供此功能。

    css 方法(pyquery.py 中的第 824 行)只设置属性而不能检索,这的耻辱。虽然,鉴于 PyQuery 不使用样式表,检索 CSS 的实用性无论如何都是有限的。

    手动排序p.attr(style) 的结果似乎是目前最好的方法。如果只有一个参数传递给 css 方法,我希望看到一个检索 css 值的选项,但我们会看到。

    【讨论】:

      猜你喜欢
      • 2015-05-26
      • 1970-01-01
      • 2020-10-01
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      相关资源
      最近更新 更多