手册网
参考手册
在线工具
在线文档
在线代码
素材大全
推荐
导航
在线手册 »
WEB优质项目
开放平台
工具软件
CSS3.0中文手册
jQuery 1.8 参考手册
HTML4参考手册
HTML基础手册
HTML快速参考手册
MySQL5.1中文参考手册
JavaScript参考手册
Delphi6函数大全
Delphi7参考手册
SQL基础教程
jQuery 1.10 中文参考手册
CSS2 参考手册
ASP参考手册
C/C++中文手册
django中文教程
DOS命令大全
jQueryEasyUI1.3中文手册
Hibernate3.2中文参考文档
Html4.01参考手册
JAVA学习笔记
JSP中文教程
Linux参考手册
Lua5参考手册
Oracle参考手册
Phpcmsv9二次开发手册
phpwind二次开发手册
PostgreSQL参考手册
Python2中文手册
Spring2.5中文参考手册
XML参考手册
正则表达式参考手册
jQuery 1.11.3 中文参考手册
ThinkPHP3.2.2完全开发手册
ThinkPHP3.2.3完全开发手册
yii1和php5开发
ThinkPHP5.0完全开发手册
jQuery 3.1 参考手册
Underscore1.8.3 参考手册
Swift3 中文手册
Sass 3.4.21 中文手册
Backbone.js 1.1.2 API中文文档
JSDoc 参考手册
Webpack 2.2 中文文档
JavaScript 全栈教程
Nginx 中文官方手册
CSS4.2.4 参考手册
ThinkPHP5.1完全开发手册.CHM
HTML/CSS »
Html
Bootstrap
HTML5
CSS
CSS3
Foundation
JavaScript »
JavaScript
jQuery
HTML DOM
AngularJS
jQuery UI
jQuery EasyUI
Node.js
JSON
Highcharts
AJAX
React
jQuery插件大全
AlloyUI
Vue.js v2.0 中文
Vuex
vue-router
Underscore.js
Zepto.js
程序设计 »
PHP
Java
JSP
Python
Python3
Django
Linux
Ruby
C
C++
Servlet
Lua
Go
设计模式
正则表达式
ASP
AppML
VBScript
Scala
数据库 »
SQL
MySQL
SQLite
MongoDB
Redis
Memcached
移动端 »
jQuery Mobile
Android
ionic
IOS
Sencha Touch
Clouda+
efe
Frozen UI
Amaze UI
CardKit
App.js
Mobile Angular UI
Kendo UI
PhoneGap
Framework7
Junior
Jingle
mui
SUI Mobile
ReactNative
Weex
APICloud
Wex5
Ratchet
HTML5plus
Plane UI
Swift 教程
XML 教程 »
XML
DTD
XML DOM
XSLT
XPath
XQuery
XLink
XML Schema
XSLFO
SVG
ASP.NET »
ASP.NET
C#
开发工具 »
Eclipse
Git
Firebug
SVN 教程
Chrome 控制台
开源项目 »
Yii中文参考手册
Yii1开发教程
Yii2开发教程
ThinkPHP3.1开发教程
ThinkPHP3.2.3开发教程
地图开发
Wordpress
Laravel中文文档
Web Service »
Web Service 教程
WSDL 教程
SOAP 教程
RDF 教程
RSS 教程
转码工具 »
HTML/JavaScript格式化
CSS 格式化/压缩
JS格式化/加密/压缩
Native互换Unicode大全
日期格式化工具
Markdown转HTML
CSS 整理压缩
JSON 在线解析
短网址生成
代码处理 »
进制互换大全
16进制互换RGB
简体转繁体
汉字转拼音
小写转大写
大写转小写
加密和解密
繁体转简体
实用工具 »
Bootstrap图标定制
CSS 颜色选择器
字数统计
正则表达式测试
htpasswd 生成器
全世界数据库
IP归属地查询
实用计算器
生成二维码
ICO图标制作
CSS3 气泡对话框
CSS & JS Hack 大全
CSS3 背景渐变色生成器
CSS3 阴影边框生成器
CSS3 动画工具
Web 常用字体演示
CSS3 选择器演示
CSS 中文字体 Unicode 编码表
CSS3 GitHub Buttons
CSS Webkit 自定义滚动条样式
在线自动分词
ionic图标
阿里巴巴矢量图标库
IcoMoon 图标库
CSS3 代码生成
CSS3 Flexbox 演示
便民工具 »
快递查询
安全期计算器
周公解梦
笑话大全
常用对照表 »
HTTP Content-type 详细对照表
HTML特殊转义字符对照表
ASCII对照表
HTTP状态码详解
运算符优先级
TCP/UDP常见端口参考
经典小游戏 »
像素小鸟
爱消除
飞更高
俄罗斯方块
台球
贪吃蛇
拼图魔方
坦克大战
解救公主
中国象棋
压扁小鸟
打飞字
Flappy小鸟
登陆
小提示
Ctrl+/
代码提示(需
IE11
)
F11
键放大
ESC
键缩小
PgUp
上页
PgDn
下页
推荐代码
1
jQuery owlcarousel 旋转木马
2
jQuery仿蜜淘在线客服
3
jQuery-插件-图片左右无缝滚动
新7款HTML5/CSS3特效之浏览器的小泥块
新7款HTML5/CSS3特效之图片扇形展开
底部工具条,支持动画关闭,Li列表滚动,jQuery版
jquery相关的动画操作小例子
超酷jQuery菜单代码
CSS3圆角+投影效果带背景色的表格
鼠标移到图片上,图片开始疯狂抖动
8种超炫的html5 Loading加载图标动画
点击后文字会炸开的HTML5特效 图片爆炸效果
流动的网页背景代码,是不是很漂亮?
jQuery鼠标悬浮遮罩显示分享按钮
CSS3鼠标悬停360度旋转效果
运行代码
缩小
引入JS
jQuery
»
3.0.0
2.2.0
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.3
2.0.2
2.0.1
2.0.0
1.12.0
1.11.3
1.11.2
1.11.1
1.11.0
1.10.2
1.10.1
1.10.0
1.9.1
1.9.0
1.8.3
1.8.2
1.8.1
1.8.0
1.7.2
1.7.1
1.7
1.6.4
1.6.2
1.6.1
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
prototype
»
1.7.3
1.7.2
1.7.1.0
1.7.0.0
Angular
»
2.0.0-beta.0
2.0.0-alpha.55
1.5.0-rc.0
1.4.8
1.4.0
1.3.20
1.2.29
1.1.5
1.0.8
Underscore
»
1.8.3
1.7.0
1.6.0
1.5.2
1.4.4
1.3.3
1.2.4
1.1.7
Dojo
»
1.10.4
1.9.7
1.8.10
1.7.8
1.6.3
1.5.4
1.4.6
1.3.3
Mootools
»
core1.6.0
core-compat1.6.0
core1.5.2
core-compat1.5.2
core-full-compat-yc1.4.5
core-full-compat1.4.5
core-full-nocompat-yc1.4.5
core-full-nocompat1.4.5
Respond
»
1.4.2
1.4.1
1.4.0
1.3.0
1.2.0
1.1.0
html5shiv
»
3.7.3
3.7.2
3.7.1
3.7.0
3.7
3.6.2
3.6.1
3.6
引入框架
jQueryMobile
»
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
jQueryUI
»
1.11.4
1.11.3
1.11.2
1.11.1
1.11.0
1.10.4
1.10.3
1.10.2
Bootstrap
»
3.3.6
3.3.5
3.3.0
3.2.0
2.3.2
CDN库
CDN公共库
»
BootCDN开源项目CDN服务
引入图片
代码换肤
选择换肤
»
汉王
HTML代码
复制
格式化
注释
注释
清空
放大
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>JS模拟iphone密码输入框效果</title> <style> html, body { margin: 0; padding: 0; } h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, cite, code, img, small, strike, sub, sup, tt, dd, dl, dt, li, ol, ul, fieldset, form, label, legend, button, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; font-weight: normal; font-style: normal; font-size: 100%; line-height: 1; font-family: inherit; text-align: left; } table { border-collapse: collapse; border-spacing: 0; } ol, ul { list-style: none; } body { background: #fff; font-family: Arial, Helvetica, Helvetica Neue, Verdana, sans-serif; font-size: 13px; line-height: 18px; color: #555; } body { -webkit-text-stroke: 1px rgba(255,255,255,.01); } @media only screen and (max-device-width:480px) { body { -webkit-text-stroke:0 black; } } body.ff2 { opacity: .99; } a { color: #2daebf; text-decoration: underline; outline: 0; line-height: inherit; } a:hover { color: #007d9a; } a.muted { color: #777; } a.muted:hover { color: #555; } h1 a, h2 a, h3 a { color: #333; text-decoration: none; font-weight: bold; } h4 a, h5 a { text-decoration: none; line-height: inherit; font-weight: bold; } h3 a:hover { color: auto; } h4 a:hover, h5 a:hover { text-decoration: underline; } p a { line-height: inherit; } .more-link { width: 100%; height: 27px; margin: 0 0 18px; } .more-link a { background: #eee; display: inline; float: left; padding: 4px 15px; text-decoration: none; -webkit-border-radius: 13px; -moz-border-radius: 13px; -webkit-transition: all 0.1s ease-out; } .more-link.green a { background: #f1f6ce; color: #95a105 !important; } .more-link.green a:hover { background: #95a105; } .more-link.blue a { background: #f1fafa; color: #2daebf !important; } .more-link.blue a:hover { background: #73cacf; } .more-link.magenta a { background: #f9e5ee; color: #a9014b !important; } .more-link.magenta a:hover { background: #c9025c; } .more-link.red a { background: #ffebe5; color: #e33100 !important; } .more-link.red a:hover { background: #ff3700; } .more-link.orange a { background: #fff0e6; color: #ff5c00 !important; } .more-link.orange a:hover { background: #ff6908; } .more-link.orangellow a { background: #fff7e7; color: #fc9200 !important; } .more-link.orangellow a:hover { background: #ffb515; } .more-link a:hover { color: #fff !important; } ul.more-link { list-style: none; } ul.more-link li { display: inline; } ul.more-link li.next a { float: right !important; } h1, h2, h3, h4, h5, h6 { color: #333; font-weight: bold; } h1, h2, h3 { letter-spacing: -1px; } h1 { font-size: 45px; line-height: 1; margin: 0 0 9px; } h2 { font-size: 30px; line-height: 1.2; margin: 9px 0; } h3 { font-size: 24px; line-height: 1; margin: 3px 0 9px; } h4 { font-size: 18px; line-height: 1; margin: 0; } h5 { font-size: 14px; line-height: 18px; } h6 { font-size: 13px; line-height: 18px; } p { line-height: 18px; margin: 0 0 18px; } p img { margin: 0; } p.lead { font-size: 18px; line-height: 24px; margin: 0 0 18px; color: #777; } small { font-size: 90%; line-height: inherit; color: #777; font-weight: normal; } blockquote, blockquote p { font-size: 18px; line-height: 24px; color: #555; } blockquote { margin: 0 0 18px; } blockquote.left { float: left; margin-right: 20px; } blockquote.right { float: right; margin-left: 20px; } blockquote p { margin: 0; padding: 0 0 9px; } blockquote h5 { margin: 0; } blockquote cite { display: block; padding: 0 0 9px; font-size: 13px; color: #999; } blockquote cite a, blockquote cite a:visited { color: #555; } blockquote cite a:hover { color: #555; text-decoration: none; } blockquote.black p { color: #333; } blockquote.green p { color: #b8d30b; } blockquote.blue p { color: #007d9a; } blockquote.magenta p { color: #630030; } blockquote.red p { color: #872300; } blockquote.orange p { color: #d45500; } blockquote.yellow p { color: #d17200; } hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 17px 0 18px; height: 0; } body.ie6 hr { margin: 8px 0 9px; } code, pre { font: 12px/18px "Monaco", "Courier New", "Courier", monospace; color: #e33100; } address { color: #333; line-height: 18px; margin: 0 0 18px; } abbr, acronym { text-transform: uppercase; font-size: 90%; color: #222; border-bottom: 1px solid #ddd; cursor: help; } abbr { text-transform: none; } ul, ol { margin-bottom: 18px; } ul { list-style: none outside; } ol, ul.square, ul.circle, ul.disc { margin-left: 24px; } ol { list-style: decimal; margin-left: 30px; } ul.square { list-style: square outside; } ul.circle { list-style: circle outside; } ul.disc { list-style: disc outside; } ul ul, ol ol { margin-left: 30px; margin-top: 4px; margin-bottom: 5px; } li { line-height: 18px; } dt { line-height: 18px; font-weight: bold; color: #333; } dd { margin: 0 0 18px; line-height: 18px; } ul.recent li { margin: 0 0 12px; line-height: 15px; } ul.recent li h5 { font-size: 13px; line-height: 15px; } ul.recent li h5 a { font-weight: bold; } ul.recent li small, ul.recent li small a { color: #999 !important; } ul.recent li small a:hover { color: #555 !important; } ul.recent li small span { padding: 0 3px; color: #ccc; font-size: 100%; } ul.recent.comments li { color: #999; } ul.photos { margin: 9px 0 18px -10px; } ul.photos li { display: inline; } ul.photos a { display: inline; float: left; margin: 0 0 9px 10px; line-height: 1; text-decoration: none; } ul.photos img { display: block; margin: 0 0 5px; padding: 4px; border: 1px solid #ccc; border-color: rgba(0,0,0,.25); -moz-border-radius: 5px; -moz-box-shadow: 0 1px 3px rgba(0,0,0,.15); -webkit-border-radius: 5px; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.15); -webkit-transition: all 0.15s ease-out; } ul.photos a:hover img { border-color: #999; border-color: rgba(201,2,92,.5); -moz-box-shadow: 0 0 5px rgba(201,2,92,.5); -webkit-box-shadow: 0 0 5px rgba(201,2,92,.5); } ul.photos li h5 { font-size: 14px; } ul.photos.small { margin-left: -15px; } ul.photos.small a { margin: 0 0 14px 15px; } ul.photos.medium, ul.photos.large { margin-left: -20px; } ul.photos.medium a, ul.photos.large a { margin: 0 0 18px 20px; } ul.photos.medium img { width: 90px; height: 90px; } ul.photos.large img { width: 162px; height: 162px; } ul.photos.xlarge img { width: 210px; height: 210px; } a.awesome.image img, img.awesome.image, ul.awesome.images img, div.awesome.image { display: inline; position: relative; margin: 0 0 5px; padding: 4px; border: 1px solid #ccc; border-color: rgba(0,0,0,.25); -moz-border-radius: 5px; -moz-box-shadow: 0 1px 3px rgba(0,0,0,.15); -webkit-border-radius: 5px; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.15); -webkit-transition: all 0.15s ease-out; } ul.images.awesome { margin-left: -20px; margin-bottom: 0; padding-top: 9px; margin-top: -9px; } ul.images.awesome li { float: left; margin: 0 0 0 20px; position: relative; } ul.images.awesome img { height: auto; margin-bottom: 9px; background: #fff; } ul.images.awesome a { margin: 0; float: none; height: auto; } ul.images.awesome a:hover img { border-color: rgba(0,182,222,.5); -moz-box-shadow: 0 0 9px rgba(0,182,222,.5); -webkit-box-shadow: 0 0 9px rgba(0,182,222,.5); } ul.images.awesome a h4 { color: #007d9a; -webkit-transition: all 0.15s ease-out; } ul.images.awesome a:hover h4 { color: #2daebf; } ul.images.awesome a.button { float: none; margin: 0 5px 0 0; display: inline-block; } ul.images.awesome p { margin-bottom: 9px; } ul.images.awesome.micro li { width: 100px; overflow: hidden;} ul.images.awesome.micro li img { width: 90px; } ul.images.awesome.mini li { width: 160px; overflow: hidden;} ul.images.awesome.mini li img { width: 150px; } ul.images.awesome.regular li { width: 220px; overflow: hidden;} ul.images.awesome.regular li img { width: 210px; } ul.images.awesome.grande li { width: 340px; overflow: hidden;} ul.images.awesome.grande li img { width: 330px; } ul.images.awesome li ul { margin: 0; } ul.images.awesome li li { width: auto; float: none; height: auto; margin: 0; display: block; } ul.images.awesome li li a { line-height: 20px; } a.image.awesome img:hover { border-color: rgba(0,182,222,.5); -moz-box-shadow: 0 0 9px rgba(0,182,222,.5); -webkit-box-shadow: 0 0 9px rgba(0,182,222,.5); } ul.tab-nav { height: 30px; border-bottom: 1px solid #ddd; } ul.tab-nav li { display: inline; } ul.tab-nav a { display: inline; float: left; margin-top: 2px; margin-right: 1px; padding: 5px 11px; font-size: 12px; font-weight: bold; color: #555; background: #eee; -moz-border-radius: 3px 3px 0 0; -webkit-border-top-left-radius: 3px; -webkit-border-top-right-radius: 3px; } ul.tab-nav li.current a { background: #fff; margin-top: 0; padding: 6px 12px; color: #333; border: 1px solid #ccc; border-bottom: 0; } div.simple-sub-nav ul { float: left; width: 100%; border-top: 2px solid #eee; padding-bottom: 30px; margin-top: -33px; } div.simple-sub-nav li { float: left; font-size: 17px; font-weight: bold; border-top: 5px solid #fff; padding: 5px 18px 5px 2px; margin-right: 5px; } div.simple-sub-nav li a { text-decoration: none; color: #868686; } div.simple-sub-nav li a:hover { color: #a9014b; } div.simple-sub-nav li.current { border-top: 5px solid #a9014b; } div.simple-sub-nav li.current a { color: #3b3b3b; } ol.code { background: #333; border: 0; margin: 0 0 18px; padding: 18px; list-style: none; } ol.code li { color: #fff; margin: 0; line-height: 18px; padding: 0; font-family: "Consolas", "Courier New", Monaco, Courier, monospace; } ol.code li code { font-family: "Consolas", "Courier New", Monaco, Courier, monospace; font-size: 12px; line-height: inherit; color: inherit; } ol.code .indent-1 { padding-left: 2em; } ol.code .indent-2 { padding-left: 4em; } ol.code .indent-3 { padding-left: 6em; } ol.code li.selector { color: #39c; } ol.code li.property { color: #f63; padding: 0 0 0 2em; } ol.code li.property span.value, ol.code .class { color: #9c3; } ol.code li.punctuate, ol.code li.selector span.punctuate, ol.code li.property span.punctuate { color: #999; } a.awesome.photo img, img.awesome.photo { display: inline; position: relative; margin: 0 0 5px; padding: 4px; border: 1px solid #ccc; border-color: rgba(0,0,0,.25); -moz-border-radius: 5px; -moz-box-shadow: 0 1px 3px rgba(0,0,0,.15); -webkit-border-radius: 5px; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.15); -webkit-transition: all 0.15s ease-out; } ul.photos.awesome { margin-left: -20px; margin-bottom: 0; padding-top: 9px; margin-top: -9px; } ul.photos.awesome li { float: left; margin: 0 0 0 20px; position: relative; } ul.photos.awesome img { height: auto; margin-bottom: 9px; background: #fff; } ul.photos.awesome a { margin: 0; float: none; height: auto; } ul.photos.awesome a:hover img { border-color: rgba(0,182,222,.5); -moz-box-shadow: 0 0 9px rgba(0,182,222,.5); -webkit-box-shadow: 0 0 9px rgba(0,182,222,.5); } ul.photos.awesome a h4 { color: #007d9a; -webkit-transition: all 0.15s ease-out; } ul.photos.awesome a:hover h4 { color: #2daebf; } ul.photos.awesome a.button { float: none; margin: 0 5px 0 0; display: inline-block; } ul.photos.awesome p { margin-bottom: 9px; } ul.photos.awesome.micro li { width: 100px; overflow: hidden;} ul.photos.awesome.micro li img { width: 90px; } ul.photos.awesome.mini li { width: 160px; overflow: hidden;} ul.photos.awesome.mini li img { width: 150px; } ul.photos.awesome.regular li { width: 220px; overflow: hidden;} ul.photos.awesome.regular li img { width: 210px; } ul.photos.awesome.grande li { width: 340px; overflow: hidden;} ul.photos.awesome.grande li img { width: 330px; } ul.photos.awesome li ul { margin: 0; } ul.photos.awesome li li { width: auto; float: none; height: auto; margin: 0; display: block; } ul.photos.awesome li li a { line-height: 20px; } a.photo.awesome img:hover { border-color: rgba(0,182,222,.5); -moz-box-shadow: 0 0 9px rgba(0,182,222,.5); -webkit-box-shadow: 0 0 9px rgba(0,182,222,.5); } table { background: #fff; width: 100%; margin: 0 0 18px; border: solid #ddd; border-width: 0 1px 1px 0; border-collapse: separate; -webkit-border-radius: 5px; -moz-border-radius: 5px; } table thead { background: #555; } table thead tr th, table tbody tr td { font-size: 12px; line-height: 18px; } table thead tr { } table thead tr th { padding: 8px 10px 9px; font-size: 14px; font-weight: bold; color: #fff; } table tbody { } table tbody tr { } table tbody tr.even, table tbody tr.alt { background: #f5f5f5; } body.safari table tbody tr:nth-child(even) { background: #f5f5f5; } table tbody tr td { color: #333; padding: 9px 10px; border-left: 1px solid #ddd; border-right: 1px solid #fff; vertical-align: top; } /* Get fancy with rounded corners */ table thead tr th:first-child { -webkit-border-top-left-radius: 5px; -moz-border-radius: 3px 0 0 0; } table thead tr th:last-child { -webkit-border-top-right-radius: 5px; -moz-border-radius: 0 3px 0 0; } table tbody tr:last-child td:first-child { -webkit-border-bottom-left-radius: 5px; -moz-border-radius: 0 0 0 3px; } table tbody tr:last-child td:last-child { -webkit-border-bottom-right-radius: 5px; -moz-border-radius: 0 0 3px 0; } /* Style the tables a bit lighter */ table.alt { border-width: 1px 1px 1px 0; } table.alt thead { background: #f5f5f5; } table.alt thead tr th { color: #222; border-left: 1px solid #ddd; border-right: 1px solid #fff; } form { margin: 0 0 18px; } fieldset { } label { display: block; font-size: 13px; font-weight: bold; line-height: 18px; cursor: pointer; } button, input.input-text, input.password, input.button, textarea, select { font-family: Helvetica Neue, "Arial", Helvetica, Verdana, sans-serif; font-size: 12px; } input.input-text, input.password, textarea { display: block; background: #fff url(//ku.shouce.ren/files/images/201601/56a365f10a6e6.png) no-repeat 0 0; width: ; margin: 0 0 10px; padding: 3px 5px; border: 1px solid #bbb; -moz-border-radius: 2px; -webkit-border-radius: 2px; -webkit-box-shadow: 0 1px 1px #fff; font: 13px/18px Helvetica Neue, "Arial", Helvetica, Verdana, sans-serif; text-shadow: 0 0 1px #fff; color: #777; } form select:focus, form input.input-text:focus, form textarea:focus { outline: none; } form input.input-text:focus, form textarea:focus { border-color: #999; color: #333; padding: 2px 4px; border: 2px solid #2daebf; } form input.input-text.error, form textarea.error { color: #e33100; padding: 2px 4px; border: 2px solid #e33100; } textarea { width: 272px; } span.wrap { background: #eee; display: inline-block; margin: 0 0 14px; padding: 3px; line-height: 1; -moz-border-radius: 5px; -webkit-border-radius: 5px; } span.wrap input, span.wrap textarea, span.wrap small, span.wrap p { display: inline; vertical-align: top; margin-bottom: 0; } span.wrap small { font-size: 12px; color: #666; line-height: 18px; padding: 3px 10px 0 2px; position: relative; top: 4px; } body.ie6 input.input-text, body.ie6 input.password, body.ie6 textarea { background-image: url(/images/forms/input-bg.gif); padding: 5px 5px 6px; } body.ff3 input.input-text { padding: 4px 5px; } body.ff3 input.input-text:focus { padding: 3px 4px; } input.mini, textarea.mini { width: 90px; } input.small, textarea.small { width: 120px; } input.medium, textarea.medium { width: 330px; } input.large, textarea.large { width: 570px; } input.fluid, textarea.fluid { width: 700px; } span.wrap input.mini, span.wrap textarea.mini { width: 90px; } span.wrap input.small, span.wrap textarea.small { width: 120px; } span.wrap input.medium, span.wrap textarea.medium { width: 324px; } span.wrap input.large, span.wrap textarea.large { width: 564px; } span.wrap input.fluid, span.wrap textarea.fluid { width: 680px; } ul.options { margin-bottom: 18px; } ul.options li { padding: 0 0 3px; } ul.options li label { font-size: 13px; font-weight: normal; } ul.options li input.radio, ul.options li input.checkbox { } ul.options.inline { } ul.options.inline li { display: inline; padding-right: 8px; } ul.options.inline li.label { font-weight: bold; background: none; color: #333; text-transform: none; padding: 0; display: inline; font-size: 13px; } ul.options.inline label { display: inline; } fieldset.actions { margin: 9px 0 0; padding: 12px 0 13px; text-align: right; border-top: 1px solid #ddd; } fieldset.actions * { display: inline-block; } label.inlined { padding-left: 7px; font-weight: normal; font-size: 16px; opacity: 0.75; -webkit-transition: color 0.15s linear; position: relative; z-index: 100; } label.inlined + input.input-text { margin-top: -24px; background-color: transparent; } label.inlined.focus { color: #bbb; } label.inlined.has-text { color: #fff; -webkit-transition-duration: 0.0s; } .button { background: #222 url(/images/overlay-button.png) repeat-x 0 0; display: inline-block; padding: 5px 15px 6px; color: #fff !important; font-size: 13px; font-weight: bold; line-height: 1; text-decoration: none; -moz-border-radius: 5px; -webkit-border-radius: 5px; -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.25); -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.25); text-shadow: 0 -1px 1px rgba(0,0,0,0.25); border-bottom: 1px solid rgba(0,0,0,0.25); position: relative; cursor: pointer; overflow: visible; width: auto; } button::-moz-focus-inner { border: 0; padding: 0; } .button:hover { background-color: #111; color: #fff; } .button:active { -webkit-transform: translateY(1px); -moz-transform: translateY(1px); } /* Small Buttons */ .small.button { font-size: 11px; } /* Large Buttons */ .large.button { font-size: 14px; padding: 8px 19px 9px; } /* Colors for our beloved buttons */ .green.button { background-color: #91bd09; } .green.button:hover { background-color: #749a02; } .blue.button { background-color: #2daebf; } .blue.button:hover { background-color: #007d9a; } .red.button { background-color: #e33100; } .red.button:hover { background-color: #872300; } .magenta.button{ background-color: #a9014b; } .magenta.button:hover { background-color: #630030; } .orange.button { background-color: #ff5c00; } .orange.button:hover { background-color: #d45500; } .orangellow.button { background-color: #ffb515; } .orangellow.button:hover { background-color: #fc9200; } .white.button { background-color: #fff; border: 1px solid #ccc; color: #666 !important; font-weight: normal; text-shadow: 0 1px 1px rgba(255,255,255,1); } .white.button:hover { background-color: #eee; } .secondary.button { background: #fff url(/images/gradients/36px-black.png) repeat-x 0 0; color: #555 !important; text-shadow: 0 1px 1px rgba(255,255,255,0.5); border: 1px solid #bbb; -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.1); -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1); } .secondary.button:hover { background-color: #eee; color: #444 !important; border-color: #999; } .super.button { background-image: url(/images/super-button-overlay.png); font-size: 13px; padding: 0; border: 1px solid rgba(0,0,0,.25); -webkit-border-radius: 15px; -moz-border-radius: 15px; } .super.button span { display: block; padding: 4px 15px 6px; -webkit-border-radius: 14px; -moz-border-radius: 14px; border-top: 1px solid rgba(255,255,255,.2); line-height: 1; } .small.super.button { font-size: 11px; -webkit-border-radius: 12px; -moz-border-radius: 12px; } .small.super.button span { padding: 2px 12px 6px; -webkit-border-radius: 11px; -moz-border-radius: 11px; } .small.white.super.button span { padding: 3px 12px 5px; } .large.super.button { background-position: left bottom; -webkit-border-radius: 18px; -moz-border-radius: 18px; } .large.super.button span { font-size: 14px; padding: 7px 20px 9px; -webkit-border-radius: 17px; -moz-border-radius: 17px; } div#wrapper { border-top: 5px solid #b8d30b; clear: left; } div#container, div.container { position: relative; width: 940px; margin: 0 auto; padding: 0; } body.ie8 div#container { position: static; } div#header { position: relative; height: 54px; margin: 0 auto 36px; } /* ZURB logo image */ div#header img { display: block; float: left; margin: 25px 0 0; } /* Text in the header on the top left */ div#header h3 { float: left; font-size: 24px; line-height: 1; margin: 0; position: absolute; top: 21px; left: 0; letter-spacing: -1px; } div#header h3 a, div#header h3 a:visited { font-weight: bold; } div#header h3 a:hover { color: #777; } ul.tabs { float: right; margin: 0; } ul.tabs li { display: block; float: left; line-height: 1; } ul.tabs li a { display: block; font-weight: bold; width: 90px; margin: 9px 0 0 -1px; padding: 18px 5px 11px 15px; border-left: 1px solid #eee; text-decoration: none; color: #333; cursor: pointer; } ul.tabs li a:hover, ul.tabs li.current a { background: #b8d30b; color: #fff; border: 0; margin: 0; padding-top: 27px; text-shadow: 0 -1px 1px rgba(0,0,0,.25); -webkit-border-bottom-left-radius: 3px; -webkit-border-bottom-right-radius: 3px; -moz-border-radius: 0 0 3px 3px; position: relative; z-index: 2; } ul.tabs li span { display: block; font-size: 16px; line-height: 1; font-weight: bold; } /* Hover colors for each main ZURB section */ ul.tabs li a.home:hover { background: #b8d30b; } ul.tabs li a.talent:hover { background: #a9014b; } ul.tabs li a.work:hover { background: #2daebf; } ul.tabs li a.blog:hover { background: #ff6908; } ul.tabs li a.contact:hover { background: #fc9200; } /* Shortened tabs for within apps (dashboard) */ ul.tabs.short li a { padding: 9px 5px 13px 15px; } ul.tabs.short li a:hover, ul.tabs.short li.current a{ padding: 18px 5px 13px 15px; } ul.tabs.short li span { font-size: 14px; } ul.pill-nav { list-style: none; height: 26px; margin: 0; float: right; } ul.pill-nav li { display: inline; } ul.pill-nav li a { font-weight: normal; padding: 4px 10px 4px; -webkit-border-radius: 12px; -moz-border-radius: 12px; text-decoration: none; } ul.pill-nav li a:hover { background-color: #eee; color: #666; } ul.pill-nav li a.current, ul.pill-nav li.current a { background: #2daebf; color: #fff; font-weight: bold; cursor: text; } ul.pill-nav li a.unviewed { font-weight: bold; } div#ZURBar { background: #222; height: 36px; width: 100%; } div#ZURBar h6 { display: inline; padding: 0; font-size: 18px; } div#ZURBar h6 a { float: left; display: block; margin: 0 10px; line-height: 1; color: #fff; text-decoration: none; background: #a5c941; } div#ZURBar h6 a:hover { } ul.nav { float: left; margin: 0; padding: 0; list-style: none; position: relative; } ul.nav li { display: inline; color: #999; line-height: 1; } ul.nav li a span { display: inline; font-weight: normal; opacity: .75; line-height: .9; } ul.nav li a, ul.nav li.faux-link { float: left; display: inline; width: auto; text-decoration: none; text-shadow: 0 -1px 1px #222; line-height: 1; } ul.nav li a { padding: 0 15px; height: 36px; line-height: 36px; font-weight: bold; color: #fff; } ul.nav li a:hover { color: #fff; text-decoration: underline; } ul.nav li.faux-link a:hover { text-decoration: underline; color: #fff; } ul.nav li.faux-link { font-weight: normal; color: #777; height: 36px; line-height: 36px; padding: 0 10px; } ul.nav li.faux-link a { display: inline; float: none; padding: 0; height: auto; line-height: 1; } ul.nav li.faux-link a:hover { background: none; } ul.nav li.faux-link small, ul.nav li.faux-link small a { font-weight: normal; color: #999; } ul.nav li.search { padding: 0 10px; } ul.nav li.search form { line-height: ; } ul.nav li.search form input { margin: 7px 0 0; color: #777; } ul.user.nav li.current a { background: #000; } ul.account.nav { position: absolute; top: 0; right: 10px; } ul.account.nav a { font-weight: normal; } ul.nav li.menu { position: relative; float: left; } ul.nav li.menu a { display: block; float: none; } ul.nav li.menu a img.arrow { vertical-align: middle; position: relative; top: -1px; opacity: .5; margin-left: 3px; } ul.nav li.menu a:hover { text-decoration: none; background: #333; } ul.nav li.menu ul { background: #333; background: #333 -webkit-gradient(linear, 0 0, 0 100%, from(#333), to(#222)); width: 190px; margin: 0; padding: 5px 0; -webkit-border-bottom-left-radius: 5px; -webkit-border-bottom-right-radius: 5px; -moz-border-radius: 0 0 5px 5px; -webkit-box-shadow: 0 5px 15px rgba(0,0,0,.25); -moz-box-shadow: 0 5px 15px rgba(0,0,0,.25); position: absolute; top: 36px; left: -999em; z-index: 5000; } ul.nav li.menu ul li { display: block; position: relative; } ul.nav li.menu ul li.divider { margin: 4px 1px; border-bottom: 1px solid #222; border-bottom-color: rgba(255,255,255,.05); border-top: 1px solid #000; border-top-color: rgba(0,0,0,.5); } ul.nav li.menu ul li a { float: none; display: block; height: auto; padding: 2px 15px 3px; line-height: 18px; font-weight: normal; } ul.nav li.menu ul li.secondary a { color: #999; } ul.nav li.menu ul li a:hover { background: #b8d30b; background: #b8d30b -webkit-gradient(linear, 0 0, 0 100%, from(#b8d30b), to(#9ec106)); font-weight: bold; color: #fff; text-decoration: none; text-shadow: 0 -1px 1px rgba(0,0,0,.25); } ul.nav li.menu ul li ul { position: absolute; top: 0; left: 0; margin-left: 190px; display: none; -webkit-border-top-right-radius: 5px; -moz-border-radius: 0 5px 5px 5px; } ul.nav li.menu ul li:hover ul { display: block; } ul.nav li.menu:hover { background: #333; } ul.nav li.menu:hover ul { left: auto; } ul.nav li.menu:hover img.arrow { opacity: 1; } ul.nav li.menu ul li.zurbword { padding: 2px 15px; font-weight: bold; color: #fff; line-height: 18px; } ul.nav li#ZURBmenu a { padding: 0 12px; } ul.nav li#ZURBmenu strong { background-color: #b8d30b; display: block; width: 42px; height: 50px; position: relative; z-index: 5001; } ul.nav li#ZURBmenu ul { padding-top: 9px; -webkit-border-bottom-left-radius: 0; -moz-border-radius: 0 0 5px 0; } ul.nav li#ZURBmenu ul li a { padding: 2px 15px; } ul.nav li#ZURBmenu:hover strong { background: url(/images/zurb-nub-shell-hover.png) no-repeat 0 0; } ul.nav li#ZURBmenu:hover strong img { display: none; } div.page-header { width: 100%; position: relative; margin: 0 0 31px; padding: 36px 0 27px; border-bottom: 2px solid #eee; clear: both; background-position: right bottom; background-repeat: no-repeat; } div.page-header h1 { display: block; font-size: 81px; line-height: 1; font-weight: bold; letter-spacing: -3px; margin: 0; color: #222; } div.page-header h2 { margin: 6px 0 0; font-size: 24px; line-height: 1.25; color: #777; font-weight: normal; letter-spacing: 0; } div.page-header h2 a { text-decoration: underline; font-weight: inherit; line-height: inherit; } div.page-header h2 a.button { display: inline-block; position: relative; top: -5px; } div.page-header h1 span, div.page-header h2 span { display: block; } div.page-header h1 small, div.page-header h2 small { font-size: 75%; font-weight: normal; } div.sub-header { position: relative; margin: 0 0 18px; padding: 0 0 8px; border-bottom: 1px solid #ddd; } div.sub-header h3 { color: #222; } div.sub-header h3 small { color: #777; font-size: 18px; } div.sub-header ul { margin-bottom: 0; position: absolute; right: 0; bottom: 8px; } div#sectionHeader { } div#pageHeader { margin: 0 0 27px; } div#pageHeader h1 { font-size: 36px; line-height: 1; letter-spacing: -1px; color: #222; } div#pageHeader h1 small { font-size: 18px; font-weight: normal; letter-spacing: 0; color: #999; } div#pageHeader p { font-size: 14px; color: #999; } div#pageHeader div.sub-nav { background: #f5f5f5; height: 24px; padding: 8px 10px 7px; border-bottom: 1px solid #eee; overflow: hidden; -moz-border-radius: 3px; -webkit-border-radius: 3px; } div#pageHeader ul { height: 24px; margin: 0 0 0 -4px; } div#pageHeader li { display: inline; line-height: 1; } div#pageHeader li a, div#pageHeader li.divider { float: left; width: auto; padding: 6px 12px; line-height: 1; } div#pageHeader li a { margin: 0 0 0 4px; text-decoration: none; -webkit-border-radius: 12px; -moz-border-radius: 12px; font-weight: bold; color: #333; text-shadow: 0 1px 1px #fff; } div#pageHeader li.divider { color: #ccc; width: 5px; padding: 7px 8px 0 10px; text-shadow: 0 -1px -1px #aaa; } div#pageHeader li a:hover, div#pageHeader li.current a { background: #a5c941; margin-top: 0; padding: 4px 12px 6px; color: #fff; text-shadow: 0 -1px 1px rgba(0,0,0,.25); border-top: 1px solid rgba(0,0,0,.15); -webkit-box-shadow: 0 1px 1px #fff; -moz-box-shadow: 0 1px 1px #fff; } div#pageHeader ul.options { float: right; margin: 0; padding: 6px 0 0; height: auto; } div#pageHeader ul.options li a { font-weight: normal; padding: 0; border: 0; -webkit-border-radius: 0; -moz-border-radius: 0; } div#pageHeader ul.options li a:hover { background: none; color: #555; } div#pageHeader li.form { padding-left: 8px; float: left; display: inline; } div#pageHeader li.form form { margin: 0; } div#pageHeader li.form form input.input-text { background: #fff url(/images/icons/16px/search.gif) no-repeat 4px center; width: 155px; padding: 3px 12px 3px 21px; color: #777; -webkit-border-radius: 12px; -moz-border-radius: 12px; border-color: #ddd; border-top-color: #ccc; } .column-row, .row { margin: 0 0 18px -20px; } .column, .columns { float: left; display: inline; margin: 0 0 0 20px; } #contentMain { width: 600px; } #contentSec { width: 300px; margin-left: 40px; } .one { width: 40px; } .two { width: 100px; } .three { width: 160px; } .four { width: 220px; } .five { width: 280px; } .six { width: 340px; } .seven { width: 400px; } .eight { width: 460px; } .nine { width: 520px; } .ten { width: 580px; } .eleven { width: 640px; } .twelve { width: 700px; } .thirteen { width: 760px; } .fourteen { width: 820px; } .fifteen { width: 880px; } .sixteen { width: 940px; } .one-half { width: 450px; padding-right: 10px; } .one-third { width: 300px; } .two-thirds { width: 620px; } .eleven .column-row { width: 660px; } .twelve .column-row { width: 720px; } .offset-by-one-half { margin-left: 50px; } .offset-by-one { margin-left: 80px; } .offset-by-two { margin-left: 140px; } .offset-by-three { margin-left: 200px; } .offset-by-four { margin-left: 260px; } .offset-by-five { margin-left: 320px; } .offset-by-six { margin-left: 380px; } .offset-by-seven { margin-left: 440px; } .offset-by-eight { margin-left: 500px; } .offset-by-nine { margin-left: 560px; } .offset-by-ten { margin-left: 620px; } .offset-by-eleven { margin-left: 680px; } .offset-by-twelve { margin-left: 740px; } .offset-by-thirteen { margin-left: 800px; } .offset-by-fourteen { margin-left: 880px; } .last { margin: 0; } .column-row:after, .row:after, .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } * html .column-row, * html .row, * html .clearfix { height: 1%; } .column-row, .row, .clearfix { display: inline-block; } .column-row, .row, .clearfix { display: block; } body.ie .column-row { width: 960px; } body.ie .eight .column-row { width: 480px; } body.ie .nine .column-row { width: 540px; } body.ie .ten .column-row { width: 600px; } body.ie .eleven .column-row { width: 660px; } body.ie .twelve .column-row { width: 720px; } body.ie .thirteen .column-row { width: 780px; } body.ie .fourteen .column-row { width: 840px; } body.ie .fifteen .column-row { width: 900px; } body.ie .two-thirds .column-row { width: 640px; } p.warning, p.error, p.success, p.info { margin: 0 0 18px; padding: 9px 15px; -webkit-border-radius: 6px; -moz-border-radius: 6px; color: #fff; text-shadow: 0 0 1px rgba(0,0,0,0.01); } p.warning a, p.error a, p.success a, p.info a { color: #fff; font-weight: bold; text-decoration: underline; } p.warning { background-color: #ffb515; } p.warning small { color: #d17200; } p.error { background-color: #df4729; color: #fff; } p.error strong { color: #fff; } p.error small { color: #930; } p.success { background-color: #a5c941; color: #fff; } p.success strong { color: #fff; } p.success small { color: #360; } p.info { background-color: #73cacf; color: #fff; } p.info small { color: #007d9a; } div.figure { background: #eee; margin: 0 0 18px; -webkit-border-radius: 3px; -moz-border-radius: 3px; } div.figure img, div.post div.figure img { display: block; margin: 0; border: 1px solid #ccc; } div.figure cite { display: block; padding: 8px 10px; font-size: 13px; line-height: 18px; color: #555; } div.figure cite strong { color: #333; } div.simple.figure { background: #fff; } div.simple.figure img { border: 0; } div.simple.figure cite { padding: 8px 0; color: #777; } div.simple.figure cite strong { color: #555; } div.clean.figure img { border: 0; margin: 1px; } div.floated.figure, div.right.figure { float: right; margin: 0 0 18px 18px; } div.left.figure { float: left; margin: 0 18px 18px 0; } div.large.figure, body.ie6 div.large { width: 520px; } div.large.figure img { width: 518px; } div.medium.figure { width: 340px; } div.medium.figure img { width: 338px; } div.small.figure { width: 220px; } div.small.figure img { width: 218px; } .label { background: #999; display: inline-block; padding: 3px 5px 4px; color: #fff; font-size: 11px; font-weight: bold; text-decoration: none; text-transform: uppercase; line-height: 1; -webkit-border-radius: 3px; -moz-border-radius: 3px; text-shadow: 0 0 1px transparent; } .label:hover { text-decoration: none; color: #fff; } body.ff2 .label { -moz-border-radius: 0; } .green.label { background: #a5c941; text-shadow: 0 0 1px #a5c941; } .blue.label { background: #2daebf; text-shadow: 0 0 1px #2daebf; } .magenta.label { background: #a9014b; text-shadow: 0 0 1px #a9014b; } .red.label { background: #e33100; text-shadow: 0 0 1px #e33100; } .orange.label { background: #ff5c00; text-shadow: 0 0 1px #ff5c00; } .yellow.label { background: #fc9200; text-shadow: 0 0 1px #fc9200; } .label.black { background: #333; text-shadow: 0 0 1px #222; } .label.white { background: #fff; padding: 0 3px 1px; border: 1px solid #ddd; color: #333; text-shadow: 0 0 1px #fff; } div.divider { background-repeat: no-repeat; background-position: center top; width: 100%; height: 36px; margin: 18px 0 27px; } div.notable.divider { background-image: url(/images/dividers/divider-notable.gif); } div.odditorium.divider { background-image: url(/images/dividers/divider-odditorium.gif); } div.scrumptious.divider { background-image: url(/images/dividers/divider-scrumptious.gif); } div.zurb.divider { background-image: url(/images/dividers/divider-zurb.gif); } .left { float: left; } .right { float: right; } .clear { clear: both; } .muted { color: #777; } div.pagination { width: 100%; height: 36px; text-align: center; margin: 0 0 36px; padding: 0; font-size: 12px; line-height: 1; } div.pagination a, div.pagination a:visited { padding: 3px 11px 4px; font-size: 12px; line-height: 1; text-decoration: none; font-weight: bold; border: 1px solid #ddd; text-shadow: 0 1px 1px #fff; -webkit-border-radius: 2px; } div.pagination a:hover { color: #fff; text-shadow: 0 -1px 1px #007d9a; background: #2daebf; border: 1px solid #007d9a; } div.pagination .disabled { color: #bbb; border: 0; } div.pagination .current { padding: 4px 12px 5px; color: #777; font-weight: bold; } .inactive { color: #777; } div.pagination .prev_page, div.pagination .next_page { margin: 0 20px 0 20px; } ul.paginate { width: 100%; height: 27px; margin: 0 0 18px; } ul.paginate li { display: inline; } ul.paginate a { background: #f7f6ed; display: inline; float: left; padding: 3px 12px; -webkit-border-radius: 12px; -moz-border-radius: 12px; text-decoration: none; xfont-weight: bold; } ul.paginate a:hover { background: #818076; color: #fff; } ul.paginate li.next a { float: right; } div.avatar { float: left; margin: -4px 12px 13px 0; } div.avatar a { } div.avatar img { display: block; width: 36px; padding: 4px; border: 1px solid #ddd; -webkit-border-radius: 3px; -moz-border-radius: 3px; } div.avatar a:hover img { border-color: #ccc; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.15); } /* @end */ div.well { background: #f1f1f1; padding: 17px 19px; margin: 0 0 18px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border: 1px solid #ddd; border-top-color: #ccc; border-bottom-color: #eee; } </style> <script src="http://www.codefans.net/ajaxjs/prototype-1.6.0.3.js" type="text/javascript"></script> <script type="text/javascript"> LowPro = {}; LowPro.Version = '0.5'; LowPro.CompatibleWithPrototype = '1.6'; if (Prototype.Version.indexOf(LowPro.CompatibleWithPrototype) != 0 && window.console && window.console.warn) console.warn("This version of Low Pro is tested with Prototype " + LowPro.CompatibleWithPrototype + " it may not work as expected with this version (" + Prototype.Version + ")"); if (!Element.addMethods) Element.addMethods = function(o) { Object.extend(Element.Methods, o) }; DOM = {}; DOM.Builder = { tagFunc : function(tag) { return function() { var attrs, children; if (arguments.length>0) { if (arguments[0].constructor == Object) { attrs = arguments[0]; children = Array.prototype.slice.call(arguments, 1); } else { children = arguments; }; children = $A(children).flatten() } return DOM.Builder.create(tag, attrs, children); }; }, create : function(tag, attrs, children) { attrs = attrs || {}; children = children || []; tag = tag.toLowerCase(); var el = new Element(tag, attrs); for (var i=0; i<children.length; i++) { if (typeof children[i] == 'string') children[i] = document.createTextNode(children[i]); el.appendChild(children[i]); } return $(el); } }; // Automatically create node builders as $tagName. (function() { var els = ("p|div|span|strong|em|img|table|tr|td|th|thead|tbody|tfoot|pre|code|" + "h1|h2|h3|h4|h5|h6|ul|ol|li|form|input|textarea|legend|fieldset|" + "select|option|blockquote|cite|br|hr|dd|dl|dt|address|a|button|abbr|acronym|" + "script|link|style|bdo|ins|del|object|param|col|colgroup|optgroup|caption|" + "label|dfn|kbd|samp|var").split("|"); var el, i=0; while (el = els[i++]) window['$' + el] = DOM.Builder.tagFunc(el); })(); DOM.Builder.fromHTML = function(html) { var root; if (!(root = arguments.callee._root)) root = arguments.callee._root = document.createElement('div'); root.innerHTML = html; return root.childNodes[0]; }; // Wraps the 1.6 contentloaded event for backwards compatibility // // Usage: // // Event.onReady(callbackFunction); Object.extend(Event, { onReady : function(f) { if (document.body) f(); else document.observe('dom:loaded', f); } }); Event.addBehavior = function(rules) { var ab = this.addBehavior; Object.extend(ab.rules, rules); if (!ab.responderApplied) { Ajax.Responders.register({ onComplete : function() { if (Event.addBehavior.reassignAfterAjax) setTimeout(function() { ab.reload() }, 10); } }); ab.responderApplied = true; } if (ab.autoTrigger) { this.onReady(ab.load.bind(ab, rules)); } }; Event.delegate = function(rules) { return function(e) { var element = $(e.element()); for (var selector in rules) if (element.match(selector)) return rules[selector].apply(this, $A(arguments)); } } Object.extend(Event.addBehavior, { rules : {}, cache : [], reassignAfterAjax : false, autoTrigger : true, load : function(rules) { for (var selector in rules) { var observer = rules[selector]; var sels = selector.split(','); sels.each(function(sel) { var parts = sel.split(/:(?=[a-z]+$)/), css = parts[0], event = parts[1]; $$(css).each(function(element) { if (event) { var wrappedObserver = Event.addBehavior._wrapObserver(observer); $(element).observe(event, wrappedObserver); Event.addBehavior.cache.push([element, event, wrappedObserver]); } else { if (!element.$$assigned || !element.$$assigned.include(observer)) { if (observer.attach) observer.attach(element); else observer.call($(element)); element.$$assigned = element.$$assigned || []; element.$$assigned.push(observer); } } }); }); } }, unload : function() { this.cache.each(function(c) { Event.stopObserving.apply(Event, c); }); this.cache = []; }, reload: function() { var ab = Event.addBehavior; ab.unload(); ab.load(ab.rules); }, _wrapObserver: function(observer) { return function(event) { if (observer.call(this, event) === false) event.stop(); } } }); Event.observe(window, 'unload', Event.addBehavior.unload.bind(Event.addBehavior)); $$$ = Event.addBehavior.bind(Event); var Behavior = { create: function() { var parent = null, properties = $A(arguments); if (Object.isFunction(properties[0])) parent = properties.shift(); var behavior = function() { if (!this.initialize) { var args = $A(arguments); return function() { var initArgs = [this].concat(args); behavior.attach.apply(behavior, initArgs); }; } else { var args = (arguments.length == 2 && arguments[1] instanceof Array) ? arguments[1] : Array.prototype.slice.call(arguments, 1); this.element = $(arguments[0]); this.initialize.apply(this, args); behavior._bindEvents(this); behavior.instances.push(this); } }; Object.extend(behavior, Class.Methods); Object.extend(behavior, Behavior.Methods); behavior.superclass = parent; behavior.subclasses = []; behavior.instances = []; if (parent) { var subclass = function() { }; subclass.prototype = parent.prototype; behavior.prototype = new subclass; parent.subclasses.push(behavior); } for (var i = 0; i < properties.length; i++) behavior.addMethods(properties[i]); if (!behavior.prototype.initialize) behavior.prototype.initialize = Prototype.emptyFunction; behavior.prototype.constructor = behavior; return behavior; }, Methods : { attach : function(element) { return new this(element, Array.prototype.slice.call(arguments, 1)); }, _bindEvents : function(bound) { for (var member in bound) { var matches = member.match(/^on(.+)/); if (matches && typeof bound[member] == 'function') bound.element.observe(matches[1], Event.addBehavior._wrapObserver(bound[member].bindAsEventListener(bound))); } } } }; Remote = Behavior.create({ initialize: function(options) { if (this.element.nodeName == 'FORM') new Remote.Form(this.element, options); else new Remote.Link(this.element, options); } }); Remote.Base = { initialize : function(options) { this.options = Object.extend({ evaluateScripts : true }, options || {}); this._bindCallbacks(); }, _makeRequest : function(options) { if (options.update) new Ajax.Updater(options.update, options.url, options); else new Ajax.Request(options.url, options); return false; }, _bindCallbacks: function() { $w('onCreate onComplete onException onFailure onInteractive onLoading onLoaded onSuccess').each(function(cb) { if (Object.isFunction(this.options[cb])) this.options[cb] = this.options[cb].bind(this); }.bind(this)); } } Remote.Link = Behavior.create(Remote.Base, { onclick : function() { var options = Object.extend({ url : this.element.href, method : 'get' }, this.options); return this._makeRequest(options); } }); Remote.Form = Behavior.create(Remote.Base, { onclick : function(e) { var sourceElement = e.element(); if (['input', 'button'].include(sourceElement.nodeName.toLowerCase()) && sourceElement.type == 'submit') this._submitButton = sourceElement; }, onsubmit : function() { var options = Object.extend({ url : this.element.action, method : this.element.method || 'get', parameters : this.element.serialize({ submit: this._submitButton ? this._submitButton.name : null }) }, this.options); this._submitButton = null; return this._makeRequest(options); } }); Observed = Behavior.create({ initialize : function(callback, options) { this.callback = callback.bind(this); this.options = options || {}; this.observer = (this.element.nodeName == 'FORM') ? this._observeForm() : this._observeField(); }, stop: function() { this.observer.stop(); }, _observeForm: function() { return (this.options.frequency) ? new Form.Observer(this.element, this.options.frequency, this.callback) : new Form.EventObserver(this.element, this.callback); }, _observeField: function() { return (this.options.frequency) ? new Form.Element.Observer(this.element, this.options.frequency, this.callback) : new Form.Element.EventObserver(this.element, this.callback); } }); </script> <script type="text/javascript"> // Behavior Class for Awesome Passwords var AwesomePassword = Behavior.create({ password_string : null, password_field_id : null, password_length : null, initialize : function (config) { this.password_string = ""; this.password_length = 0; this.password_field_id = config['password_field_id']; this.password_field = $(this.password_field_id); this.hidden_password_field = $(config['hidden_password']); }, onblur : function(e) { this.password_string = ""; this.password_length = ""; }, onkeyup : function(e) { if(e.which == 8) { this.password_string = this.password_string.substr(0,this.password_field.value.length); } }, onkeypress : function(e) { var source = Event.element(e); if ( source.id == this.password_field_id) this._awesomeify_password(source,e); }, _awesomeify_password : function(source,e) { // Mask Field With Bullets var bullet_string = ""; // Loop through and add bullets for( i = 0; i < this.password_field.value.length; i++ ) { bullet_string += String.fromCharCode(8226); } // Fill bullets this.password_field.value = bullet_string; // If valid Password Character Update Password String if( String.fromCharCode(e.which).match(/[a-zA-Z0-9!-)]/) && String.fromCharCode(e.which).match(/[a-zA-Z0-9!-)]/).first ) { this.password_string += String.fromCharCode(e.which); var password_field = this.password_field; // Wait for user to stop typeing setTimeout(function() { setTimeout(function() { password_field.value = password_field.value.replace(/.$/,String.fromCharCode(8226)); }, 500); },1000); } }, onkeyup : function(e) { this.hidden_password_field.value = this.password_string; return true; } }); Event.addBehavior({ 'form.awesome' : AwesomePassword({ password_field_id : 'password', hidden_password : 'realPassword' }) }); </script> <style type="text/css"> div.wrapper { padding: 0 30px 36px; } div#header { background: #f5f5f5; height: 72px; border-bottom: 1px solid #eee; margin: 0; } div#header h4 { float: left; position: absolute; top: 24px; left: 145px; border-left: 1px solid #ddd; padding-left: 14px; } div#header h4 small { font-size: 14px; font-weight: normal; } div#header h4 a, div#header h4 a:visited { font-weight: normal; } div.page-header { padding: 0 0 8px; margin: 18px 0; border-bottom: 1px solid #ddd; } div.page-header h1 { padding: 0; margin: 0; font-size: 24px; line-height: 27px; letter-spacing: 0; } input[type=text], input[type=password] { font-size: 18px; line-height: 1.2; padding: 5px; color: #777; font-family: Arial, sans-serif; outline: none; display: inline; } </style> </head> <body> <div id="wrapper"> <div id="header"> <div class="wrapper"> <h4>How to Mask Passwords Like the iPhone</h4> </div> </div> <div class="wrapper"> <br /> <form method="get" class="awesome"> <div class="awesome-password"> <label for="password1">Password</label> <input type="text" class="input-text" id="password" autocomplete="off" /> <input type="text" class="input-text" id="realPassword" disabled style="opacity: 0.5;" /> </div> </form> </div> </div> </body> </html>
CSS代码
复制
格式化
注释
注释
颜色
清空
放大
JS代码
复制
格式化
注释
注释
清空
放大
运行代码
简介
请输入代码名称!
名称
JS模拟iphone密码输入框效果
分类
表单按钮
描述
JS模拟iphone苹果手机密码输入框效果,当输入密码的时候,当前字符短暂显示一下,然后显示为“*”号,引入了prototype-1.6.0.3.js,这是一个和jquery一样优秀的类库,国外使用广泛。本效果可用于你的用户登录框,改善你网页的用户体验。
收藏