JavaFX CSS如何仅修改TableView指定列文本透明度而不改变边框透明度
你之前直接给列ID设置-fx-opacity的写法会将透明度属性作用于整个单元格节点,包括边框、背景、文本在内的所有子元素都会继承这个透明度,所以才会出现边框也变透明的问题。
解决方法
方法1:使用带alpha通道的文本颜色属性(最常用)
直接通过-fx-text-fill指定带透明度的颜色,仅作用于文本内容,不会影响边框等其他单元格样式。修改后的样式代码如下:
/* 仅修改目标列的文本透明度 */ #column_2 .table-cell { /* rgba参数说明:前三位对应原文本的RGB色值,第四位为透明度,范围0-1,0.6即对应60%透明度 */ -fx-text-fill: rgba(0, 0, 0, 0.6); } .table-cell { -fx-border-color: transparent transparent blue transparent; -fx-opacity: 100%; }
方法2:单独选中单元格内的文本节点设置透明度
如果不想修改文本本身的颜色,只想统一调整透明度,可以直接选中单元格内的文本节点设置透明度,适配任意原有文本颜色:
/* 仅选中目标列单元格内的文本节点设置透明度 */ #column_2 .table-cell .text { -fx-opacity: 0.6; } .table-cell { -fx-border-color: transparent transparent blue transparent; -fx-opacity: 100%; }
效果示例

内容的提问来源于stack exchange,提问作者Əziz Rəhimov
相关产品推荐
相关产品推荐

