Css 使文本区域类似于记事本JavaFX

Css 使文本区域类似于记事本JavaFX,css,javafx,textfield,Css,Javafx,Textfield,如何使用CSS或代码设置文本字段的样式,使其看起来像记事本 我试着说,这是: textarea { background: url(http://i.stack.imgur.com/ynxjD.png) repeat-y; width: 600px; height: 300px; font: normal 14px verdana; line-height: 25px; padding: 2px 10px; border: solid 1px #ddd; } 但这并没有影响我的文

如何使用CSS或代码设置文本字段的样式,使其看起来像记事本

我试着说,这是:

textarea {
 background: url(http://i.stack.imgur.com/ynxjD.png) repeat-y;
 width: 600px;
 height: 300px;
 font: normal 14px verdana;
 line-height: 25px;
 padding: 2px 10px;
 border: solid 1px #ddd;
}
但这并没有影响我的文字区域

以下是我想要的:


谢谢

您可以通过为文本区域提供线性渐变背景,并指定用于播放背景和相应文本对齐方式的行高和字体大小来实现所需的效果

代码段如下所示:

#容器{
保证金:0;
填充:0;
}
文本区{
保证金:0;
填充:0.4px;
高度:150像素;
宽度:300px;
位置:相对位置;
颜色:#444;
线高:20px;
边框:1px实心#D2D2D2D2;
背景:#fff;
背景:-webkit渐变(线性,0.0,0.100%,自(#3b84aa),颜色停止(4%,#f2e47c))0 px
/*4px*/
;
背景:-webkit线性梯度(顶部,#3b84aa 0%,#f2e47c 8%)0 0px
/*4px*/
;
背景:-moz线性梯度(顶部,#3b84aa 0%,#f2e47c 8%)0 0px
/*4px*/
;
背景:-ms线性梯度(顶部,#3b84aa 0%,#f2e47c 8%)0 px
/*4px*/
;
背景:-o-线性梯度(顶部,#3b84aa 0%,#f2e47c 8%)0 px
/*4px*/
;
背景:线性梯度(顶部,#3b84aa 0%,#f2e47c 8%)0 0px
/*4px*/
;
-webkit背景尺寸:100%20px;
-moz背景尺寸:100%20px;
-ms背景尺寸:100%20px;
-o-背景尺寸:100%20px;
背景尺寸:100%20px;
盒影:2×2×10px#3391fc;
}

这里有一些文字。废话。废话。废话

您可以通过为文本区域提供线性渐变背景,并指定要与背景和相应文本对齐方式一起使用的行高和字体大小来实现所需的效果

代码段如下所示:

#容器{
保证金:0;
填充:0;
}
文本区{
保证金:0;
填充:0.4px;
高度:150像素;
宽度:300px;
位置:相对位置;
颜色:#444;
线高:20px;
边框:1px实心#D2D2D2D2;
背景:#fff;
背景:-webkit渐变(线性,0.0,0.100%,自(#3b84aa),颜色停止(4%,#f2e47c))0 px
/*4px*/
;
背景:-webkit线性梯度(顶部,#3b84aa 0%,#f2e47c 8%)0 0px
/*4px*/
;
背景:-moz线性梯度(顶部,#3b84aa 0%,#f2e47c 8%)0 0px
/*4px*/
;
背景:-ms线性梯度(顶部,#3b84aa 0%,#f2e47c 8%)0 px
/*4px*/
;
背景:-o-线性梯度(顶部,#3b84aa 0%,#f2e47c 8%)0 px
/*4px*/
;
背景:线性梯度(顶部,#3b84aa 0%,#f2e47c 8%)0 0px
/*4px*/
;
-webkit背景尺寸:100%20px;
-moz背景尺寸:100%20px;
-ms背景尺寸:100%20px;
-o-背景尺寸:100%20px;
背景尺寸:100%20px;
盒影:2×2×10px#3391fc;
}

这里有一些文字。废话。废话。废话

方法

为文本区域的内容部分创建线性渐变背景

-jewelsea-lined-notepad:
    linear-gradient(
        from 0px 0px to 0px 11px,
        repeat,
        gainsboro,
        gainsboro 6.25%,
        cornsilk 6.25%,
        cornsilk
    );
实施说明

棘手的部分是让线性渐变中的线条与文本线条对齐。我认为将渐变大小指定为1em(例如,每行1个字体大小度量)是一个简单的方法,但这不允许渐变对齐。所以我只指定了绝对像素大小的梯度(通过反复试验发现)。不幸的是,使用这种方法,在更改文本区域的字体或字体大小时,需要手动调整渐变中的值。但除了尺寸的困难,它似乎工作得很好

参考资料

  • -默认JavaFXCSS样式表
样本输出

样品溶液

Notepad.java

notepad.css


方法

为文本区域的内容部分创建线性渐变背景

-jewelsea-lined-notepad:
    linear-gradient(
        from 0px 0px to 0px 11px,
        repeat,
        gainsboro,
        gainsboro 6.25%,
        cornsilk 6.25%,
        cornsilk
    );
实施说明

棘手的部分是让线性渐变中的线条与文本线条对齐。我认为将渐变大小指定为1em(例如,每行1个字体大小度量)是一个简单的方法,但这不允许渐变对齐。所以我只指定了绝对像素大小的梯度(通过反复试验发现)。不幸的是,使用这种方法,在更改文本区域的字体或字体大小时,需要手动调整渐变中的值。但除了尺寸的困难,它似乎工作得很好

参考资料

  • -默认JavaFXCSS样式表
样本输出

样品溶液

Notepad.java

notepad.css


答案有点像:,但有点不同,因为答案是针对TableView而不是TextArea。您的文本字段是一个托管的项目列表(如待办事项列表),还是像您在a中找到的自由格式包装文本?谁对此投了赞成票?这是个糟糕的问题。@jewelsea它是freeformI,因为我有兴趣回答它。答案有点像:,但有点不同,因为答案是针对TableView而不是TextArea。您的文本字段是一个托管的项目列表(如待办事项列表),还是像您在a中找到的自由格式包装文本?谁对此进行了投票?这是一个糟糕的问题。@jewelsea它是freeformI,因为我对回答它感兴趣。@Yashar如果您将html和关联的CSS加载到JavaFX中,这个答案应该适用于JavaFX应用程序。@Yashar如果您将html和关联的CSS加载到JavaFX中,这个答案应该适用于JavaFX应用程序。
.root {
    -jewelsea-lined-notepad:
        linear-gradient(
            from 0px 0px to 0px 11px,
            repeat,
            gainsboro,
            gainsboro 6.25%,
            cornsilk 6.25%,
            cornsilk
        );
}

.title {
    -fx-font-size: 16px;
}

.text-area {
    -fx-font-family: "Comic Sans MS";
    -fx-font-size: 15px;
}

.text-area .content {
    -fx-background-color: -jewelsea-lined-notepad;
}

.text-area:focused .content {
    -fx-background-color:
        -fx-control-inner-background,
        -fx-faint-focus-color,
        -jewelsea-lined-notepad;
}