2012-02-22 29 views
8

我想保存供以后使用属性的当前值。它已被解决为jQuery如何获得在SASS一个CSS属性的值?

的问题是,我使用的是@mixin申请在几个地方一个CSS破解(Justified Block List),我想在.block-list *(目前子元素都文本只是晕倒恢复font-size财产)。

不满意解决方法:

  • 在一个单独的文件保存全局默认字体大小和它传递给@mixin@import。这当然在一般情况下与mixin应用到的对象的字体大小不同。
  • 保存,只要你改变字体大小,并传递。这种缠结了所涉及的文件,因为它不是很利索的@include排版样式表在几个不相关的文件。
  • 使用更多的jQuery。

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

  • 覆盖的字体大小与在其上改变它的始祖更强的规则。这可能很难确定。

回答

3

无法告诉计算属性值,直到样式实际应用于文档(这是jQuery检查的内容)。在样式表语言中,除了初始值或您指定的值之外,没有“当前”值。

保存,只要你改变它,并将它传递似乎最好,@BeauSmith给a good example的字体大小。这种变体可以传递一个大小或回退到定义的全局:

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

如果你有一个mixin与字体大小做一些“黑客行为”,那么你可能需要重新设置字体大小,因为你已经注意到了。我建议如下:

  1. 创建一个Sass部分来记录您的项目配置变量。我建议_config.sass
  2. _config.sass定义你的基本字体大小:

    $base-font-size: 16px 
    
  3. 你的主要SASS文件(S)的顶部添加@import _config.sass

  4. 更新混入到字体大小重置为$基本字体大小:

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

注:如果您使用的是SCSS语法,你需要在此更新示例。