使用表单布局创建响应式的精美的表单布局。表单布局就是 列表,但是会有一些拓展。
简单的表单布局
让我们看一种最简单的表单布局:
- <div class="list-block">
- <ul>
- ...
- <li>
- <div class="item-content">
- <div class="item-media">... icon here ...</div>
- <div class="item-inner">
- <div class="item-title label">Name</div>
- <div class="item-input">
- <input type="text" name="name">
- </div>
- </div>
- </div>
- </li>
- ...
- </ul>
- </div>
从上面的例子可以看出,表单布局几乎和 列表 一样,但是有如下一些不同:
-
item-title
- 单行的label,应该有一个额外的 label class。可选的。 -
item-input
- 包含了你的表单输入框等。 必选
对表单元素的支持
下面是所有你可以放进 item-input
中的表单元素:
All text inputs |
Supported types: text, password, email, tel, url, date, number, datetime-local
复制
复制
|
Select |
复制
|
Textarea |
复制
Note that List View element with textarea should have additional "align-top" class on <li>:
复制
|
Resizable Textarea |
Resiable textarea. Just add "resizable" class to textarea and it will resize automatically depending on its content
复制
|
Switch (Checkbox) |
Switch (Checkbox) requires additional wrapper:
复制
|
Slider (Range input) |
Slider (Range input) requires additional wrapper:
复制
|
示例
完整的布局
- <div class="content-block-title">Full Layout</div>
- <div class="list-block">
- <ul>
- <!-- Text inputs -->
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-name"></i></div>
- <div class="item-inner">
- <div class="item-title label">Name</div>
- <div class="item-input">
- <input type="text" placeholder="Your name">
- </div>
- </div>
- </div>
- </li>
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-email"></i></div>
- <div class="item-inner">
- <div class="item-title label">E-mail</div>
- <div class="item-input">
- <input type="email" placeholder="E-mail">
- </div>
- </div>
- </div>
- </li>
- ...
- <!-- Select -->
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-gender"></i></div>
- <div class="item-inner">
- <div class="item-title label">Gender</div>
- <div class="item-input">
- <select>
- <option>Male</option>
- <option>Female</option>
- </select>
- </div>
- </div>
- </div>
- </li>
- <!-- Date -->
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-calendar"></i></div>
- <div class="item-inner">
- <div class="item-title label">Birth date</div>
- <div class="item-input">
- <input type="date" placeholder="Birth day" value="2014-04-30">
- </div>
- </div>
- </div>
- </li>
- <!-- Date time-->
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-calendar"></i></div>
- <div class="item-inner">
- <div class="item-title label">Date time</div>
- <div class="item-input">
- <input type="datetime-local">
- </div>
- </div>
- </div>
- </li>
- <!-- Switch (Checkbox) -->
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-toggle"></i></div>
- <div class="item-inner">
- <div class="item-title label">Switch</div>
- <div class="item-input">
- <label class="label-switch">
- <input type="checkbox">
- <div class="checkbox"></div>
- </label>
- </div>
- </div>
- </div>
- </li>
- <!-- Slider (Range input) -->
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-settings"></i></div>
- <div class="item-inner">
- <div class="item-title label">Slider</div>
- <div class="item-input">
- <div class="range-slider">
- <input type="range" min="0" max="100" value="50" step="0.1">
- </div>
- </div>
- </div>
- </div>
- </li>
- <!-- Textarea -->
- <li class="align-top">
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-comment"></i></div>
- <div class="item-inner">
- <div class="item-title label">Textarea</div>
- <div class="item-input">
- <textarea></textarea>
- </div>
- </div>
- </div>
- </li>
- </ul>
- </div>
实例预览
图标和输入框
因为 item-title
是可选元素,所以可以不写:
- <div class="content-block-title">Icons and inputs</div>
- <div class="list-block">
- <ul>
- <!-- Text inputs -->
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-name"></i></div>
- <div class="item-inner">
- <div class="item-input">
- <input type="text" placeholder="Your name">
- </div>
- </div>
- </div>
- </li>
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-email"></i></div>
- <div class="item-inner">
- <div class="item-input">
- <input type="email" placeholder="E-mail">
- </div>
- </div>
- </div>
- </li>
- <!-- Select -->
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-gender"></i></div>
- <div class="item-inner">
- <div class="item-input">
- <select>
- <option>Male</option>
- <option>Female</option>
- </select>
- </div>
- </div>
- </div>
- </li>
- <!-- Date -->
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-calendar"></i></div>
- <div class="item-inner">
- <div class="item-input">
- <input type="date" placeholder="Birth day" value="2014-04-30">
- </div>
- </div>
- </div>
- </li>
- <!-- Switch (Checkbox) -->
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-toggle"></i></div>
- <div class="item-inner">
- <div class="item-input">
- <label class="label-switch">
- <input type="checkbox">
- <div class="checkbox"></div>
- </label>
- </div>
- </div>
- </div>
- </li>
- <!-- Slider (Range input) -->
- <li>
- <div class="item-content">
- <div class="item-media"><i class="icon icon-form-settings"></i></div>
- <div class="item-inner">
- <div class="item-input">
- <div class="range-slider">
- <input type="range" min="0" max="100" value="50" step="0.1">
- </div>
- </div>
- </div>
- </div>
- </li>
- </ul>
- </div>
实例预览
label和输入框
因为 item-media
是可选元素,所以可以不写:
- <div class="content-block-title">Labels and inputs</div>
- <div class="list-block">
- <ul>
- <!-- Text inputs -->
- <li>
- <div class="item-content">
- <div class="item-inner">
- <div class="item-title label">Name</div>
- <div class="item-input">
- <input type="text" placeholder="Your name">
- </div>
- </div>
- </div>
- </li>
- <li>
- <div class="item-content">
- <div class="item-inner">
- <div class="item-title label">E-mail</div>
- <div class="item-input">
- <input type="email" placeholder="E-mail">
- </div>
- </div>
- </div>
- </li>
- <!-- Select -->
- <li>
- <div class="item-content">
- <div class="item-inner">
- <div class="item-title label">Gender</div>
- <div class="item-input">
- <select>
- <option>Male</option>
- <option>Female</option>
- </select>
- </div>
- </div>
- </div>
- </li>
- <!-- Date -->
- <li>
- <div class="item-content">
- <div class="item-inner">
- <div class="item-title label">Birth date</div>
- <div class="item-input">
- <input type="date" placeholder="Birth day" value="2014-04-30">
- </div>
- </div>
- </div>
- </li>
- <!-- Switch (Checkbox) -->
- <li>
- <div class="item-content">
- <div class="item-inner">
- <div class="item-title label">Switch</div>
- <div class="item-input">
- <label class="label-switch">
- <input type="checkbox">
- <div class="checkbox"></div>
- </label>
- </div>
- </div>
- </div>
- </li>
- <!-- Slider (Range input) -->
- <li>
- <div class="item-content">
- <div class="item-inner">
- <div class="item-title label">Slider</div>
- <div class="item-input">
- <div class="range-slider">
- <input type="range" min="0" max="100" value="50" step="0.1">
- </div>
- </div>
- </div>
- </div>
- </li>
- </ul>
- </div>
实例预览
只有输入框
- <div class="content-block-title">Just inputs</div>
- <div class="list-block">
- <ul>
- <li>
- <div class="item-content">
- <div class="item-inner">
- <div class="item-input">
- <input type="text" placeholder="Your name">
- </div>
- </div>
- </div>
- </li>
- <li>
- <div class="item-content">
- <div class="item-inner">
- <div class="item-input">
- <input type="email" placeholder="E-mail">
- </div>
- </div>
- </div>
- </li>
- <li>
- <div class="item-content">
- <div class="item-inner">
- <div class="item-input">
- <select>
- <option>Male</option>
- <option>Female</option>
- </select>
- </div>
- </div>
- </div>
- </li>
- <li>
- <div class="item-content">
- <div class="item-inner">
- <div class="item-input">
- <input type="date" placeholder="Birth day" value="2014-04-30">
- </div>
- </div>
- </div>
- </li>
- </ul>
- </div>
实例预览
Inset
因为表单也是 列表布局 的一种, 所以可以变成 inset:
- <div class="content-block-title">Just inputs</div>
- <!-- "inset" class on list-block -->
- <div class="list-block inset">
- ...
- </div>
复制
实例预览