Web表单美化CSS框架Topcoat

简介:
Topcoat同样是一款简洁的Web表单构建应用,和 Semantic UIBootMetro等CSS框架不同的是,Topcoat主要用于构建美化的Web表单,包括提交按钮、输入框、单选框/复选框、滑动杆、搜索框等表单元素。

Topcoat的特点

  • 小巧、简单、易用

  • 专注表单元素设计,每一个表单元素都非常精美

  • 支持移动化,让这些表单元素在移动端同样有着不错的效果

Topcoat相关组件实例

按钮

以蓝色按钮为例,相关代码如下:

HTML

 
 
  1. <button class="topcoat-button--large--cta" >Button</button> 
  2. <button class="topcoat-button--large--cta" disabled>Button</button> 
  3.  
  4. CSS 
  5.  
  6. .topcoat-button--large--cta { 
  7.   font-size: 0.875rem; 
  8.   font-weight: 600
  9.   line-height: 1.688rem; 
  10.   padding: 0 0.875rem; 
  11.  
  12. input[type="checkbox"] { 
  13.   position: absolute; 
  14.   overflow: hidden; 
  15.   padding: 0
  16.   border: 0
  17.   opacity: 0.001
  18.   z-index: 1
  19.   vertical-align: top; 
  20.   outline: none; 
  21.  
  22. .checkbox { 
  23.   -moz-box-sizing: border-box; 
  24.   box-sizing: border-box; 
  25.   background-clip: padding-box; 
  26.   position: relative; 
  27.   display: inline-block; 
  28.   vertical-align: top; 
  29.   cursor: default
  30.   -webkit-user-select: none; 
  31.   -moz-user-select: none; 
  32.   -ms-user-select: none; 
  33.   user-select: none; 
  34.  
  35. .checkbox__label { 
  36.   position: relative; 
  37.   display: inline-block; 
  38.   vertical-align: top; 
  39.   cursor: default
  40.   -webkit-user-select: none; 
  41.   -moz-user-select: none; 
  42.   -ms-user-select: none; 
  43.   user-select: none; 
  44.  
  45. .checkbox--disabled { 
  46.   opacity: 0.3
  47.   cursor: default
  48.   pointer-events: none; 
  49.  
  50. .checkbox:before, 
  51. .checkbox:after { 
  52.   content: ''
  53.   position: absolute; 
  54.  
  55. .checkbox:before { 
  56.   -moz-box-sizing: border-box; 
  57.   box-sizing: border-box; 
  58.   background-clip: padding-box; 
  59.  
  60. input[type="checkbox"] { 
  61.   position: absolute; 
  62.   overflow: hidden; 
  63.   padding: 0
  64.   border: 0
  65.   opacity: 0.001
  66.   z-index: 1
  67.   vertical-align: top; 
  68.   outline: none; 
  69.  
  70. .checkbox, 
  71. .topcoat-checkbox__checkmark { 
  72.   -moz-box-sizing: border-box; 
  73.   box-sizing: border-box; 
  74.   background-clip: padding-box; 
  75.   position: relative; 
  76.   display: inline-block; 
  77.   vertical-align: top; 
  78.   cursor: default
  79.   -webkit-user-select: none; 
  80.   -moz-user-select: none; 
  81.   -ms-user-select: none; 
  82.   user-select: none; 
  83.  
  84. .checkbox__label, 
  85. .topcoat-checkbox { 
  86.   position: relative; 
  87.   display: inline-block; 
  88.   vertical-align: top; 
  89.   cursor: default
  90.   -webkit-user-select: none; 
  91.   -moz-user-select: none; 
  92.   -ms-user-select: none; 
  93.   user-select: none; 
  94.  
  95. .checkbox--disabled, 
  96. input[type="checkbox"]:disabled + .topcoat-checkbox__checkmark { 
  97.   opacity: 0.3
  98.   cursor: default
  99.   pointer-events: none; 
  100.  
  101. .checkbox:before, 
  102. .checkbox:after, 
  103. .topcoat-checkbox__checkmark:before, 
  104. .topcoat-checkbox__checkmark:after { 
  105.   content: ''
  106.   position: absolute; 
  107.  
  108. .checkbox:before, 
  109. .topcoat-checkbox__checkmark:before { 
  110.   -moz-box-sizing: border-box; 
  111.   box-sizing: border-box; 
  112.   background-clip: padding-box; 

单选框/复选框

以单选框为例,相关代码如下:

 
 
  1. HTML 
  2.  
  3. <!-- NO LABEL --> 
  4. <label class="topcoat-radio-button"
  5.   <input type="radio" name="topcoat"
  6.   <div class="topcoat-radio-button__checkmark"></div> 
  7. </label> 
  8. <br> 
  9. <br> 
  10. <!-- LEFT LABEL --> 
  11. <label class="topcoat-radio-button"
  12.   Left label 
  13.   <input type="radio" name="topcoat"
  14.   <div class="topcoat-radio-button__checkmark"></div> 
  15. </label> 
  16. <br> 
  17. <br> 
  18. <!-- RIGHT LABEL --> 
  19. <label class="topcoat-radio-button"
  20.   <input type="radio" name="topcoat"
  21.   <div class="topcoat-radio-button__checkmark"></div> 
  22.   Right label 
  23. </label> 
  24. <br> 
  25. <br> 
  26. <!-- DISABLED --> 
  27. <label class="topcoat-radio-button"
  28.   <input type="radio" name="topcoat" Disabled> 
  29.   <div class="topcoat-radio-button__checkmark"></div> 
  30.   Disabled 
  31. </label> 
  32.  
  33. CSS: 
  34.  
  35. input[type="radio"] { 
  36.   height1.063rem; 
  37.   width1.063rem; 
  38.   margin-top0
  39.   margin-right-1.063rem; 
  40.   margin-bottom-1.063rem; 
  41.   margin-left0
  42.  
  43. input[type="radio"]:checked + .topcoat-radio-button__checkmark:after { 
  44.   opacity: 1
  45.  
  46. .topcoat-radio-button { 
  47.   color#c6c8c8
  48.   line-height1.063rem; 
  49.  
  50. .topcoat-radio-button__checkmark:before { 
  51.   width1.063rem; 
  52.   height1.063rem; 
  53.   background#595b5b
  54.   border1px solid #333434
  55.   box-shadow: inset 0 1px #737373
  56.  
  57. .topcoat-radio-button__checkmark { 
  58.   positionrelative
  59.   width1.063rem; 
  60.   height1.063rem; 
  61.  
  62. .topcoat-radio-button__checkmark:after { 
  63.   opacity: 0
  64.   width0.313rem; 
  65.   height0.313rem; 
  66.   background#c6c8c8
  67.   border1px solid rgba(0,0,0,0.05); 
  68.   box-shadow: 0 1px rgba(255,255,255,0.1); 
  69.   -webkit-transform: none
  70.   -ms-transform: none
  71.   transform: none
  72.   top: 0.313rem; 
  73.   left: 0.313rem; 
  74.  
  75. input[type="radio"]:focus + .topcoat-radio-button__checkmark:before { 
  76.   border1px solid #0036ff
  77.   box-shadow: inset 0 1px rgba(255,255,255,0.36), 0 0 0 2px #6fb5f1
  78.  
  79. input[type="radio"]:active + .topcoat-radio-button__checkmark:before { 
  80.   border1px solid #333434
  81.   background-color#3f4041
  82.   box-shadow: inset 0 1px rgba(0,0,0,0.05); 
  83.  
  84. input[type="radio"]:disabled:active + .topcoat-radio-button__checkmark:before { 
  85.   border1px solid #333434
  86.   background#595b5b
  87.   box-shadow: inset 0 1px #737373
  88.  
  89. .range { 
  90.   padding0
  91.   margin0
  92.   font: inherit; 
  93.   color: inherit; 
  94.   backgroundtransparent
  95.   bordernone
  96.   -moz-box-sizing: border-box; 
  97.   box-sizing: border-box; 
  98.   background-clip: padding-box; 
  99.   vertical-aligntop
  100.   outlinenone
  101.   -webkit-appearance: none
  102.  
  103. .range__thumb { 
  104.   cursorpointer
  105.  
  106. .range__thumb--webkit { 
  107.   cursorpointer
  108.   -webkit-appearance: none
  109.  
  110. .range:disabled { 
  111.   opacity: 0.3
  112.   cursordefault
  113.   pointer-events: none
  114.  
  115. .range, 
  116. .topcoat-range { 
  117.   padding0
  118.   margin0
  119.   font: inherit; 
  120.   color: inherit; 
  121.   backgroundtransparent
  122.   bordernone
  123.   -moz-box-sizing: border-box; 
  124.   box-sizing: border-box; 
  125.   background-clip: padding-box; 
  126.   vertical-aligntop
  127.   outlinenone
  128.   -webkit-appearance: none
  129.  
  130. .range__thumb, 
  131. .topcoat-range::-moz-range-thumb { 
  132.   cursorpointer
  133.  
  134. .range__thumb--webkit, 
  135. .topcoat-range::-webkit-slider-thumb { 
  136.   cursorpointer
  137.   -webkit-appearance: none
  138.  
  139. .range:disabled, 
  140. .topcoat-range:disabled { 
  141.   opacity: 0.3
  142.   cursordefault
  143.   pointer-events: none

更多关于Topcoat的组件,大家可以前往其官方网站进行学习。


作者:佚名

来源:51CTO

相关文章
|
6天前
|
开发框架 JavaScript 前端开发
如何选择合适的Web开发框架?
【9月更文挑战第1天】如何选择合适的Web开发框架?
22 1
|
7天前
|
Java Spring 数据库
怎样动动手指就能实现数据操作?Spring Data JPA背后的魔法揭秘
【8月更文挑战第31天】在Java开发中,数据库交互至关重要。传统的JDBC操作繁琐且难维护,而Spring Data JPA作为集成JPA的数据访问层解决方案,提供了CRUD等通用操作接口,显著减少代码量。通过继承`JpaRepository`,开发者能轻松实现数据的增删改查,甚至复杂查询和分页也不再困难。本文将通过示例详细介绍如何利用Spring Data JPA简化数据访问层的开发,提升代码质量和可维护性。
14 0
|
7天前
|
数据库 开发者 Java
颠覆传统开发:Hibernate与Spring Boot的集成,让你的开发效率飞跃式提升!
【8月更文挑战第31天】在 Java 开发中,Spring Boot 和 Hibernate 已成为许多开发者的首选技术栈。Spring Boot 简化了配置和部署过程,而 Hibernate 则是一个强大的 ORM 框架,用于管理数据库交互。将两者结合使用,可以极大提升开发效率并构建高性能的现代 Java 应用。本文将通过代码示例展示如何在 Spring Boot 项目中集成 Hibernate,并实现基本的数据库操作,包括添加依赖、配置数据源、创建实体类和仓库接口,以及在服务层和控制器中处理 HTTP 请求。这种组合不仅简化了配置,还提供了一套强大的工具来快速开发现代 Java 应用程序。
16 0
|
7天前
|
数据库 开发者 Java
Hibernate映射注解的魔力:实体类配置的革命,让你的代码量瞬间蒸发!
【8月更文挑战第31天】Hibernate 是一款出色的对象关系映射框架,简化了 Java 应用与数据库的交互。其映射注解让实体类配置变得直观简洁。本文深入剖析核心概念与使用技巧,通过示例展示如何简化配置。
13 0
|
7天前
|
数据库 开发者 Java
数据战争:Hibernate的乐观与悲观锁之争,谁将主宰并发控制的王座?
【8月更文挑战第31天】在软件开发中,数据一致性至关重要,尤其是在多用户并发访问环境下。Hibernate 作为 Java 社区常用的 ORM 框架,提供了乐观锁和悲观锁机制来处理并发问题。乐观锁假设数据不易冲突,通过版本号字段 (`@Version`) 实现;悲观锁则假定数据易冲突,在读取时即加锁。选择哪种锁取决于具体场景:乐观锁适合读多写少的情况,减少锁开销;悲观锁适合写操作频繁的场景,避免数据冲突。正确应用这些机制可提升应用程序的健壮性和效率。
17 0
|
7天前
|
Java Maven Android开发
解锁Web开发新技能:从零开始的Struts 2之旅——让你的Java编程之路更加宽广,首个应用实例带你飞!
【8月更文挑战第31天】对于初学者,掌握 Struts 2 框架不仅能提升 Web 开发能力,还能深入了解 MVC 架构。Struts 2 是一个基于 Servlet 的 Java 框架,提供表单验证、文件上传、国际化等功能,便于快速构建易维护的 Web 应用。本文通过示例演示如何从零开始搭建环境并创建一个简单的 Struts 2 项目,包括配置 `struts.xml`、编写 Action 类及视图文件,并配置 web.xml。通过这些步骤,你将学会基本的开发流程,为进一步学习高级功能打下基础。
18 0
|
7天前
|
Java 开发者 数据安全/隐私保护
Struts 2 拦截器机制震撼登场!紧跟技术热点,解锁高效开发密码,引发开发者情感共鸣
【8月更文挑战第31天】在 Java Web 开发中,Struts 2 框架凭借其强大功能和灵活性深受开发者喜爱。其中,拦截器机制是 Struts 2 的重要特性之一,它允许我们在请求处理过程中执行自定义操作,如日志记录、权限验证和数据转换等。拦截器通过实现 `com.opensymphony.xwork2.interceptor.Interceptor` 接口并在 `struts.xml` 中配置即可使用。合理利用拦截器可实现代码解耦与复用,提升开发效率和系统可维护性。框架还提供了如 `params` 和 `servletConfig` 等内置拦截器供开发者按需选用。
13 0
|
7天前
|
开发者 Java 前端开发
Struts 2验证框架:如何让数据校验成为Web开发的隐形守护者?揭秘前后端一致性的秘诀
【8月更文挑战第31天】在现代Web开发中,数据验证对确保应用健壮性和良好用户体验至关重要。随着前后端分离架构的普及,保证数据校验一致性尤为关键。Struts 2 验证框架基于 JavaBean 验证 API(JSR 303/JSR 380),允许开发者通过注解或 XML 配置轻松定义验证规则,确保输入数据在执行业务逻辑前已通过验证。此外,Struts 2 支持与前端 JavaScript 验证相结合,确保前后端数据校验一致,提升用户体验。通过注解、XML 配置和资源文件,开发者可以轻松定义和调整验证规则,实现前后端一致的数据校验,提高应用健壮性。
16 0
|
7天前
|
缓存 中间件 PHP
Laravel 框架:优雅 PHP Web 开发的典范
【8月更文挑战第31天】
30 0
|
7天前
|
前端开发 开发者 安全
JSF表单处理大揭秘:数据绑定与事件处理,如何让Web应用更加智能?
【8月更文挑战第31天】在现代Web应用开发中,JSF(JavaServer Faces)框架因强大的表单处理能力而广泛应用。其数据绑定机制可实现表单控件与后端模型的双向传输,降低前后端耦合度,提高代码维护性和类型安全性。事件处理机制则支持丰富的内置与自定义事件,进一步增强应用灵活性。本文通过示例代码展示这些特性,帮助开发者更好地利用JSF构建高效、灵活的Web应用。然而,JSF也存在组件库较小和学习成本较高等局限,需根据具体需求权衡使用。
18 0
下一篇
DDNS