1e41f4b71Sopenharmony_ci# <text> Development
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ciThe **<text>** component is used to display a piece of textual information. For details, see [text](../reference/apis-arkui/arkui-js/js-components-basic-text.md).
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci## Creating a <text> Component
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ciCreate a **<text>** component in the .hml file under **pages/index**.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci```html
12e41f4b71Sopenharmony_ci<!-- xxx.hml -->
13e41f4b71Sopenharmony_ci<div class="container" style="text-align: center;justify-content: center; align-items: center;">
14e41f4b71Sopenharmony_ci  <text>Hello World</text>
15e41f4b71Sopenharmony_ci</div>
16e41f4b71Sopenharmony_ci```
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci```css
19e41f4b71Sopenharmony_ci/* xxx.css */
20e41f4b71Sopenharmony_ci.container {
21e41f4b71Sopenharmony_ci  width: 100%;
22e41f4b71Sopenharmony_ci  height: 100%;
23e41f4b71Sopenharmony_ci  flex-direction: column;
24e41f4b71Sopenharmony_ci  align-items: center;
25e41f4b71Sopenharmony_ci  justify-content: center;
26e41f4b71Sopenharmony_ci  background-color: #F1F3F5;
27e41f4b71Sopenharmony_ci}
28e41f4b71Sopenharmony_ci```
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci![en-us_image_0000001222807780](figures/en-us_image_0000001222807780.png)
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci## Setting the Text Style and Attributes
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci- Adding a text style
36e41f4b71Sopenharmony_ci  
37e41f4b71Sopenharmony_ci  Set the **color**, **font-size**, **allow-scale**, **word-spacing**, and **text-align** attributes to add the color, size, zoom, text spacing, and vertical alignment of the text.
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci  ```html
40e41f4b71Sopenharmony_ci  <!-- xxx.hml -->
41e41f4b71Sopenharmony_ci  <div class="container" style="background-color:#F1F3F5;flex-direction: column;justify-content: center; align-items: center;">   
42e41f4b71Sopenharmony_ci    <text style="color: blueviolet; font-size: 40px; allow-scale:true"> 
43e41f4b71Sopenharmony_ci      This is a passage
44e41f4b71Sopenharmony_ci    </text>
45e41f4b71Sopenharmony_ci    <text style="color: blueviolet; font-size: 40px; margin-top: 20px; allow-scale:true;word-spacing: 20px;" >
46e41f4b71Sopenharmony_ci      This is a passage
47e41f4b71Sopenharmony_ci    </text>
48e41f4b71Sopenharmony_ci  </div> 
49e41f4b71Sopenharmony_ci  ```
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci  ```css
52e41f4b71Sopenharmony_ci  /* xxx.css */
53e41f4b71Sopenharmony_ci  .container {
54e41f4b71Sopenharmony_ci    width: 100%;
55e41f4b71Sopenharmony_ci    height: 100%;
56e41f4b71Sopenharmony_ci    flex-direction: column;
57e41f4b71Sopenharmony_ci    align-items: center;
58e41f4b71Sopenharmony_ci    justify-content: center;
59e41f4b71Sopenharmony_ci    background-color: #F1F3F5;
60e41f4b71Sopenharmony_ci  }
61e41f4b71Sopenharmony_ci  ```
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci    ![en-us_image_0000001222967764](figures/en-us_image_0000001222967764.png)
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci- Adding a text modifier
67e41f4b71Sopenharmony_ci  
68e41f4b71Sopenharmony_ci  Set the **text-decoration** and **text-decoration-color** attributes to add an underline, overline, line-through, or a combination of lines in the specified color to selected text. For values of **text-decoration**, see [Text Styles](../reference/apis-arkui/arkui-js/js-components-basic-text.md).
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci  ```html
72e41f4b71Sopenharmony_ci  <!-- xxx.hml -->
73e41f4b71Sopenharmony_ci  <div class="container" style="background-color:#F1F3F5;">
74e41f4b71Sopenharmony_ci    <text style="text-decoration:underline">
75e41f4b71Sopenharmony_ci      This is a passage
76e41f4b71Sopenharmony_ci    </text>
77e41f4b71Sopenharmony_ci    <text style="text-decoration:line-through;text-decoration-color: red">
78e41f4b71Sopenharmony_ci      This is a passage
79e41f4b71Sopenharmony_ci     </text>
80e41f4b71Sopenharmony_ci  </div>
81e41f4b71Sopenharmony_ci  ```
82e41f4b71Sopenharmony_ci
83e41f4b71Sopenharmony_ci  ```css
84e41f4b71Sopenharmony_ci  /* xxx.css */
85e41f4b71Sopenharmony_ci  .container {
86e41f4b71Sopenharmony_ci    width: 100%;
87e41f4b71Sopenharmony_ci    height: 100%;
88e41f4b71Sopenharmony_ci    flex-direction: column;
89e41f4b71Sopenharmony_ci    align-items: center;
90e41f4b71Sopenharmony_ci    justify-content: center;
91e41f4b71Sopenharmony_ci  }
92e41f4b71Sopenharmony_ci  text{
93e41f4b71Sopenharmony_ci    font-size: 50px;
94e41f4b71Sopenharmony_ci  }
95e41f4b71Sopenharmony_ci  ```
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci  ![en-us_image_0000001223287688](figures/en-us_image_0000001223287688.png)
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci- Hiding text content
101e41f4b71Sopenharmony_ci  
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ciSet the **text-overflow** attribute to **ellipsis** so that overflowed text is displayed as an ellipsis.
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci  ```html
107e41f4b71Sopenharmony_ci  <!-- xxx.hml -->
108e41f4b71Sopenharmony_ci  <div class="container">
109e41f4b71Sopenharmony_ci    <text class="text">
110e41f4b71Sopenharmony_ci      This is a passage
111e41f4b71Sopenharmony_ci    </text>
112e41f4b71Sopenharmony_ci  </div>
113e41f4b71Sopenharmony_ci  ```
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_ci  ```css
116e41f4b71Sopenharmony_ci  /* xxx.css */
117e41f4b71Sopenharmony_ci  .container {
118e41f4b71Sopenharmony_ci    width: 100%;
119e41f4b71Sopenharmony_ci    height: 100%;
120e41f4b71Sopenharmony_ci    flex-direction: column;
121e41f4b71Sopenharmony_ci    align-items: center;
122e41f4b71Sopenharmony_ci    background-color: #F1F3F5;
123e41f4b71Sopenharmony_ci    justify-content: center; 
124e41f4b71Sopenharmony_ci  }
125e41f4b71Sopenharmony_ci  .text{
126e41f4b71Sopenharmony_ci    width: 200px;
127e41f4b71Sopenharmony_ci    max-lines: 1;
128e41f4b71Sopenharmony_ci    text-overflow:ellipsis;
129e41f4b71Sopenharmony_ci  }
130e41f4b71Sopenharmony_ci  ```
131e41f4b71Sopenharmony_ci
132e41f4b71Sopenharmony_ci  > **NOTE**
133e41f4b71Sopenharmony_ci  > - **text-overflow** must be used together with **max-lines**.
134e41f4b71Sopenharmony_ci  > - **max-lines** indicates the maximum number of lines in the text.
135e41f4b71Sopenharmony_ci
136e41f4b71Sopenharmony_ci  ![en-us_image_0000001267647865](figures/en-us_image_0000001267647865.png)
137e41f4b71Sopenharmony_ci
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ci- Setting the text line breaking mode
140e41f4b71Sopenharmony_ci  
141e41f4b71Sopenharmony_ci
142e41f4b71Sopenharmony_ciSet the **word-break** attribute to specify how to break lines of text. For values of **word-break**, see [Text Styles](../reference/apis-arkui/arkui-js/js-components-basic-text.md).
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_ci  ```html
146e41f4b71Sopenharmony_ci  <!-- xxx.hml -->
147e41f4b71Sopenharmony_ci  <div class="container">
148e41f4b71Sopenharmony_ci    <div class="content">
149e41f4b71Sopenharmony_ci      <text class="text1">
150e41f4b71Sopenharmony_ci        Welcome to the world
151e41f4b71Sopenharmony_ci      </text>
152e41f4b71Sopenharmony_ci        <text class="text2">
153e41f4b71Sopenharmony_ci          Welcome to the world
154e41f4b71Sopenharmony_ci        </text>
155e41f4b71Sopenharmony_ci    </div>
156e41f4b71Sopenharmony_ci  </div>
157e41f4b71Sopenharmony_ci  ```
158e41f4b71Sopenharmony_ci
159e41f4b71Sopenharmony_ci  ```css
160e41f4b71Sopenharmony_ci  /* xxx.css */
161e41f4b71Sopenharmony_ci  .container {
162e41f4b71Sopenharmony_ci    width: 100%;
163e41f4b71Sopenharmony_ci    height: 100%;
164e41f4b71Sopenharmony_ci    background-color: #F1F3F5;
165e41f4b71Sopenharmony_ci    flex-direction: column;
166e41f4b71Sopenharmony_ci    align-items: center;
167e41f4b71Sopenharmony_ci    justify-content: center;
168e41f4b71Sopenharmony_ci  }
169e41f4b71Sopenharmony_ci  .content{
170e41f4b71Sopenharmony_ci    width: 50%;
171e41f4b71Sopenharmony_ci    flex-direction: column;
172e41f4b71Sopenharmony_ci    align-items: center;
173e41f4b71Sopenharmony_ci    justify-content: center;
174e41f4b71Sopenharmony_ci  }
175e41f4b71Sopenharmony_ci  .text1{
176e41f4b71Sopenharmony_ci    width: 100%;
177e41f4b71Sopenharmony_ci    height: 200px;
178e41f4b71Sopenharmony_ci    border:1px solid #1a1919;
179e41f4b71Sopenharmony_ci    margin-bottom: 50px;
180e41f4b71Sopenharmony_ci    text-align: center;
181e41f4b71Sopenharmony_ci    word-break: break-word;
182e41f4b71Sopenharmony_ci    font-size: 40px;
183e41f4b71Sopenharmony_ci  }
184e41f4b71Sopenharmony_ci  .text2{
185e41f4b71Sopenharmony_ci    width: 100%;
186e41f4b71Sopenharmony_ci    height: 200px;
187e41f4b71Sopenharmony_ci    border:1px solid #0931e8;
188e41f4b71Sopenharmony_ci    text-align: center;
189e41f4b71Sopenharmony_ci    word-break: break-all;
190e41f4b71Sopenharmony_ci    font-size: 40px;
191e41f4b71Sopenharmony_ci  }
192e41f4b71Sopenharmony_ci  ```
193e41f4b71Sopenharmony_ci
194e41f4b71Sopenharmony_ci    ![en-us_image_0000001267767865](figures/en-us_image_0000001267767865.png)
195e41f4b71Sopenharmony_ci
196e41f4b71Sopenharmony_ci
197e41f4b71Sopenharmony_ci- Setting the [&lt;span&gt;](../reference/apis-arkui/arkui-js/js-components-basic-span.md) child component
198e41f4b71Sopenharmony_ci  
199e41f4b71Sopenharmony_ci  ```html
200e41f4b71Sopenharmony_ci  <!-- xxx.hml -->
201e41f4b71Sopenharmony_ci  <div class="container" style="justify-content: center; align-items: center;flex-direction: column;background-color: #F1F3F5;  width: 100%;height: 100%;">
202e41f4b71Sopenharmony_ci    <text style="font-size: 45px;">
203e41f4b71Sopenharmony_ci      This is a passage
204e41f4b71Sopenharmony_ci    </text>
205e41f4b71Sopenharmony_ci    <text style="font-size: 45px;">
206e41f4b71Sopenharmony_ci      <span style="color: aqua;">This </span><span style="color: #F1F3F5;">      1       
207e41f4b71Sopenharmony_ci      </span>   
208e41f4b71Sopenharmony_ci      <span style="color: blue;"> is a </span>    <span style="color: #F1F3F5;">      1    </span>    
209e41f4b71Sopenharmony_ci      <span style="color: red;">  passage </span>
210e41f4b71Sopenharmony_ci    </text>
211e41f4b71Sopenharmony_ci  </div>
212e41f4b71Sopenharmony_ci  ```
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ci  ![en-us_image_0000001223127720](figures/en-us_image_0000001223127720.png)
215e41f4b71Sopenharmony_ci
216e41f4b71Sopenharmony_ci  > **NOTE**
217e41f4b71Sopenharmony_ci  > - When the **&lt;span&gt;** child component is used to form a text paragraph, incorrect **&lt;span&gt;** attribute settings (for example, setting of **font-weight** to **1000**) will result in abnormal display of the text paragraph.
218e41f4b71Sopenharmony_ci  > 
219e41f4b71Sopenharmony_ci  > - When the **&lt;span&gt;** child component is being used, do not include any text you want to show in the **&lt;text&gt;** component, as such text will not be displayed if you do so.
220e41f4b71Sopenharmony_ci
221e41f4b71Sopenharmony_ci
222e41f4b71Sopenharmony_ci## Example Scenario
223e41f4b71Sopenharmony_ci
224e41f4b71Sopenharmony_ciUse the **&lt;text&gt;** component to display text content through data binding. Use the **&lt;span&gt;** child component to hide or display text content by setting the **show** attribute.
225e41f4b71Sopenharmony_ci
226e41f4b71Sopenharmony_ci```html
227e41f4b71Sopenharmony_ci<!-- xxx.hml -->
228e41f4b71Sopenharmony_ci<div class="container">
229e41f4b71Sopenharmony_ci  <div style="align-items: center;justify-content: center;">
230e41f4b71Sopenharmony_ci    <text class="title">
231e41f4b71Sopenharmony_ci      {{ content }}
232e41f4b71Sopenharmony_ci    </text>
233e41f4b71Sopenharmony_ci    <switch checked="true" onchange="test"></switch>
234e41f4b71Sopenharmony_ci  </div>
235e41f4b71Sopenharmony_ci  <text class="span-container" style="color: #ff00ff;">
236e41f4b71Sopenharmony_ci    <span show="{{isShow}}">  {{ content  }}  </span>
237e41f4b71Sopenharmony_ci    <span style="color: white;">
238e41f4b71Sopenharmony_ci        1
239e41f4b71Sopenharmony_ci    </span>
240e41f4b71Sopenharmony_ci    <span style="color: #f76160">Hide clip </span>
241e41f4b71Sopenharmony_ci  </text>
242e41f4b71Sopenharmony_ci</div>
243e41f4b71Sopenharmony_ci```
244e41f4b71Sopenharmony_ci
245e41f4b71Sopenharmony_ci```css
246e41f4b71Sopenharmony_ci/* xxx.css */
247e41f4b71Sopenharmony_ci.container {
248e41f4b71Sopenharmony_ci  width: 100%;
249e41f4b71Sopenharmony_ci  height: 100%;
250e41f4b71Sopenharmony_ci  align-items: center;
251e41f4b71Sopenharmony_ci  flex-direction: column;
252e41f4b71Sopenharmony_ci  justify-content: center;
253e41f4b71Sopenharmony_ci  background-color: #F1F3F5;
254e41f4b71Sopenharmony_ci}
255e41f4b71Sopenharmony_ci.title {
256e41f4b71Sopenharmony_ci  font-size: 26px;
257e41f4b71Sopenharmony_ci  text-align:center;
258e41f4b71Sopenharmony_ci  width: 200px;
259e41f4b71Sopenharmony_ci  height: 200px;
260e41f4b71Sopenharmony_ci}
261e41f4b71Sopenharmony_ci```
262e41f4b71Sopenharmony_ci
263e41f4b71Sopenharmony_ci```js
264e41f4b71Sopenharmony_ci// xxx.js
265e41f4b71Sopenharmony_ciexport default {   
266e41f4b71Sopenharmony_ci  data: {    
267e41f4b71Sopenharmony_ci    isShow:true,    
268e41f4b71Sopenharmony_ci    content: 'Hello World'
269e41f4b71Sopenharmony_ci  },   
270e41f4b71Sopenharmony_ci  onInit(){    },  
271e41f4b71Sopenharmony_ci  test(e) {    
272e41f4b71Sopenharmony_ci    this.isShow = e.checked  
273e41f4b71Sopenharmony_ci  }
274e41f4b71Sopenharmony_ci}
275e41f4b71Sopenharmony_ci```
276e41f4b71Sopenharmony_ci
277e41f4b71Sopenharmony_ci![en-us_image_0000001267887849](figures/en-us_image_0000001267887849.gif)