【问题标题】:Is it possible to create a parametrized css style?是否可以创建参数化的 CSS 样式?
【发布时间】:2013-09-06 22:00:29
【问题描述】:

我有绘制按钮的 CSS 样式。我需要重用这种样式来绘制不同颜色的按钮。

.button {
   color: white;
   background-color: black;
   border: 1px solid orange;
   (...)
}

我知道我可以覆盖 CSS 属性。但这里的问题是我必须重写按钮的几乎所有代码,这没有意义。创建另一个仅通过颜色值与此不同的 CSS 类更容易。 是否可以创建一些可以将颜色作为参数的样式,保留所有其他 css 属性?

【问题讨论】:

    标签: java css gwt


    【解决方案1】:

    您可以将 GWT (Here) 的运行时替换与注解 @eval 一起使用

    运行时替换:

    为评估静态方法提供运行时支持,当 样式表被注入。可以添加触发/动态更新 如果我们允许对样式进行编程操作,那么未来 元素。 (参见文档)

    例如:

    @eval buttonColor com.myApp.MyTheme.getButtonColor();
    
    .button {
       color: buttonColor ;
       background-color: black;
       border: 1px solid orange;
       (...)
    }
    

    评估时使用的方法必须是静态的

     public class MyTheme {
    
    ...
    
        public static String getButtonColor(){
           return "white";
        }
    }
    

    【讨论】:

    • 谢谢,F.Geraerts!这确实有效,尽管我怀疑我是否应该遵循这种非常复杂的方式来解决我的任务。希望 GWT 开发者能发明一些不那么复杂的东西。
    【解决方案2】:

    GWT 在编译时支持参数化 CSS。这使您可以在 CSS 文件中嵌入编译时指令,例如

    @def TEXT_COLOR   #A0A0A0
    

    那么你就可以使用CSS规则中的值了:

    .some-class {
       color: TEXT_COLOR;
    
    }
    

    您还可以访问 Java 中的值(在编译时)。您可以在此处阅读有关该功能的信息:http://code.google.com/p/google-web-toolkit/wiki/CssResource

    【讨论】:

    • 感谢 fred,我以前在 CSS 中将它用作一种常量,但我不知道如何重用我的 CSS 类。你提供了重用常量的方法,很好,但我想重用这个类!
    【解决方案3】:

    您可以使用按钮类添加新类。

    .newclass{
    color:#ffffff !important;
    }
    

    只需确保您已将 !important 添加到新的类颜色属性中。

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2010-11-02
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      • 1970-01-01
      • 2013-10-15
      相关资源
      最近更新 更多