繁体   English   中英

我如何使用CSS样式表来样式化JavaFX中的文本形状而不给它分配样式类?

[英]How do I stylize a Text Shape in JavaFX using a CSS style sheet without assigning it a style-class?

我有一个相当简单的JavaFX控件,试图用CSS样式表进行样式化。 我的背景设置很好,但是由于控件本身的大小可能有所不同,并且我想用控件缩放文本,因此我有几种必要的文本形状。

我正在尝试使用.text{/*CSS Code*/}对CSS中的文本进行样式化,但无法正常工作:

.text{
   -fx-fill: #818181;
   -fx-effect: innershadow( three-pass-box , rgba(0,0,0,0.7) , 6, 0.0 , 0 , 2 );   
}

在Scene Builder中打开FXML文件时,我必须先应用样式类,然后再看到效果。

我不在乎,但我也想在悬停或单击文本形状时使用效果,显然是使用访问伪类的样式类:hover不起作用,并且通过扩展,我将假定没有其他伪类工作之一:

.text:hover{
    -fx-fill: #818181; 
}

这就是我剩下的:

root {
    display: block
}

.root{
    -fx-background-color: linear-gradient(
        from 0% 0% to 100% 100%, #b478ff 0%, #9400d3 100%
    );
}

我将根布局(网格窗格)样式类设置为“ root”,并且可行(我可以看到背景渐变颜色很好)。

我喜欢CSS的想法,但似乎永远无法使它起作用,这让我发疯。 我在这里做错了什么? 要文本形状没有可访问的CSS伪类? 甚至根本没有上课? 我想念的是什么?

您已将-fx-fill设置为text和text:hover中相同的颜色。

对我来说,它起作用了,当我使用CSS时:标签和按钮的文本显示了悬停效果(我将fx-fill更改为text:hover中的另一个值)。

示例代码: http : //pastebin.com/GNDwz626

...在看到效果之前,必须先应用样式类。

除非您使用特殊的CSS类,否则有时必须这样做


我喜欢CSS的想法...要使文本形状没有可访问的CSS伪类? ...?

您需要做的是阅读 jfxrt.jar(位于jre \\ lib \\ ext中)中的modena.css ,并在您的jre路径中搜索它。modena.css位于 位置


来自modena.css

这是从CSS中提取的一些信息。

 /******************************************************* * * * Text COMMON * * * ******************************************************/ .text-input { /* ... */ } .text-input:focused { /* ... */ } /******************************************************* * * * TextArea * * * ******************************************************/ .text-area { /* ... */ } .text-area > .scroll-pane { /* ... */ } .text-area > .scroll-pane > .scroll-bar:horizontal { /* ... */ } .text-area > .scroll-pane > .scroll-bar:vertical { -/* ... */ } .text-area > .scroll-pane > .corner { /* ... */ } .text-area .content { /* ... */ } .text-area:focused .content { /* ... */ } 

优美的风景

有一个名为Scenic View的软件,您可以从fx Experience网站上获取它。 您也可以使用该软件查找有关控件的css类的信息。

这是因为文本是形状。 因此其略有不同。

//将其放在您的CSS中

/* This sets the fill for the Text Shape */
Text {
    -fx-fill: white;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM