js-components-basic-text.md 10.4 KB
Newer Older
Z
zengyawen 已提交
1
# text
Z
zengyawen 已提交
2

H
geshi  
HelloCrease 已提交
3
>  **说明:**
Z
zengyawen 已提交
4
>
H
geshi  
HelloCrease 已提交
5
>  - 该组件从API version 4开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
Z
zengyawen 已提交
6
>
H
geshi  
HelloCrease 已提交
7
>  - 文本的展示内容需要写在元素标签内。
Z
zengyawen 已提交
8

Z
zengyawen 已提交
9
文本,用于呈现一段信息。
Z
zengyawen 已提交
10

Z
zengyawen 已提交
11
## 权限列表
Z
zengyawen 已提交
12 13 14 15




Z
zengyawen 已提交
16 17 18 19
## 子组件

支持<[span](../arkui-js/js-components-basic-span.md)>

Z
zengyawen 已提交
20

Z
zengyawen 已提交
21
## 属性
Z
zengyawen 已提交
22

Z
zengyawen 已提交
23
支持[通用属性](../arkui-js/js-components-common-attributes.md)
Z
zengyawen 已提交
24 25


Z
zengyawen 已提交
26
## 样式
Z
zengyawen 已提交
27

Z
zengyawen 已提交
28
除支持[通用样式](../arkui-js/js-components-common-styles.md)外,还支持如下样式:
Z
zengyawen 已提交
29

H
geshi  
HelloCrease 已提交
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| 名称                                 | 类型                                       | 默认值                                      | 必填   | 描述                                       |
| ---------------------------------- | ---------------------------------------- | ---------------------------------------- | ---- | ---------------------------------------- |
| color                              | <color>                            | #e5000000                                | 否    | 设置文本的颜色。                                 |
| font-size                          | <length>                           | 30px                                     | 否    | 设置文本的尺寸。                                 |
| allow-scale                        | boolean                                  | true                                     | 否    | 文本尺寸是否跟随系统设置字体缩放尺寸进行放大缩小。<br/>如果需要支持动态生效,请参看config描述文件中config-changes标签。 |
| letter-spacing                     | &lt;length&gt;                           | 0px                                      | 否    | 设置文本的字符间距。                               |
| word-spacing<sup>7+</sup>          | &lt;length&gt;&nbsp;\|&nbsp;&lt;percentage&gt;&nbsp;\|&nbsp;string | normal                                   | 否    | 设置文本之间的间距,string可选值为:<br/>normal:默认的字间距。 |
| font-style                         | string                                   | normal                                   | 否    | 设置文本的字体样式,可选值为:<br/>-&nbsp;normal:标准的字体样式;<br/>-&nbsp;italic:斜体的字体样式。 |
| font-weight                        | number&nbsp;\|&nbsp;string               | normal                                   | 否    | 设置文本的字体粗细,number类型取值[100,&nbsp;900],默认为400,取值越大,字体越粗。number取值必须为100的整数倍。<br/>string类型取值支持如下四个值:lighter、normal、bold、bolder。 |
| text-decoration                    | string                                   | none                                     | 否    | 设置文本的文本修饰,可选值为:<br/>-&nbsp;underline:文字下划线修饰;<br/>-&nbsp;line-through:穿过文本的修饰线n<br/>-&nbsp;none:标准文本。 |
| text-decoration-color<sup>7+</sup> | &lt;color&gt;                            | -                                        | 否    | 设置文本修饰线的颜色。                              |
| text-align                         | string                                   | start<br/>                               | 否    | 设置文本的文本对齐方式,可选值为:<br/>-&nbsp;left:文本左对齐;<br/>-&nbsp;center:文本居中对齐;<br/>-&nbsp;right:文本右对齐;<br/>-&nbsp;start:根据文字书写相同的方向对齐;<br/>-&nbsp;end:根据文字书写相反的方向对齐。<br/>如果文本宽度未指定大小,文本的宽度和父容器的宽度大小相等的情况下,对齐效果可能会不明显。 |
| line-height                        | &lt;length&gt;&nbsp;\|&nbsp;&lt;percentage&gt;<sup>7+</sup>&nbsp;\|&nbsp;string<sup>7+</sup> | 0px<sup>1-6</sup><br/>normal<sup>7+</sup> | 否    | 设置文本的文本行高,设置为0px时,不限制文本行高,自适应字体大小。string可选值为:<br/>normal<sup>7+</sup>:默认的行高。 |
| text-overflow                      | string                                   | clip                                     | 否    | 在设置了最大行数的情况下生效,可选值为:<br/>-&nbsp;clip:将文本根据父容器大小进行裁剪显示;<br/>-&nbsp;ellipsis:根据父容器大小显示,显示不下的文本用省略号代替。需配合max-lines使用。 |
| font-family                        | string                                   | sans-serif                               | 否    | 设置文本的字体列表,用逗号分隔,每个字体用字体名或者字体族名设置。列表中第一个系统中存在的或者通过[自定义字体](../arkui-js/js-components-common-customizing-font.md)指定的字体,会被选中作为文本的字体。 |
| max-lines                          | number&nbsp;\|&nbsp;string<sup>7+</sup>  | -                                        | 否    | 设置文本的最大行数,string类型可选值为:<br/>-&nbsp;auto<sup>7+</sup>:文本行数自适应容器高度。 |
| min-font-size                      | &lt;length&gt;                           | -                                        | 否    | 文本最小字号,需要和文本最大字号同时设置,支持文本字号动态变化。设置最大最小字体样式后,font-size不生效。 |
| max-font-size                      | &lt;length&gt;                           | -                                        | 否    | 文本最大字号,需要和文本最小字号同时设置,支持文本字号动态变化。设置最大最小字体样式后,font-size不生效。 |
| font-size-step                     | &lt;length&gt;                           | 1px                                      | 否    | 文本动态调整字号时的步长,需要设置最小,最大字号样式生效。            |
| prefer-font-sizes                  | &lt;array&gt;                            | -                                        | 否    | 预设的字号集合,在动态尺寸调整时,优先使用预设字号集合中的字号匹配设置的最大行数,如果预设字号集合未设置,则使用最大最小和步长调整字号。针对仍然无法满足最大行数要求的情况,使用text-overflow设置项进行截断,设置预设尺寸集后,font-size、max-font-size、min-font-size和font-size-step不生效。<br/>如:prefer-font-sizes:&nbsp;12px,14px,16px |
| word-break<sup>6+</sup>            | string                                   | normal                                   | 否    | 设置文本折行模式,可选值为:<br/>-&nbsp;normal:默认换行规则,依据各自语言的规则,允许在字间发生换行。<br/>-&nbsp;break-all:对于非中文/日文/韩文的文本,可在任意字符间断行。<br/>-&nbsp;break-word:与break-all相同,不同的地方在于它要求一个没有断行破发点的词必须保持为一个整体单位。 |
| text-indent<sup>7+</sup>           | &lt;length&gt;                           | -                                        | 否    | 设置首行缩进量。                                 |
| white-space<sup>7+</sup>           | string                                   | pre                                      | 否    | 设置处理元素中空白的模式,可选值为:<br/>-&nbsp;normal:所有空格、回车、制表符都合并成一个空格,文本自动换行;<br/>-&nbsp;nowrap:所有空格、回车、制表符都合并成一个空格,文本不换行;<br/>-&nbsp;pre:所有东西原样输出;<br/>-&nbsp;pre-wrap:所有东西原样输出,文本换行;<br/>-&nbsp;pre-line:所有空格、制表符合并成一个空格,回车不变,文本换行。 |
| adapt-height<sup>7+</sup>          | boolean                                  | false                                    | 否    | 文本大小是否自适应容器高度。<br/>设置字体大小自适应相关样式后生效。     |

>  **说明:**
>  - 字体动态缩放:预设尺寸集合和最小最大字号调节基于是否满足最大行数要求,预设尺寸集合会按照从左到右顺序查看是否满足最大行数要求,最小最大字号调节则基于从大到小顺序查看是否满足最大行数要求。
>
>  - 文本换行:文本可以通过转义字符\r\n进行换行。
>
>  - 文本标签内支持以下转义字符:\a,\b,\f,\n,\r,\t,\v,\',\",\0。
>
>  - 当使用子组件span组成文本段落时,如果span属性样式异常,将导致text段落无法显示。
>
>  - letter-spacing、text-align、line-height、text-overflow和max-lines样式作用于text及其子组件(span)组成的文本内容。
>
>  - text组件说明:不支持text内同时存在文本内容和span子组件。(如果同时存在,只显示span内的内容)
Z
zengyawen 已提交
67 68


Z
zengyawen 已提交
69
## 事件
Z
zengyawen 已提交
70

Z
zengyawen 已提交
71
支持[通用事件](../arkui-js/js-components-common-events.md)
Z
zengyawen 已提交
72

Z
zengyawen 已提交
73 74 75 76 77 78
## 方法

支持[通用方法](../arkui-js/js-components-common-methods.md)


## 示例
S
sienna1128 已提交
79
1. 
H
geshi  
HelloCrease 已提交
80
```html
Z
zengyawen 已提交
81 82
<!-- xxx.hml -->
<div class="container">
S
sienna1128 已提交
83 84 85 86 87 88 89 90 91 92
    <text class="title">default text</text>
    <text class="title textcolor">hello world with color</text>
    <text class="title textsize">hello world with font-size</text>
    <text class="title textletterspacing">hello world with letter-spacing</text>
    <text class="title textwordspacing">hello world with word-spacing</text>
    <text class="title textstyle">hello world with italic</text>
    <text class="title textweight">hello world with font-weight</text>
    <text class="title textdecoration1">hello world with underline</text>
    <text class="title textdecoration2">hello world with line-through</text>
    <text class="title textalign">hello world with text-align:right</text>
Z
zengyawen 已提交
93 94 95
</div>
```

H
geshi  
HelloCrease 已提交
96
```css
Z
zengyawen 已提交
97 98
/* xxx.css */
.container {
S
sienna1128 已提交
99 100 101 102
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
Z
zengyawen 已提交
103 104
}
.title {
S
sienna1128 已提交
105 106 107
    text-align: center;
    width: 800px;
    height: 60px;
Z
zengyawen 已提交
108
}
S
sienna1128 已提交
109 110
.textcolor {
    color: indianred;
Z
zengyawen 已提交
111
}
S
sienna1128 已提交
112 113 114 115 116 117 118 119
.textsize {
    font-size: 40px;
}
.textletterspacing {
    letter-spacing: -3px;
}
.textwordspacing {
    word-spacing: 20px;
Z
zengyawen 已提交
120
}
S
sienna1128 已提交
121 122
.textstyle {
    font-style: italic;
Z
zengyawen 已提交
123
}
S
sienna1128 已提交
124 125 126 127 128 129 130 131 132 133 134 135
.textweight {
    font-weight: 700;
}
.textdecoration1 {
    text-decoration: underline;
}
.textdecoration2 {
    text-decoration: line-through;
    text-decoration-color: red;
}
.textalign {
    text-align: right;
Z
zengyawen 已提交
136 137 138
}
```

S
sienna1128 已提交
139 140 141

![zh-cn_image_0000001167823076](figures/text.png)