首页 文章

如何在SASS中获取CSS属性的值?

提问于
浏览
9

我'd like to store the current value of a property for later use. It'已经为jQuery解决了 .

问题是我正在使用 @mixin 在几个地方应用CSS hack(Justified Block List)并且我想恢复 .block-list * 中的 font-size 属性(目前子元素中的所有文本都已折叠) .

不满意的解决方法:

  • 将全局默认字体大小保存在单独的文件中,并将其传递给 @import 上的 @mixin . 当然,在一般情况下,这与使用mixin的对象的字体大小不同 .

  • 每次更改时保存字体大小,然后传递 . 这会纠缠所涉及的文件,因为在几个不相关的文件中,排版样式表并不是很优雅 .

  • 使用更多jQuery .

可能令人满意的解决方法:

  • 在第一个更改它的祖先上使用更强的规则覆盖字体大小 . 这可能很难确定 .

2 回答

  • 3

    在样式实际应用于文档之前,没有办法告诉属性的 computed 值(除了初始值或指定的值之外,'s what jQuery examines). In the stylesheet languages, there' s没有"current"值 .

    每当你改变它时保存字体大小,并传递它似乎是最好的,并且@BeauSmith给出了a good example . 此变体允许您将大小或回退传递给已定义的全局:

    =block-list($font-size: $base-font-size)
      font-size: 0
      > li
        font-size: $font-size
    
  • 3

    如果你有一个使用字体大小做“hacky”的mixin,那么你可能需要重新设置你注意到的字体大小 . 我建议如下:

    • 创建一个Sass partial来记录项目配置变量 . 我建议 _config.sass .

    • _config.sass 中定义基本字体大小:

    $base-font-size: 16px
    
    • 在主sass文件的顶部添加 @import _config.sass .

    • 更新mixin以将font-size重置为$ base-font-size:

    @mixin foo
      nav
        font-size: 0 // this is the hacky part
        > li
          font-size: $base-font-size // reset font-size
    

    Note: 如果您使用的是SCSS语法,则需要在此处更新示例 .

相关问题