使用表单布局创建响应式的精美的表单布局。表单布局就是 列表,但是会有一些拓展。
简单的表单布局
让我们看一种最简单的表单布局:
- <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>
复制
相关推荐
Framework7是一款强大的HTML5移动应用框架,专为构建原生感觉的iOS和Android应用而设计。这个1.6.4版本的压缩包包含了用于开发移动端Web应用的所有必要资源和文件,使得开发者能够利用HTML、CSS和JavaScript技术创建...
这个"framework7-recipes"项目是一个丰富的资源库,提供了多种基于Framework7的概念证明模板、布局和脚本,旨在帮助开发者更好地理解和利用Framework7进行应用开发。 一、Framework7基础 Framework7 是由Ilya ...
React Native是由Facebook开发的开源框架,它允许开发者用JavaScript和React语法构建原生的iOS和Android应用。通过React的声明式编程模型和组件化思想,开发者可以实现高效且可复用的代码,大大简化了移动应用的开发...
Framework7则是一款流行的移动应用UI框架,它提供了一套完整的iOS和Android风格的组件,包括导航栏、侧滑菜单、表单元素等,使得开发者可以快速构建出原生感观的应用界面。当Aurelia与Framework7结合时,开发者可以...
Framework7 是一款强大的HTML5移动应用框架,模仿原生iOS和Android的界面风格,提供了丰富的组件和API,使得开发者能够用HTML、CSS和JavaScript构建出与原生应用体验相近的Web应用。它特别适合构建单页应用(SPA)和...
4. **Quasar Framework**:除了提供UI组件,还支持PWA(渐进式Web应用)和多平台应用开发,如iOS、Android原生应用。 四、H5页面构建流程 1. **需求分析**:明确页面目标、交互设计和视觉风格。 2. **原型设计**:...
在本项目“vue-todolist-f7”中,开发者使用了Vue.js来构建一个待办事项清单应用,结合了Framework7和Webpack,旨在提供一个移动端应用的实践模板。 Framework7 是一个开源的HTML5移动应用框架,它模仿了iOS和...
4. Android和iOS:在移动应用开发中,Android使用XML布局定义控件,如EditText(文本输入)、Button(按钮),iOS则使用Storyboard或XIB文件。 5. JavaScript和HTML5:在前端开发中,HTML5引入了新的标签,如(日期...