首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javafx-2,通过CSS删除焦点突出显示。

javafx-2,通过CSS删除焦点突出显示。
EN

Stack Overflow用户
提问于 2012-11-01 17:58:24
回答 2查看 14.1K关注 0票数 6

当TableView聚焦时,我想移除它的蓝色边框。

我签入了caspian.css,对于Button和TextField这样的大多数组件,可以执行如下操作:

代码语言:javascript
复制
.table-view:focused {
  -fx-background-color: -fx-focus-color,-fx-box-border,-fx-control-inner-background;
  -fx-background-insets: -1.4, 0, 1;
  -fx-background-radius: 1.4, 0, 0;
  /*....*/
  -fx-padding: 1; /* 0.083333em; */
}

最后,我的问题是关于CSS的。我可以在样式表中重写这个pseudoclass 规范,而不是尝试将颜色转换成透明的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-01 18:23:39

是的你可以。在样式表中,使用自己选择的JavaFX CSS属性定义完全相同的CSS选择器,如下所示:

代码语言:javascript
复制
.table-view:focused {
  -fx-background-color: red /* or transparent or other preferred color */,-fx-box-border,-fx-control-inner-background;
  -fx-background-insets: -1.4, 0, 1;
  -fx-background-radius: 1.4, 0, 0;
  /*....*/
  -fx-padding: 1; /* 0.083333em; */
}
票数 9
EN

Stack Overflow用户

发布于 2016-05-20 16:16:04

因为JavaFX 8有一个新的主题“modena”,但由于同样的老问题,我想更新Uluk的答案,并给出一些进一步的信息:

如果你想知道,从哪里来的一些风格,你可以看看modena.css。您可以在jfxrt.jar中找到这个css文件,它本身可以在您的JRE或JDK安装目录中找到。在Ubuntu14.04上,jdk主页通常位于

代码语言:javascript
复制
/usr/lib/jvm/java-8-oracle/

jfxrt.jar应该在这里

代码语言:javascript
复制
/usr/lib/jvm/java-8-oracle/jre/lib/ext

打开jar-文件,查看/com/sun/javafx/场景/control/皮肤/modena目录,您将在其中找到modena.css。

从406行开始,您可以看到这样的标题

代码语言:javascript
复制
/* ====   BUTTON LIKE THINGS   ============================================== */

本节下的css指定了许多控件和容器的背景和边框。您只需搜索目标类即可。我将以按钮为例演示它:对于按钮类,将指定以下css

代码语言:javascript
复制
-fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
-fx-background-insets: 0 0 -1 0, 0, 1, 2;

出于某些原因,他们不使用边框,而是使用多个背景模拟一个边框的外观。因此,如果您只想删除边框,您必须调整背景和嵌入属性。

最后,如果要删除聚焦效果,则必须覆盖此默认css。

代码语言:javascript
复制
.button:focused,
.toggle-button:focused,
.radio-button:focused > .radio,
.check-box:focused > .box,
.menu-button:focused,
.choice-box:focused,
.color-picker.split-button:focused > .color-picker-label,
.combo-box-base:focused,
.slider:focused .thumb {
    -fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;
    -fx-background-insets: -0.2, 1, 2, -1.4, 2.6;
    -fx-background-radius: 3, 2, 1, 4, 1;
}

对于您选择的控件,请使用上面的背景和嵌入的默认定义。例如,按钮:

代码语言:javascript
复制
.button:focused {
    -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
    -fx-background-insets: 0 0 -1 0, 0, 1, 2;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13182865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档