精美的HTML5/CSS3表单 带小图标
今天我们要来分享一款非常精美的HTML5/CSS3表单,准备地说,这是一款经过美化的input输入表单,每一个输入表单都可以定义其两侧的小图标,非常华丽。另外,这款表单应用还采用了3种不同的风格主题,你可以在演示页的菜单栏中选择一种样式。需要高版本的浏览器才能支持。
![]()
你也可以在这里在线演示
下面我们来简单分析一下这款表单的源代码,源代码由HTML代码、CSS代码及Javascript代码组成。一共3组样式,我们只对其中一组作解说。
HTML代码:
<ul data-for="prefix">
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li> <li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li> <li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li> <li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
<li> <input type="text" placeholder="Type here..." /> </li>
</ul>
很简单,用一组input实现基本的输入表单。这里利用了HTML5的placeholder属性实现输入框空白时默认的提示文字。
接下来是CSS代码,将渲染这些输入表单的样式。
CSS代码:
.postfix {
vertical-align: top;
display: inline-block;
width: 20px;
height: 20px;
padding: 8px 10px;
background: #f2f2f2;
border: 1px solid #cccdcf;
border-left:;
border-top-right-radius: 2px;
border-bottom-right-radius: 2px;
-moz-border-radius-topright: 2px;
-moz-border-radius-bottomright: 2px;
-webkit-border-top-right-radius: 2px;
-webkit-border-bottom-right-radius: 2px;
}
.prefix,
.postfix {
font-family: FontAwesome;
line-height: 1.5em;
font-size: 16px;
color: #737373;
}
其中表单前面的小图标是这样实现的:
.prefix.orange,
.postfix.orange {
background: #ffb700;
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmYjcwMCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZjhjMDAiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top, #ffb700 0%, #ff8c00 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffb700), color-stop(100%,#ff8c00));
background: -webkit-linear-gradient(top, #ffb700 0%,#ff8c00 100%);
background: -o-linear-gradient(top, #ffb700 0%,#ff8c00 100%);
background: -ms-linear-gradient(top, #ffb700 0%,#ff8c00 100%);
background: linear-gradient(to bottom, #ffb700 0%,#ff8c00 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffb700', endColorstr='#ff8c00',GradientType=0 );
border: 1px solid #e59500;
color: #fff;
}
data:image是CSS3专有的属性,可以用编码的二进制流来生成图片。
Javascript代码:
$(document).ready(function() {
/* Force placeholder support */
if(!Modernizr.input.placeholder){
$("input").each( function(){
thisPlaceholder = $(this).attr("placeholder");
if(thisPlaceholder!=""){
$(this).val(thisPlaceholder);
$(this).focus(function(){ if($(this).val() == thisPlaceholder) $(this).val(""); });
$(this).blur(function(){ if($(this).val()=="") $(this).val(thisPlaceholder); });
}
});
}
/* Prefix */
$('.ppfix.pre').each(function() {
var className, preElem;
className = $(this).attr('class').replace('pre', '').replace('ppfix', '').trim();
preElem = '<span> </span>';
$(this).before(preElem);
});
/* Postfix */
$('.ppfix.post').each(function() {
var className, preElem;
className = $(this).attr('class').replace('post', '').replace('ppfix', '').trim();
preElem = '<span> </span>';
$(this).after(preElem);
});
});
以上代码只是一些最核心的代码,全部代码大家可以下载源码来研究。源码下载>>
精美的HTML5/CSS3表单 带小图标的更多相关文章
- 12种炫酷HTML5 SVG和CSS3表单浮动标签特效
这是一组效果非常炫酷的HTML5 SVG和CSS3表单浮动标签特效.这组浮动标签特效共12种效果,使用SVG和CSS3来制作完成.这些浮动标签效果部分在元素的伪元素上使用CSS transitions ...
- 8款最新CSS3表单 环形表单很酷
当我们在网站上注册登录还是提交评论,都需要用到表单,今天我们来分享8款最新CSS3表单,有几个效果很酷很特别,有些也非常实用,一起来看看. 1.CSS3环形特色表单 转圈切换表单焦点 这款CSS3表单 ...
- JQ表单选择器和CSS3表单选择器
JQ表单选择器和CSS3表单选择器 JQ表单选择器 为了使用户能够更加灵活地操作表单,jQuery中加入了表单选择器,利用这个选择器能极其方便的获取到表单的某个或者某类型的元素.表单选择器的介绍如图: ...
- hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images
hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images, 本例子主要是使用HTML5 的File API,建立一個可存取到该file的url, 一个空的img标签,ID为img0,把 ...
- bootstrap表单带验证
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
- HTML5 智能表单
HTML5 智能表单 1.表单新增属性 ☀ autofocus 属性 <input type="text" autofocus/>设置 autofocus 属性,使文 ...
- HTML5智能表单
HTML5 智能表单 1.表单新增属性 ☀ autofocus 属性 <input type="text" autofocus/>设置 autofocus 属性,使文 ...
- HTML5新表单新功能解析
HTML5新增了很多属性功能.但是有兼容性问题,因为这些表单功能新增的.我这里做了一个简单的练习,方便参考.如果完全兼容的话,那我们写表单的时候就省了很多代码以及各种判断. <!DOCTYPE ...
- HTML5的表单input元素的新属性
知识点 <HTML5的表单input元素的新属性>,留待学习分享... <!-- HTML5的表单input元素的新属性 Autocomplete:自动完成功能 Autofocus: ...
随机推荐
- CR, LF, CR/LF 回车 换行
[时间:2016-07] [状态:Open] 本文主要介绍"回车"(Carriage Return)和"换行"(Line Feed)这两个概念的来历和区别. C ...
- Asp.net 从客户端中检测到有潜在危险的Request.Form值
解决方法: 在Web.config文件里找到<httpRuntime>节点,然后修改requestValidationMode="2.0" 修改结果如下: <sy ...
- 【Java】使用pinyin4j获取汉字的全拼或首字母
汉字转拼音的工具类,常用于做汉字拼音的模糊查询. https://www.cnblogs.com/htyj/p/7891918.html
- C#反序列化:xml转化为实体
public static T DeserialXmlToModel<T>(string xmlDocument) { T cmdObj = default(T); XmlSerializ ...
- Rsync命令参数详解
在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来.rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进 ...
- Spark硬件配置推荐
1.存储系统 如果可以的话,把Spark的hadoop的节点安装在一起,最容易的方式是用standalone的模式安装,用mapred.child.java.opts设置每个任务的内存,用mapred ...
- Redis 实现消息队列 MQ
Redis 2.4版本之后就内置队列的功能了,如果是日常比较简单的队列应用,可以选择Redis , 效率还很高的!! Redis 还能实现 有序 和 无序 两种队列(只讨论生产者和消费者这种模式的队列 ...
- mpvue上手教程
mpvue官网上面已经有了详细的步骤,把每个步骤截图及输出结果做个笔记,供各位看官参考参考~ 1.全局安装 vue-cli $ npm install --global vue-cli 如果你已经设置 ...
- Linux gcc/g++链接编译顺序详解
gcc/g++链接时对库的顺序要求 -Ldir Add directory dir to the list of directories to be searched for -l. -llibrar ...
- ubuntu 安装bazel
https://docs.bazel.build/versions/master/install-ubuntu.html#install-with-installer-ubuntu