此功能仍处于实验阶段。“Experimental”表示这是早期实现,可能会发生重大且破坏性的更改。
Text 是一个核心组件,使用库的排版系统来渲染文本。
用法
Text 可用于渲染任何文本内容,例如 HTML p 或 span。
import { __experimentalText as Text } from '@wordpress/components';
function Example() {
return <Text>Code is Poetry</Text>;
}
属性
adjustLineHeightForInnerControls
类型: "large","medium","small","xSmall"
自动计算渲染文本和控制元素(如 TextInput)内容的适当行高值。
import { __experimentalText as Text, TextInput } from '@wordpress/components';
function Example() {
return (
<Text adjustLineHeightForInnerControls={"small"}>
Lorem ipsum dolor sit amet, consectetur
<TextInput value="adipiscing elit..." />
</Text>
);
}
align
类型: CSSProperties['textAlign']
调整文本对齐方式。
import { __experimentalText as Text } from '@wordpress/components';
function Example() {
return (
<Text align="center" isBlock>
Lorem ipsum dolor sit amet, consectetur adipiscing elit...
</Text>
);
}
color
类型: CSSProperties['color']
调整文本颜色。
display
类型: CSSProperties['display']
调整 CSS display。
ellipsis
类型: string
设置 truncate 时使用的省略号字符串。
ellipsizeMode
类型: "auto","head","tail","middle"
确定截断的位置。例如,我们可以将文本在中间截断。要做到这一点,我们需要将 ellipsizeMode 设置为 middle 并设置文本 limit。
auto:在没有limit的情况下自动修剪末尾内容。head:修剪开头内容。需要limit。middle:修剪中间内容。需要limit。tail:修剪末尾内容。需要limit。
highlightCaseSensitive
类型: boolean
转义 highlightWords 中在正则表达式中有意义的字符。
highlightEscape
类型: boolean
确定 highlightWords 是否区分大小写。
highlightSanitize
类型: boolean
搜索词数组。除非 highlightEscape 为 true,否则字符串搜索词会自动转换为 RegExps。
highlightWords
类型: any[]
可以使用 highlightWords 突出显示 Text 中的字母或单词。
import { __experimentalText as Text } from '@wordpress/components';
function Example() {
return (
<Text highlightWords={ [ 'pi' ] }>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ex
neque, vulputate a diam et, luctus convallis lacus. Vestibulum ac
mollis mi. Morbi id elementum massa. Suspendisse interdum auctor
ligula eget cursus. In fermentum ultricies mauris, pharetra
fermentum erat pellentesque id.
</Text>
);
}
isBlock
类型: boolean
设置 Text 具有 display: block。
注意:仅当 isBlock 为 false 时,文本截断才有效。
isDestructive
类型: boolean
渲染破坏性颜色。
limit
类型: number
设置 truncate 时的最大字符数。
lineHeight
类型: CSSProperties['lineHeight']
根据排版系统调整所有文本的行高。
numberOfLines
类型: number
将文本内容限制为特定的 numberOfLines,并在末尾添加 ellipsis。
optimizeReadabilityFor
类型: CSSProperties['color']
Text 的颜色可以适应背景色以实现最佳可读性。optimizeReadabilityFor 除了接受标准 CSS 颜色值(例如 Hex、RGB、HSL 等…)外,还可以接受 CSS 变量。
import { __experimentalText as Text, View } from '@wordpress/components';
function Example() {
const backgroundColor = 'blue';
return (
<View style={ { backgroundColor } }>
<Text optimizeReadabilityFor={ backgroundColor }>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</Text>
</View>
);
}
size
类型: CSSProperties['fontSize'],TextSize
根据排版系统调整文本大小。Text 可以渲染多种字体大小,这些大小会根据排版系统进行自动计算和适配。size 值可以是系统预设、number 或自定义单位值(string),例如 30em。
import { __experimentalText as Text } from '@wordpress/components';
function Example() {
return <Text size="largeTitle">Code is Poetry</Text>;
}
truncate
类型: boolean
启用文本截断。当设置 truncate 时,我们可以以多种方式截断长文本。
注意:如果 isBlock 属性设置为 true,则文本截断将不起作用。
import { __experimentalText as Text } from '@wordpress/components';
function Example() {
return (
<Text truncate>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ex
neque, vulputate a diam et, luctus convallis lacus. Vestibulum ac
mollis mi. Morbi id elementum massa. Suspendisse interdum auctor
ligula eget cursus. In fermentum ultricies mauris, pharetra
fermentum erat pellentesque id.
</Text>
);
}
upperCase
类型: boolean
将文本内容转换为大写。
variant
类型: "muted"
调整文本样式变体。
import { __experimentalText as Text } from '@wordpress/components';
function Example() {
return <Text variant="muted">Code is Poetry</Text>;
}
weight
类型: CSSProperties['fontWeight'],TextWeight
调整文本的字重。