LuLu UI Edge版中文文档 » Input 文本框

文档 Github➹

Input 文本框

安装与调用

如果只想以插件形式单独使用文本框的样式,而不是所有 UI 组件集合ui.css,可以直接引入:

<link rel="stylesheet" href="https://qidian.gtimg.com/lulu/hope/ui/Input/index.css">

部分快捷语法和交互能力要想生效,还需要引入对应的组件 JS,如下所示:

<script type="module" src="https://qidian.gtimg.com/lulu/hope/ui/Input/index.js"></script>

或者:

<script type="module">
    import 'https://qidian.gtimg.com/lulu/hope/ui/Input/index.js';
</script>

传统文本框

<input> 元素设置 is="ui-input" 即可。

<input is="ui-input">
<input is="ui-input" placeholder="输入内容">

虽然 <input> 元素也支持类名 .ui-input,但是只有静态的样式效果,非必要不要使用。

无框文本框

可以使用自定义的 border 属性进行无框文本框的设置。

底边输入框

输入框只有底部有一条线,设置 border="bottom"

<input type="tel" is="ui-input" border="bottom" placeholder="手机号">

如果引入了对应的组件 JS,则可以通过设置 label 属性实现占位符切换为标题的交互效果。

<input type="tel" is="ui-input" border="bottom" label="手机号">

可以使用 height 属性设置成更适合这种交互的高度。

<input is="ui-input" height="4rem" border="bottom" label="邮箱">

无边输入框

通过设置 border="none" 可以设置无边输入框,代码示意:

<input is="ui-input" border="none">

无边输入框需要和列表布局组件一起使用。

<ui-list>
    <ui-list-item active="input">
        <label for="tel">手机号</label>
        <input type="tel" id="tel" is="ui-input" border="none" placeholder="请输入手机号" flex="1">
    </ui-list-item>
    <ui-list-item active="input">
        <label for="code">验证码</label>
        <input id="code" is="ui-input" inputmode="numeric" border="none" placeholder="请输入验证码" flex="1">
        <button is="ui-button" size="small">获取验证码</button>
    </ui-list-item>
</ui-list>

如果不希望点击输入框的时候列表有反馈态,可以移除 <ui-list-item> 列表元素上的 active="input" 设置。

只读和禁用

输入框只读使用原生的 readonly 属性,禁用使用原生的 disabled 属性。

<input is="ui-input" value="只读" readonly>
<input is="ui-input" value="禁用" disabled>
<input is="ui-input" value="只读" border="bottom" readonly>
<input is="ui-input" value="禁用" border="bottom" disabled>
<input is="ui-input" value="只读" border="none" readonly>
<input is="ui-input" value="禁用" border="none" disabled>

出错效果

添加 is-error 属性输入框会显示为出错样式。

<input is="ui-input" is-error required>
<input is="ui-input" border="bottom" is-error>
<input is="ui-input" border="none" is-error>

实际开发 [is-error] 属性会由验证提示组件自动添加,无需手动添加。

计数效果

如果输入框设置了 minlenght 或者 maxlength 属性,输入框会自动显示计数提示效果。

<input is="ui-input" maxlength="20" placeholder="占位符">

带计数的文本框

禁用状态

<input maxlength="20" value="禁用中..." disabled>

搜索框

<input type="search" is="ui-input">

清除按钮

搜索框可能会和清除按钮一起使用,可以使用下面的布局结构,无需 JS 代码参与。

<form class="ui-flex">
    <input type="search" is="ui-input" required>
    <button type="reset" flex="none">清除</button>
</form>

禁用

样式自定义

如果引入了对应的组件 JS,则可以使用 widthheightradius 等属性对输入框样式进行自定义。

小尺寸文本框

默认的文本框高度是 3rem,如果希望文本框小一点,可以使用 height 属性设置一个较小的高度值。

<input is="ui-input" height="2rem" placeholder="小尺寸">
<input type="search" is="ui-input" height="36" placeholder="搜索">

注意,输入框的字号大小和输入框的高度是联动变化的,高度越小,字号也越小。

宽度的设置

可以使用 width 属性指定输入框的宽度,支持高级 CSS 数学函数,例如。

<input is="ui-input" width="min(400px, 100%)">

最小宽度 400px,但是不超过容器宽度。

圆角的设置

圆角使用 radius 属性进行设置。

<input type="search" is="ui-input" radius="100" placeholder="搜索">

图标的自定义

使用下表所示的 CSS 变量进行图标的替换。

CSS 自定义属性 默认效果 释义
--ui-input-image-search 搜索图标
--ui-input-image-clear 清除图标

下面这个例子演示了如何将搜索输入框的搜索图标替换为爱心。

.love-search {
    --ui-input-image-search: url(heart.svg);
}
<input type="search" class="love-search" is="ui-input">

作为普通元素使用

类似日期选择等组件,is 属性被占用,又想使用输入框的样式,可以使用类名 .ui-input,例如:

<input class="ui-input">
<input class="ui-input" border="bottom">
<input class="ui-input" border="none" placeholder="输入内容">
本页贡献者:

zhangxinxu