移动端安卓和IOS开发框架Framework7教程-表单布局
使用表单布局创建响应式的精美的表单布局。表单布局就是 列表,但是会有一些拓展。
简单的表单布局
让我们看一种最简单的表单布局:
- <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>
复制
?
原文:http://zaixianshouce.iteye.com/blog/2305406