├── CSS-magic.pdf ├── LICENSE ├── README.md ├── css ├── index.css ├── mzui.css └── mzui.min.css ├── fonts ├── zenicon.eot ├── zenicon.svg ├── zenicon.ttf └── zenicon.woff ├── img ├── css-magic.png ├── magic-tree.png ├── mzui.png ├── sprite.png └── zui.png ├── index.html ├── js ├── index.js ├── mzui.js └── mzui.min.js └── part ├── arrow-shape.html ├── auto-dock-bar.html ├── bold-first-line.html ├── breadcumb.html ├── button-skin.html ├── chat-arrow-with-border.html ├── chat-arrow.html ├── checkbox-and-ratio-skin.html ├── clearfix.html ├── comma-list.html ├── corner-badge.html ├── corner-label.html ├── corner-tape.html ├── css-backdrop.html ├── css-carousel.html ├── css-collapse-panel.html ├── css-icons.html ├── css-images.html ├── css-loading-spinners.html ├── css-logo.html ├── css-modal.html ├── css-shapes.html ├── css-tabs.html ├── css-tooltip.html ├── css-treeview.html ├── disabled-style.html ├── drop-cap.html ├── dropdown-icon.html ├── dropdown-menu.html ├── expand-hit-area.html ├── file-input-control.html ├── fix-border.html ├── flip-card.html ├── focus-input.html ├── font-icons.html ├── hide-empty-content.html ├── highlight-content.html ├── image-flip.html ├── image-scale.html ├── irregular-shadow.html ├── links.html ├── md-input.html ├── ratio-and-checkbox.html ├── responsive-media.html ├── responsive-square.html ├── root.html ├── select-inputs.html ├── selection-style.html ├── show-empty-links.html ├── sprite-icons.html ├── switch.html ├── table-striped.html ├── toc-highlight.html ├── toggle-button.html ├── top-shadow.html └── triangle.html /CSS-magic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catouse/css-magic/e42e6ed3a8f455a5a706b4e0b6a78e90a3d43cd8/CSS-magic.pdf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Catouse 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CSS 魔法类 2 | 3 | 使用 CSS 伪类和伪元素的 61 种方法。 4 | 5 | 访问网站 https://catouse.github.io/css-magic/ 了解更多。 6 | 7 | ![Magic Header](https://github.com/Catouse/css-magic/raw/master/img/css-magic.png) 8 | 9 | ### 简单 10 | 11 | * [链接](https://catouse.github.io/css-magic/#links) 12 | * [:root](https://catouse.github.io/css-magic/#root) 13 | * [首字下沉](https://catouse.github.io/css-magic/#drop-cap) 14 | * [首行加粗](https://catouse.github.io/css-magic/#bold-first-line) 15 | * [表单输入框聚焦](https://catouse.github.io/css-magic/#focus-input) 16 | * [图像缩放效果](https://catouse.github.io/css-magic/#image-scale) 17 | * [背景翻转效果](https://catouse.github.io/css-magic/#image-flip) 18 | * [修正边框](https://catouse.github.io/css-magic/#fix-border) 19 | * [表格隔行变色](https://catouse.github.io/css-magic/#table-striped) 20 | * [选中文本外观](https://catouse.github.io/css-magic/#selection-style) 21 | * [禁用控件外观](https://catouse.github.io/css-magic/#disabled-style) 22 | 23 | ### 高级 24 | 25 | * [隐藏空内容](https://catouse.github.io/css-magic/#hide-empty-content) 26 | * [处理空链接](https://catouse.github.io/css-magic/#show-empty-links) 27 | * [选中表单控件(不包括按钮)](https://catouse.github.io/css-magic/#select-inputs) 28 | * [按钮切换](https://catouse.github.io/css-magic/#toggle-button) 29 | * [下拉菜单](https://catouse.github.io/css-magic/#dropdown-menu) 30 | * [三角形](https://catouse.github.io/css-magic/#triangle) 31 | * [下拉菜单三角形图标](https://catouse.github.io/css-magic/#dropdown-icon) 32 | * [会话箭头](https://catouse.github.io/css-magic/#chat-arrow) 33 | * [带边框的会话三角形](https://catouse.github.io/css-magic/#chat-arrow-with-border) 34 | * [角标](https://catouse.github.io/css-magic/#corner-label) 35 | * [箭头形状](https://catouse.github.io/css-magic/#arrow-shape) 36 | * [切角遮挡](https://catouse.github.io/css-magic/#corner-tape) 37 | * [清除浮动](https://catouse.github.io/css-magic/#clearfix) 38 | * [纯 CSS 实现工具提示](https://catouse.github.io/css-magic/#css-tooltip) 39 | * [字体图标](https://catouse.github.io/css-magic/#font-icons) 40 | * [Sprite 图标](https://catouse.github.io/css-magic/#sprite-icons) 41 | * [按钮交互外观](https://catouse.github.io/css-magic/#button-skin) 42 | * [不规则形状](https://catouse.github.io/css-magic/#css-shapes) 43 | * [增加点击区域](https://catouse.github.io/css-magic/#expand-hit-area) 44 | * [绘制 Logo](https://catouse.github.io/css-magic/#css-logo) 45 | * [绘制图标](https://catouse.github.io/css-magic/#css-icons) 46 | * [绘制图形](https://catouse.github.io/css-magic/#css-images) 47 | * [CSS loading 动画](https://catouse.github.io/css-magic/#css-loading-spinners) 48 | * [环形进度条](https://catouse.github.io/css-magic/#circle-progress-bar) 49 | * [面包屑导航](https://catouse.github.io/css-magic/#breadcumb) 50 | * [行内逗号分割列表](https://catouse.github.io/css-magic/#comma-list) 51 | * [右上角徽标](https://catouse.github.io/css-magic/#corner-badge) 52 | * [聚焦内容](https://catouse.github.io/css-magic/#highlight-content) 53 | * [遮罩效果](https://catouse.github.io/css-magic/#css-backdrop) 54 | * [不规则阴影](https://catouse.github.io/css-magic/#irregular-shadow) 55 | * [顶层内阴影](https://catouse.github.io/css-magic/#top-shadow) 56 | * [自动隐藏 dock 栏](https://catouse.github.io/css-magic/#auto-dock-bar) 57 | * [TOC 内容聚焦](https://catouse.github.io/css-magic/#toc-highlight) 58 | 59 | ### 专家 60 | 61 | * [自适应正方形](https://catouse.github.io/css-magic/#responsive-square) 62 | * [等比例自适应媒体内容](https://catouse.github.io/css-magic/#responsive-media) 63 | * [翻转卡片](https://catouse.github.io/css-magic/#flip-card) 64 | * [占位标签输入框](https://catouse.github.io/css-magic/#md-input) 65 | * [文件上传控件外观](https://catouse.github.io/css-magic/#file-input-control) 66 | * [单选框和复选框外观](https://catouse.github.io/css-magic/#ratio-and-checkbox) 67 | * [开关](https://catouse.github.io/css-magic/#switch) 68 | * [重置单选和复选外观](https://catouse.github.io/css-magic/#checkbox-and-ratio-skin) 69 | * [纯 CSS 实现标签页](https://catouse.github.io/css-magic/#css-tabs) 70 | * [纯 CSS 实现折叠面板](https://catouse.github.io/css-magic/#css-collapse-panel) 71 | * [纯 CSS 实现轮播](https://catouse.github.io/css-magic/#css-carousel) 72 | * [纯 CSS 实现对话框](https://catouse.github.io/css-magic/#css-modal) 73 | * [纯 CSS 实现树形菜单](https://catouse.github.io/css-magic/#css-treeview) 74 | -------------------------------------------------------------------------------- /css/index.css: -------------------------------------------------------------------------------- 1 | @keyframes float { 2 | 0% {transform: translate(0, 0) rotateY(10deg);} 3 | 25% {transform: translate(1rem, 1rem);} 4 | 50% {transform: translate(0, -.5rem) rotateY(-10deg);} 5 | 75% {transform: translate(-1rem, 0);} 6 | 100% {transform: translate(.5rem, 1rem) rotateY(10deg);} 7 | } 8 | 9 | @keyframes down { 10 | 0% {color: #2196F3; transform: translateY(0rem);} 11 | 25% {color: #b06ce5; transform: translateY(.5rem);} 12 | 50% {color: #e75c54; transform: translateY(0rem);} 13 | 75% {color: #ef8e00; transform: translateY(-.5rem);} 14 | 100% {color: #76be35; transform: translateY(0rem);} 15 | } 16 | 17 | #lead {min-height: 10rem; position: relative; overflow: hidden;} 18 | #lead > .background {background: url(../img/magic-tree.png) no-repeat center; background-size: cover; z-index: 0; } 19 | #lead > .wrapper {position: relative; z-index: 1; width: 20rem; height: 20rem; animation: float 20s infinite linear alternate;} 20 | #lead > .wrapper:before {content: ' '; display: block; background-color: rgba(255,255,255,.4); position: absolute; left: 0; top: 0; right: 0; bottom: 0; transform: rotate(45deg); border-radius: 3rem; box-shadow: .1rem .1rem 2rem rgba(0,0,0,.3); border: .2rem solid rgba(255,255,255,.1); border-right-color: rgba(0,0,0,.1); border-top-color: rgba(0,0,0,.1)} 21 | #lead > .wrapper > .content {position: relative; z-index: 2} 22 | #lead > .wrapper > .content > h1 {font-size: 3.5rem;} 23 | #lead:hover > .wrapper {transform: translateY(3rem);} 24 | @media (max-width: 25rem) { 25 | #lead > .wrapper {width: 13rem; height: 13rem;} 26 | #lead > .wrapper > .content > h1 {font-size: 2.4rem;} 27 | #lead > .wrapper > .content > h2 {font-size: .7rem;} 28 | } 29 | 30 | #scrollBtn {position: relative;} 31 | #scrollBtn > .icon {animation: down 5s infinite linear alternate;} 32 | 33 | #contentList .magic-classes > .code:after {content: ','; color: #333} 34 | #contentList .magic-classes > .code:last-child:after {display: none} 35 | #contentList .avatar {font-size: .6rem} 36 | @media (max-width: 50rem) { 37 | #contentList > .cell-4 {width: 100%} 38 | } 39 | 40 | #displayTarget-contentModal {width: 80%} 41 | #displayTarget-contentModal > .content .list > .item > .content > div + div {margin-top: .2rem} 42 | #displayTarget-contentModal > .content .list > .item > .content > div > pre {margin-bottom: 0} 43 | #displayTarget-contentModal > .content .magic-classes > .code {display: inline-block; margin-top: .2rem; background-color: #fff; padding: .05rem .2rem; border: .05rem solid #e75c54; border-radius: .15rem} 44 | @media (max-width: 30rem) { 45 | #displayTarget-contentModal {width: 100%} 46 | } 47 | @media (min-width: 35rem) { 48 | #displayTarget-contentModal > .heading {padding: .75rem} 49 | #displayTarget-contentModal > .content {padding: 0 0.5rem 0.5rem} 50 | #displayTarget-contentModal > .content > .magic-classes-header {margin: 0 -0.5rem .25rem; padding: 1rem} 51 | } 52 | 53 | .code.text-yellow {color: #ef8e00} 54 | .code.text-red {color: #e75c54} 55 | .code.text-purple {color: #b06ce5} 56 | 57 | @media (min-width: 35rem) { 58 | .frameworks {padding: 2rem 0!important} 59 | .frameworks h1 {margin-bottom: 2rem!important} 60 | } 61 | 62 | body.display-show-contentModal {overflow: hidden} 63 | -------------------------------------------------------------------------------- /css/mzui.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * mzui - v1.0.0 - 2016-07-14 3 | * Copyright (c) 2016 cnezsoft.com; Licensed MIT 4 | *//*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%}body{margin:0}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}a{-webkit-text-decoration-skip:objects}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}h1{font-size:2em;margin:.67em 0}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-family:monospace,sans-serif;font-size:1em}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}fieldset{margin:0 2px;padding:.35em .625em .75em;border:1px solid silver}legend{padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{opacity:.54;color:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}html{font-size:20px;box-sizing:border-box;-webkit-tap-highlight-color:transparent}*,:after,:before{box-sizing:inherit}body{font-family:'Helvetica Neue',Helvetica,sans-serif;font-size:.7rem;line-height:1.42857143;color:#333;background-color:#f1f1f1}a{text-decoration:none;color:inherit}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}img{max-width:100%;height:auto;vertical-align:middle}table{max-width:100%;border-collapse:collapse}th{text-align:left}pre{overflow:auto;margin:0}ol,p,table,ul{margin:0}.clearfix:after,.clearfix:before{display:table;content:' '}.clearfix:after{clear:both}.pull-right{float:right!important}.pull-left{float:left!important}.block{display:block!important}.inline{display:inline!important}.inline-block{display:inline-block!important}.hidden,.hide-empty:empty,.template{display:none!important}.invisible{visibility:hidden}.fluid{width:100%!important}.fluid-v{height:100%!important}h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:700;line-height:1.1;margin:0 0 .5rem 0;color:inherit}h1{font-size:1.2rem}h2{font-size:1rem}h3{font-size:.9rem}h4{font-size:.8rem}h5{font-size:.7rem}h6{font-size:.6rem}.lead{font-size:.8rem;font-weight:300}.small,small{font-size:80%}.large{font-size:150%}.strong,strong{font-weight:bolder}.thin{font-weight:lighter}.mark,mark{padding:.1rem;background-color:#fff0d5}.text-link{color:#2196f3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-nowrap{white-space:nowrap}.text-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-line-through{text-decoration:line-through}.text-hide{font:0/0 a;color:transparent;text-shadow:none}hr{margin-top:.5rem;margin-bottom:.5rem;border:0;border-top:.05rem solid rgba(0,0,0,.1)}hr.space{margin-bottom:.5rem;border-color:transparent}blockquote{margin:.5rem;padding:.5rem .5rem;border-left:.25rem solid rgba(0,0,0,.1)}ol,ul{margin:.5rem;padding-left:1rem}blockquote,embed,iframe,img,object,ol,p,pre,table,ul,video{margin:0 0 .5rem 0}.page{position:fixed;z-index:1050;top:0;right:0;bottom:0;left:0;overflow-y:auto;background-color:#f1f1f1}.container{margin-right:auto;margin-left:auto;padding-right:.5rem;padding-left:.5rem}@media (min-width:38.4rem){.container{max-width:36rem}}@media (min-width:49.6rem){.container{max-width:47rem}}@media (min-width:60rem){.container{max-width:59rem}}.dock{position:absolute!important}.affix{position:fixed!important}.relative{position:relative!important}.static{position:static!important}.affix,.dock,.dock-bottom,.dock-left,.dock-right,.dock-top{position:absolute;z-index:1030;top:0;right:0;bottom:0;left:0;transition:.5s cubic-bezier(.175,.885,.32,1);-webkit-transform:translate(0,0);transform:translate(0,0)}.dock-top{bottom:auto}.dock-bottom{top:auto}.dock-left{right:auto}.dock-right{left:auto}.affix.dock-top{box-shadow:inset 0 -.05rem 0 rgba(0,0,0,.1)}.affix.dock-bottom{box-shadow:inset 0 .05rem 0 rgba(0,0,0,.1)}.in-scroll .affix.dock-top{box-shadow:rgba(0,0,0,.12) 0 .05rem .3rem,rgba(0,0,0,.15) 0 .05rem .2rem}.in-scroll .affix.dock-bottom{box-shadow:rgba(0,0,0,.12) 0 -.05rem .3rem,rgba(0,0,0,.15) 0 -.05rem .2rem}.in-scroll.scroll-down .affix.dock-top.dock-auto{-webkit-transform:translate(0,-99%);transform:translate(0,-99%);box-shadow:none}.in-scroll.scroll-down .affix.dock-bottom.dock-auto{-webkit-transform:translate(0,99%);transform:translate(0,99%);box-shadow:none}.listen-scroll{transition:box-shadow .5s cubic-bezier(.175,.885,.32,1)}.listen-scroll.in-scroll{box-shadow:inset rgba(0,0,0,.05) 0 .05rem .25rem,inset rgba(0,0,0,.08) 0 .05rem .1rem}.flex{display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.flex-inline{display:-webkit-inline-flex!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.flex-wrap{-webkit-flex-wrap:wrap!important;-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-webkit-flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.space-between{-webkit-justify-content:space-between!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-start{-webkit-justify-content:flex-start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-end{-webkit-justify-content:flex-end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.flex-center,.justify-center{-webkit-justify-content:center!important;-ms-flex-pack:center!important;justify-content:center!important}.stretch{-webkit-align-items:stretch!important;-ms-flex-align:stretch!important;-ms-grid-row-align:stretch!important;align-items:stretch!important}.align-start{-webkit-align-items:flex-start!important;-ms-flex-align:start!important;-ms-grid-row-align:flex-start!important;align-items:flex-start!important}.align-end{-webkit-align-items:flex-end!important;-ms-flex-align:end!important;-ms-grid-row-align:flex-end!important;align-items:flex-end!important}.align-middle,.flex-center{-webkit-align-items:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}.flex-first{-webkit-order:-1;-ms-flex-order:-1;order:-1}.flex-last{-webkit-order:1;-ms-flex-order:1;order:1}.flex-auto{-webkit-flex:auto!important;-ms-flex:auto!important;flex:auto!important}.flex-none{-webkit-flex:none!important;-ms-flex:none!important;flex:none!important}.selft-stretch{-webkit-align-self:stretch!important;-ms-flex-item-align:stretch!important;align-self:stretch!important}.align-self-start{-webkit-align-self:flex-start!important;-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-webkit-align-self:flex-end!important;-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-middle{-webkit-align-self:center!important;-ms-flex-item-align:center!important;align-self:center!important}.justified{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.justified>*{-webkit-flex:auto!important;-ms-flex:auto!important;flex:auto!important}.justified>.flex-none{-webkit-flex:none!important;-ms-flex:none!important;flex:none!important}.column,.row{display:-webkit-flex;display:-ms-flexbox;display:flex;margin:-.25rem -.25rem 0;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-align-content:stretch;-ms-flex-line-pack:stretch;align-content:stretch;-webkit-flex:auto;-ms-flex:auto;flex:auto}.column:not(:last-child),.row:not(:last-child){margin-bottom:.25rem}.column .column,.column .row,.row .column,.row .row{margin:-.25rem}.flex-row{flex-direction:row;-webkit-flex-direction:row;-ms-flex-direction:row}.row-reverse{flex-direction:row-reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse}.column,.flex-column{flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column}.column-reverse{flex-direction:column-reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse}.cell,[class*=' cell-'],[class^=cell-]{display:-webkit-flex;display:-ms-flexbox;display:flex;padding:.25rem;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.cell,.tile{-webkit-flex:auto;-ms-flex:auto;flex:auto}[class*=' cell-'],[class^=cell-]{-webkit-flex:none;-ms-flex:none;flex:none}.row>.cell-1{width:8.33333333%}.row>.cell-2{width:16.66666667%}.row>.cell-3{width:25%}.row>.cell-4{width:33.33333333%}.row>.cell-5{width:41.66666667%}.row>.cell-6{width:50%}.row>.cell-7{width:58.33333333%}.row>.cell-8{width:66.66666667%}.row>.cell-9{width:75%}.row>.cell-10{width:83.33333333%}.row>.cell-11{width:91.66666667%}.row>.cell-12{width:100%}.column>.cell-1{height:8.33333333%}.column>.cell-2{height:16.66666667%}.column>.cell-3{height:25%}.column>.cell-4{height:33.33333333%}.column>.cell-5{height:41.66666667%}.column>.cell-6{height:50%}.column>.cell-7{height:58.33333333%}.column>.cell-8{height:66.66666667%}.column>.cell-9{height:75%}.column>.cell-10{height:83.33333333%}.column>.cell-11{height:91.66666667%}.column>.cell-12{height:100%}.column.gutterless,.column.gutterless .column,.column.gutterless .row,.row.gutterless,.row.gutterless .column,.row.gutterless .row{margin:0}.column.gutterless .cell,.column.gutterless [class*=' cell-'],.column.gutterless [class^=cell-],.row.gutterless .cell,.row.gutterless [class*=' cell-'],.row.gutterless [class^=cell-]{padding:0}.column.gutter-lg,.row.gutter-lg{margin:-.5rem -.5rem 0}.column.gutter-lg:not(:last-child),.row.gutter-lg:not(:last-child){margin-bottom:.5rem}.column.gutter-lg .column,.column.gutter-lg .row,.row.gutter-lg .column,.row.gutter-lg .row{margin:-.5rem}.column.gutter-lg .cell,.column.gutter-lg [class*=' cell-'],.column.gutter-lg [class^=cell-],.row.gutter-lg .cell,.row.gutter-lg [class*=' cell-'],.row.gutter-lg [class^=cell-]{padding:.5rem}.column.gutter-sm,.row.gutter-sm{margin:-.125rem -.125rem 0}.column.gutter-sm:not(:last-child),.row.gutter-sm:not(:last-child){margin-bottom:.125rem}.column.gutter-sm .column,.column.gutter-sm .row,.row.gutter-sm .column,.row.gutter-sm .row{margin:-.125rem}.column.gutter-sm .cell,.column.gutter-sm [class*=' cell-'],.column.gutter-sm [class^=cell-],.row.gutter-sm .cell,.row.gutter-sm [class*=' cell-'],.row.gutter-sm [class^=cell-]{padding:.125rem}.fade{transition:.3s cubic-bezier(.175,.885,.32,1);opacity:0}.fade.in{opacity:1}.scale{transition:.3s cubic-bezier(.175,.885,.32,1);-webkit-transform:scale(.8);transform:scale(.8)}.scale.in{-webkit-transform:scale(1);transform:scale(1)}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;overflow:hidden;transition:ease height .3s}[class*=' scale-from-'],[class*=' enter-from-'],[class^=enter-from-],[class^=scale-from-]{transition:.3s cubic-bezier(.175,.885,.32,1)}[class*=' scale-from-'].in,[class*=' enter-from-'].in,[class^=enter-from-].in,[class^=scale-from-].in{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0);opacity:1}.scale-from-top{-webkit-transform:scale(.8) translate(0,-30%);transform:scale(.8) translate(0,-30%);opacity:0}.scale-from-bottom{-webkit-transform:scale(.8) translate(0,30%);transform:scale(.8) translate(0,30%);opacity:0}.scale-from-left{-webkit-transform:scale(.8) translate(-30%,0);transform:scale(.8) translate(-30%,0);opacity:0}.scale-from-right{-webkit-transform:scale(.8) translate(30%,0);transform:scale(.8) translate(30%,0);opacity:0}.scale-from-center{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}.enter-from-top{-webkit-transform:translate(0,-105%);transform:translate(0,-105%)}.enter-from-bottom{-webkit-transform:translate(0,105%);transform:translate(0,105%)}.enter-from-left{-webkit-transform:translate(-105%,0);transform:translate(-105%,0)}.enter-from-right{-webkit-transform:translate(105%,0);transform:translate(105%,0)}.enter-from-center{-webkit-transform:scale(.8) translate(0,50%);transform:scale(.8) translate(0,50%);opacity:0}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.spin{-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}.spin-fast{-webkit-animation:spin 1s infinite linear;animation:spin 1s infinite linear}@font-face{font-family:ZenIcon;font-weight:400;font-style:normal;src:url(../fonts/zenicon.eot?v=1.3.0);src:url(../fonts/zenicon.eot?#iefix&v=1.3.0) format('embedded-opentype'),url(../fonts/zenicon.woff?v=1.3.0) format('woff'),url(../fonts/zenicon.ttf?v=1.3.0) format('truetype'),url(../fonts/zenicon.svg#regular?v=1.3.0) format('svg')}[class*=' icon-'],[class^=icon-]{font-family:ZenIcon;font-size:.7rem;font-weight:400;font-style:normal;font-variant:normal;text-transform:none;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon:before{display:inline-block;min-width:.7rem;text-align:center}.icon-3x{font-size:2.1rem}.icon-2x{font-size:1.4rem}a .icon.spin{display:inline-block;text-decoration:none}.icon.flip-h:before,.icon.flip-v:before,.icon.rotate-180:before,.icon.rotate-270:before,.icon.rotate-90:before{display:inline-block}.icon-resize:before{content:'\e667'}.icon-expand-full:before{content:'\e6a3'}.icon-arrows-alt:before{content:'\e6a3'}.icon-fullscreen:before{content:'\e6a3'}.icon-collapse-full:before{content:'\e682'}.icon-yinyang:before{content:'\e687'}.icon-taiji:before{content:'\e687'}.icon-window:before{content:'\e68e'}.icon-window-alt:before{content:'\e68f'}.icon-carousel:before{content:'\e6b0'}.icon-spinner-snake:before{content:'\e97b'}.icon-spinner-indicator:before{content:'\e97c'}.icon-check-board:before{content:'\e9b8'}.icon-bar-chart:before{content:'\f080'}.icon-bar-chart-o:before{content:'\f080'}.icon-github:before{content:'\f09b'}.icon-dot-circle:before{content:'\f192'}.icon-dot-circle-o:before{content:'\f192'}.icon-cube-alt:before{content:'\f1b2'}.icon-cubes:before{content:'\f1b3'}.icon-file-pdf:before{content:'\f1c1'}.icon-file-word:before{content:'\f1c2'}.icon-file-excel:before{content:'\f1c3'}.icon-file-powerpoint:before{content:'\f1c4'}.icon-file-image:before{content:'\f1c5'}.icon-file-photo:before{content:'\f1c5'}.icon-file-picture:before{content:'\f1c5'}.icon-file-archive:before{content:'\f1c6'}.icon-file-zip:before{content:'\f1c6'}.icon-file-audio:before{content:'\f1c7'}.icon-file-sound:before{content:'\f1c7'}.icon-file-movie:before{content:'\f1c8'}.icon-file-video:before{content:'\f1c8'}.icon-file-code:before{content:'\f1c9'}.icon-circle-o-notch:before{content:'\f1ce'}.icon-qq:before{content:'\f600'}.icon-wechat:before{content:'\f1d7'}.icon-weixin:before{content:'\f1d7'}.icon-history:before{content:'\f1da'}.icon-circle-thin:before{content:'\f1db'}.icon-sliders:before{content:'\f1de'}.icon-newspaper-o:before{content:'\f1ea'}.icon-calculator:before{content:'\f1ec'}.icon-paint-brush:before{content:'\f1fc'}.icon-area-chart:before{content:'\f1fe'}.icon-pie-chart:before{content:'\f200'}.icon-line-chart:before{content:'\f201'}.icon-toggle-off:before{content:'\f204'}.icon-toggle-on:before{content:'\f205'}.icon-diamond:before{content:'\f219'}.icon-venus:before{content:'\f221'}.icon-mars:before{content:'\f222'}.icon-server:before{content:'\f233'}.icon-music:before{content:'\e602'}.icon-search:before{content:'\e603'}.icon-envelope:before{content:'\e604'}.icon-heart:before{content:'\e605'}.icon-star:before{content:'\e606'}.icon-star-empty:before{content:'\e607'}.icon-user:before{content:'\e608'}.icon-film:before{content:'\e609'}.icon-th-large:before{content:'\e60a'}.icon-th:before{content:'\e60b'}.icon-th-list:before{content:'\e60c'}.icon-ok:before{content:'\e60d'}.icon-check:before{content:'\e60d'}.icon-remove:before{content:'\d7'}.icon-times:before{content:'\d7'}.icon-zoom-in:before{content:'\e60f'}.icon-zoom-out:before{content:'\e610'}.icon-off:before{content:'\e611'}.icon-cog:before{content:'\e613'}.icon-trash:before{content:'\e614'}.icon-home:before{content:'\e615'}.icon-file-o:before{content:'\e616'}.icon-file-alt:before{content:'\e616'}.icon-time:before{content:'\e617'}.icon-download-alt:before{content:'\e618'}.icon-download:before{content:'\e619'}.icon-upload:before{content:'\e61a'}.icon-inbox:before{content:'\e61b'}.icon-play-circle:before{content:'\e61c'}.icon-repeat:before{content:'\e61d'}.icon-refresh:before{content:'\e61e'}.icon-list-alt:before{content:'\e61f'}.icon-lock:before{content:'\e620'}.icon-flag:before{content:'\e621'}.icon-headphones:before{content:'\e622'}.icon-volume-off:before{content:'\e623'}.icon-volume-up:before{content:'\e625'}.icon-qrcode:before{content:'\e626'}.icon-barcode:before{content:'\e627'}.icon-tag:before{content:'\e628'}.icon-tags:before{content:'\e629'}.icon-book:before{content:'\e62a'}.icon-bookmark:before{content:'\e62b'}.icon-print:before{content:'\e62c'}.icon-camera:before{content:'\e62d'}.icon-font:before{content:'\e62e'}.icon-bold:before{content:'\e62f'}.icon-align-justify:before{content:'\e636'}.icon-list:before{content:'\e637'}.icon-picture:before{content:'\e63b'}.icon-pencil:before{content:'\e63c'}.icon-map-marker:before{content:'\e63d'}.icon-adjust:before{content:'\e63e'}.icon-tint:before{content:'\e63f'}.icon-edit:before{content:'\e640'}.icon-share:before{content:'\e641'}.icon-check2:before,.icon-checked:before{content:'\e642'}.icon-move:before{content:'\e643'}.icon-arrows:before{content:'\e643'}.icon-step-backward:before{content:'\e644'}.icon-fast-backward:before{content:'\e645'}.icon-backward:before{content:'\e646'}.icon-play:before{content:'\e647'}.icon-pause:before{content:'\e648'}.icon-stop:before{content:'\e649'}.icon-forward:before{content:'\e64a'}.icon-fast-forward:before{content:'\e64b'}.icon-step-forward:before{content:'\e64c'}.icon-eject:before{content:'\e64d'}.icon-chevron-left:before{content:'\e64e'}.icon-chevron-right:before{content:'\e64f'}.icon-plus-sign:before{content:'\e650'}.icon-minus-sign:before{content:'\e651'}.icon-remove-sign:before{content:'\e652'}.icon-ok-sign:before{content:'\e653'}.icon-check-circle:before{content:'\e653'}.icon-question-sign:before{content:'\e654'}.icon-info-sign:before{content:'\e655'}.icon-remove-circle:before{content:'\e657'}.icon-ok-circle:before{content:'\e658'}.icon-check-circle-o:before{content:'\e658'}.icon-ban-circle:before{content:'\e659'}.icon-arrow-left:before{content:'\e65a'}.icon-arrow-right:before{content:'\e65b'}.icon-arrow-up:before{content:'\e65c'}.icon-arrow-down:before{content:'\e65d'}.icon-share-alt:before{content:'\e65e'}.icon-resize-full:before{content:'\e65f'}.icon-resize-small:before{content:'\e660'}.icon-plus:before{content:'\e661'}.icon-minus:before{content:'\e662'}.icon-asterisk:before{content:'\e663'}.icon-exclamation-sign:before{content:'\e664'}.icon-gift:before{content:'\e665'}.icon-leaf:before{content:'\e666'}.icon-eye-open:before{content:'\e668'}.icon-eye-close:before{content:'\e669'}.icon-warning-sign:before{content:'\e66a'}.icon-plane:before{content:'\e66b'}.icon-calendar:before{content:'\e66c'}.icon-random:before{content:'\e66d'}.icon-comment:before{content:'\e66e'}.icon-chevron-up:before{content:'\e670'}.icon-chevron-down:before{content:'\e671'}.icon-shopping-cart:before{content:'\e673'}.icon-folder-close:before{content:'\e674'}.icon-folder-open:before{content:'\e675'}.icon-resize-v:before{content:'\e676'}.icon-resize-h:before{content:'\e677'}.icon-bar-chart-alt:before{content:'\e678'}.icon-camera-retro:before{content:'\e679'}.icon-key:before{content:'\e67a'}.icon-cogs:before{content:'\e67b'}.icon-comments:before{content:'\e67c'}.icon-thumbs-o-up:before{content:'\e67d'}.icon-thumbs-o-down:before{content:'\e67e'}.icon-star-half:before{content:'\e67f'}.icon-heart-empty:before{content:'\e680'}.icon-signout:before{content:'\e681'}.icon-pushpin:before{content:'\e683'}.icon-external-link:before{content:'\e684'}.icon-signin:before{content:'\e685'}.icon-trophy:before{content:'\e686'}.icon-upload-alt:before{content:'\e688'}.icon-lemon:before{content:'\e689'}.icon-phone:before{content:'\e68a'}.icon-check-empty:before{content:'\e68b'}.icon-bookmark-empty:before{content:'\e68c'}.icon-phone-sign:before{content:'\e68d'}.icon-credit:before{content:'\e690'}.icon-rss:before{content:'\e691'}.icon-hdd:before{content:'\e692'}.icon-bullhorn:before{content:'\e693'}.icon-bell:before{content:'\e694'}.icon-certificate:before{content:'\e695'}.icon-hand-right:before{content:'\e696'}.icon-hand-left:before{content:'\e697'}.icon-hand-up:before{content:'\e698'}.icon-hand-down:before{content:'\e699'}.icon-circle-arrow-left:before{content:'\e69a'}.icon-circle-arrow-right:before{content:'\e69b'}.icon-circle-arrow-up:before{content:'\e69c'}.icon-circle-arrow-down:before{content:'\e69d'}.icon-globe:before{content:'\e69e'}.icon-wrench:before{content:'\e69f'}.icon-tasks:before{content:'\e6a0'}.icon-filter:before{content:'\e6a1'}.icon-group:before{content:'\e6a4'}.icon-link:before{content:'\e6a5'}.icon-cloud:before{content:'\e6a6'}.icon-beaker:before{content:'\e6a7'}.icon-cut:before{content:'\e6a8'}.icon-copy:before{content:'\e6a9'}.icon-paper-clip:before{content:'\e6aa'}.icon-save:before{content:'\e6ab'}.icon-sign-blank:before{content:'\e6ac'}.icon-bars:before{content:'\e6ad'}.icon-reorder:before{content:'\e6ad'}.icon-list-ul:before{content:'\e6ae'}.icon-list-ol:before{content:'\e6af'}.icon-table:before{content:'\e6b2'}.icon-magic:before{content:'\e6b3'}.icon-caret-down:before{content:'\e6b8'}.icon-caret-up:before{content:'\e6b9'}.icon-caret-left:before{content:'\e6ba'}.icon-caret-right:before{content:'\e6bb'}.icon-columns:before{content:'\e6bc'}.icon-sort:before{content:'\e6bd'}.icon-sort-down:before{content:'\e6be'}.icon-sort-up:before{content:'\e6bf'}.icon-envelope-alt:before{content:'\e6c0'}.icon-undo:before{content:'\e6c1'}.icon-dashboard:before{content:'\e6c3'}.icon-comment-alt:before{content:'\e6c4'}.icon-comments-alt:before{content:'\e6c5'}.icon-bolt:before{content:'\e6c6'}.icon-sitemap:before{content:'\e6c7'}.icon-umbrella:before{content:'\e6c8'}.icon-paste:before{content:'\e6c9'}.icon-lightbulb:before{content:'\e6ca'}.icon-exchange:before{content:'\e6cb'}.icon-cloud-download:before{content:'\e6cc'}.icon-cloud-upload:before{content:'\e6cd'}.icon-bell-alt:before{content:'\e6d1'}.icon-coffee:before{content:'\e6d2'}.icon-file-text-o:before{content:'\e6d4'}.icon-file-text-alt:before{content:'\e6d4'}.icon-building:before{content:'\e6d5'}.icon-double-angle-left:before{content:'\e6dc'}.icon-double-angle-right:before{content:'\e6dd'}.icon-double-angle-up:before{content:'\e6de'}.icon-double-angle-down:before{content:'\e6df'}.icon-angle-left:before{content:'\e6e0'}.icon-angle-right:before{content:'\e6e1'}.icon-angle-up:before{content:'\e6e2'}.icon-angle-down:before{content:'\e6e3'}.icon-desktop:before{content:'\e6e4'}.icon-laptop:before{content:'\e6e5'}.icon-tablet:before{content:'\e6e6'}.icon-mobile:before{content:'\e6e7'}.icon-circle-blank:before{content:'\e6e8'}.icon-quote-left:before{content:'\e6e9'}.icon-quote-right:before{content:'\e6ea'}.icon-spinner:before{content:'\e6eb'}.icon-circle:before{content:'\e6ec'}.icon-reply:before{content:'\e6ed'}.icon-folder-close-alt:before{content:'\e6ef'}.icon-folder-open-alt:before{content:'\e6f0'}.icon-expand-alt:before{content:'\e6f1'}.icon-collapse-alt:before{content:'\e6f2'}.icon-smile:before{content:'\e6f3'}.icon-frown:before{content:'\e6f4'}.icon-meh:before{content:'\e6f5'}.icon-gamepad:before{content:'\e6f6'}.icon-keyboard:before{content:'\e6f7'}.icon-flag-alt:before{content:'\e6f8'}.icon-flag-checkered:before{content:'\e6f9'}.icon-terminal:before{content:'\e6fa'}.icon-code:before{content:'\e6fb'}.icon-reply-all:before{content:'\e6fc'}.icon-star-half-full:before{content:'\e6fd'}.icon-location-arrow:before{content:'\e6fe'}.icon-crop:before{content:'\e6ff'}.icon-code-fork:before{content:'\e700'}.icon-unlink:before{content:'\e701'}.icon-question:before{content:'\e702'}.icon-info:before{content:'\e703'}.icon-shield:before{content:'\e70b'}.icon-calendar-empty:before{content:'\e70c'}.icon-rocket:before{content:'\e70e'}.icon-chevron-sign-left:before{content:'\e70f'}.icon-chevron-sign-right:before{content:'\e710'}.icon-chevron-sign-up:before{content:'\e711'}.icon-chevron-sign-down:before{content:'\e712'}.icon-html5:before{content:'\e713'}.icon-anchor:before{content:'\e714'}.icon-unlock-alt:before{content:'\e715'}.icon-bullseye:before{content:'\e716'}.icon-ellipsis-h:before{content:'\e717'}.icon-ellipsis-v:before{content:'\e718'}.icon-rss-sign:before{content:'\e719'}.icon-play-sign:before{content:'\e71a'}.icon-minus-sign-alt:before{content:'\e71c'}.icon-check-minus:before{content:'\e71d'}.icon-level-up:before{content:'\e71e'}.icon-level-down:before{content:'\e71f'}.icon-check-sign:before{content:'\e720'}.icon-edit-sign:before{content:'\e721'}.icon-external-link-sign:before{content:'\e722'}.icon-share-sign:before{content:'\e723'}.icon-compass:before{content:'\e724'}.icon-collapse:before{content:'\e725'}.icon-collapse-top:before{content:'\e726'}.icon-expand:before{content:'\e727'}.icon-dollar:before{content:'\e728'}.icon-yen:before{content:'\e729'}.icon-file:before{content:'\e72b'}.icon-file-text:before{content:'\e72c'}.icon-sort-by-alphabet:before{content:'\e72d'}.icon-sort-by-alphabet-alt:before{content:'\e72e'}.icon-sort-by-attributes:before{content:'\e72f'}.icon-sort-by-attributes-alt:before{content:'\e730'}.icon-sort-by-order:before{content:'\e731'}.icon-sort-by-order-alt:before{content:'\e732'}.icon-thumbs-up:before{content:'\e733'}.icon-thumbs-down:before{content:'\e734'}.icon-long-arrow-down:before{content:'\e736'}.icon-long-arrow-up:before{content:'\e737'}.icon-long-arrow-left:before{content:'\e738'}.icon-long-arrow-right:before{content:'\e739'}.icon-apple:before{content:'\e73a'}.icon-windows:before{content:'\e73b'}.icon-android:before{content:'\e73c'}.icon-linux:before{content:'\e73d'}.icon-sun:before{content:'\e742'}.icon-moon:before{content:'\e743'}.icon-archive:before{content:'\e744'}.icon-bug:before{content:'\e745'}.icon-weibo:before{content:'\e746'}.icon-renren:before{content:'\e747'}.icon-chrome:before{content:'\e76c'}.icon-firefox:before{content:'\e76d'}.icon-ie:before{content:'\e76e'}.icon-opera:before{content:'\e76f'}.icon-safari:before{content:'\e770'}.icon-node:before{content:'\e76a'}.icon-layout:before{content:'\e768'}.icon-usecase:before{content:'\e74a'}.icon-stack:before{content:'\e769'}.icon-branch:before{content:'\e74b'}.icon-chat:before{content:'\e74c'}.icon-chat-line:before{content:'\e74f'}.icon-comment-line:before{content:'\e74f'}.icon-chat-dot:before{content:'\e750'}.icon-cube:before{content:'\e751'}.icon-align-left:before{content:'\e633'}.avatar{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;overflow:hidden;flex-direction:column;width:1.5rem;height:1.5rem;vertical-align:middle;background-position:center;background-size:cover;-webkit-flex-direction:column;-ms-flex-direction:column;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.avatar img{display:block;width:100%;height:100%;margin:0}.avatar-sm{font-size:.6rem;width:1rem;height:1rem}.avatar-lg{font-size:1rem;width:2rem;height:2rem}.avatar-lg>.icon{font-size:1rem}.avatar-xl{font-size:1.75rem;width:3.5rem;height:3.5rem}.avatar-xl>.icon{font-size:1.75rem}.nav{display:-webkit-flex;display:-ms-flexbox;display:flex;overflow-x:auto;white-space:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.nav>a{display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:2rem;height:2rem;padding:0 .5rem;opacity:.8;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.nav>a.active{font-weight:700;opacity:1}.nav-secondary{box-shadow:inset 0 -.05rem 0 rgba(0,0,0,.1)}.nav-secondary>.active{box-shadow:inset 0 -.1rem 0 #fff}.nav-secondary.primary-pale>.active{box-shadow:inset 0 -.1rem 0 #2196f3}.nav-secondary.success-pale>.active{box-shadow:inset 0 -.1rem 0 #76be35}.nav-secondary.danger-pale>.active{box-shadow:inset 0 -.1rem 0 #e75c54}.nav-secondary.warning-pale>.active{box-shadow:inset 0 -.1rem 0 #ef8e00}.nav-secondary.important-pale>.active{box-shadow:inset 0 -.1rem 0 #bd7b46}.nav-secondary.special-pale>.active{box-shadow:inset 0 -.1rem 0 #b06ce5}.nav.circle{border-radius:1rem}.nav.outline>a{border-right:.05rem solid transparent;border-right-color:inherit}.nav.outline>a:last-child{border-right:none}.nav.outline>a.active{color:#333;background-color:#fff}.nav-lg>a,.nav.affix>a{height:2.4rem}.nav.affix{background-color:#fff}.with-nav-top{padding-top:2.4rem}.with-nav-bottom{padding-bottom:2.4rem}.with-heading-top.with-nav-top{padding-top:4.8rem}.with-heading-top.with-nav-top>.nav.affix.dock-top{top:2.4rem}.in-scroll.scroll-down .with-heading-top>.nav.dock-top,.in-scroll.scroll-down.with-heading-top>.nav.dock-top{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}.in-scroll.scroll-down .with-heading-top>.nav.dock-top.dock-auto,.in-scroll.scroll-down.with-heading-top>.nav.dock-top.dock-auto{-webkit-transform:translate(0,-199%);transform:translate(0,-199%)}.in-scroll>.dock-top .nav-secondary{box-shadow:none}.btn{font-size:.7rem;font-weight:400;line-height:1rem;display:inline-block;min-width:1.5rem;height:1.5rem;padding:.2rem .5rem;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;vertical-align:middle;white-space:nowrap;color:inherit;border:.05rem solid transparent;background:0 0}.btn.circle,.btn.circle:after{border-radius:.75rem!important}.btn-lg{font-size:.9rem;line-height:1.2rem;min-width:2rem;height:2rem;padding:.35rem .5rem}.btn-lg.circle,.btn-lg.circle:after{border-radius:1rem!important}.btn-sm{font-size:.6rem;line-height:.9rem;min-width:1.2rem;height:1.2rem;padding:.1rem .5rem}.btn-sm.circle,.btn-sm.circle:after{border-radius:.6rem!important}.btn-xs{font-size:.6rem;line-height:.9rem;min-width:1rem;height:1rem;padding:0 .5rem}.btn-xs.circle,.btn-xs.circle:after{border-radius:.5rem!important}.btn>.icon{margin:0 -.3rem}.btn.block{width:100%}.btn.block+.btn.block{margin-top:.5rem}.btn>.label{position:relative;top:-.05rem}.label{font-size:.6rem;line-height:.9rem;display:inline-block;min-width:1rem;height:1rem;padding:0 .25rem;vertical-align:middle;border:.05rem solid transparent;background-color:#e5e5e5}.label>.icon{line-height:1}.label.circle{padding:.05rem .25rem;border-radius:.5rem}.label.badge{position:absolute;z-index:1;top:-.5rem;right:-.5rem}.heading{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.heading>.title{display:block;padding:.5rem .5rem;-webkit-flex:1;-ms-flex:1;flex:1}.heading>.nav{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.heading>.avatar{margin-left:.25rem}.heading>.headline{font-size:.8rem;width:100%;padding:.5rem .5rem}.heading>.headline.indent{margin-left:2rem}.heading-lg>.nav,.heading.affix>.nav{margin:.2rem}.heading-lg>.title,.heading.affix>.title{font-size:.8rem;padding:.65rem .5rem}.heading.affix{background-color:#fff}.with-heading-top{padding-top:2.4rem}.with-heading-bottom{padding-bottom:2.4rem}.list-item,.list>.item{position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:.5rem .5rem}.list-item>.icon,.list>.item>.icon{line-height:1.5rem;display:block;height:1.5rem}.list-item>*,.list>.item>*{margin-left:.5rem}.list-item>:first-child,.list>.item>:first-child{min-width:.7rem;margin-left:0}.list-item>.title,.list>.item>.title{padding:.25rem 0}.list-item>.content,.list-item>.title,.list>.item>.content,.list>.item>.title{-webkit-flex:1;-ms-flex:1;flex:1}.list-item>.label,.list>.item>.label{position:relative;top:.25rem}.list-item>.label+.label,.list>.item>.label+.label{margin-left:.25rem}.list-item>.content>.subtitle,.list>.item>.content>.subtitle{font-size:80%;opacity:.5!important}.list-item.multi-lines>*,.list>.item.multi-lines>*{margin-top:.25rem}.list-item.multi-lines>.content,.list>.item.multi-lines>.content{margin-top:0}.list-item.active:after,.list>.item.active:after{-webkit-transform:scale(1);transform:scale(1);opacity:.11;background-color:#000}.list>.heading .title{font-size:.6rem;font-weight:bolder;text-transform:uppercase;opacity:.5}.list-item.compact,.list.compact>.item{padding:.25rem .5rem}.list.with-divider{border:.05rem solid rgba(0,0,0,.1);border-width:.05rem 0}.list.with-divider>.item:before{position:absolute;right:0;bottom:0;left:.5rem;display:block;height:.05rem;content:' ';background-color:rgba(0,0,0,.1)}.list.with-divider>.item:last-of-type:before{display:none}.list.with-divider .item.with-avatar:before,.list.with-divider.with-avatar>.item:before{left:2.5rem}.list-item+.divider,.list>.item+.divider{margin-left:.5rem}.list-item.with-avatar+.divider,.list>.item.with-avatar+.divider{margin-left:2.5rem}.list>.list{margin-left:2rem}.table{width:100%}.table td,.table th{padding:.5rem .5rem;vertical-align:top;border-bottom:.05rem solid rgba(0,0,0,.1)}.table th{font-weight:700;position:relative;opacity:.7}.table th:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;content:' ';background:rgba(128,128,128,.2)}.table tr:hover{background-color:rgba(33,150,243,.1)}.table tr.active{background-color:rgba(239,142,0,.1)}.table.compact td,.table.compact th{padding:.25rem .25rem}.table.striped tbody>tr:nth-child(odd){background-color:rgba(0,0,0,.035)}.table.striped tbody>tr:nth-child(odd):hover{background-color:rgba(33,150,243,.1)}.table.borderless td,.table.borderless th{border:none}.table.bordered td,.table.bordered th{border:.05rem solid #ddd}.table-fixed{overflow:hidden;table-layout:fixed}.table-fixed td,.table-fixed th{overflow:inherit;white-space:nowrap}.table-fixed .no-table-fixed{overflow:visible}.input,.select>select,.textarea{line-height:1.42857143;display:block;width:100%;min-height:1.5rem;padding:.15rem .25rem;border:.05rem solid #ccc;border-radius:0;background-color:#fff;-webkit-appearance:none}.input:focus,.select>select:focus,.textarea:focus{border-color:#2196f3;outline:0}.input .disabled,.input[disabled],.input[readonly],.select>select .disabled,.select>select[disabled],.select>select[readonly],.textarea .disabled,.textarea[disabled],.textarea[readonly]{opacity:1!important;background-color:#e6e6e6}.select{position:relative}.select>select{outline:0}.select>select:not([multiple]){padding-right:1.25rem}.select>select[multiple]{overflow-y:auto;max-height:3.75rem}.select:not(.multiple):after{position:absolute;top:.55rem;right:.5rem;display:block;width:0;height:0;content:' ';border-width:.35rem .25rem 0 .25rem;border-style:solid;border-color:#ccc transparent transparent transparent}.help-text{font-size:.6rem;padding:.25rem 0;color:grey}.help-text:empty{display:none}.checkbox,.radio{position:relative}.checkbox>input,.radio>input{position:absolute;z-index:1;top:0;left:0;display:block;width:100%;height:100%;opacity:0}.checkbox>input+label,.radio>input+label{position:relative;z-index:0;display:block;padding:.25rem 0 .25rem 1.25rem}.checkbox>input+label:after,.checkbox>input+label:before,.radio>input+label:after,.radio>input+label:before{position:absolute;top:.3rem;left:0;display:-webkit-flex;display:-ms-flexbox;display:flex;width:.9rem;height:.9rem;content:' ';transition:.3s cubic-bezier(.175,.885,.32,1);color:transparent;border:.1rem solid #ccc;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.checkbox>input+label:after,.radio>input+label:after{-webkit-transform:scale(0);transform:scale(0);opacity:0;color:grey}.checkbox>input:focus+label:before,.radio>input:focus+label:before{border-color:#2196f3}.checkbox>input:checked+label:after,.radio>input:checked+label:after{-webkit-transform:scale(1);transform:scale(1);opacity:1}.checkbox>input.disabled,.checkbox>input[disabled],.radio>input.disabled,.radio>input[disabled]{opacity:0!important}.checkbox>input.disabled+label,.checkbox>input[disabled]+label,.radio>input.disabled+label,.radio>input[disabled]+label{opacity:.5}.checkbox.inline-block+.inline-block,.radio.inline-block+.inline-block{margin-left:.05rem}.checkbox>input+label:after{font-family:ZenIcon;font-size:.7rem;font-weight:400;font-style:normal;font-variant:normal;content:'\e60d';text-transform:none;border:none;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.checkbox>input:focus+label:after{color:#2196f3}.radio>input+label:before{border-radius:1rem}.radio>input+label:after{top:.55rem;left:.25rem;width:.4rem;height:.4rem;border:none;border-radius:.2rem;background-color:grey}.radio>input:focus+label:after{background-color:#2196f3}.control>label{font-weight:700;display:block;padding:.25rem 0}.control:not(:last-child){margin-bottom:.5rem}.control.has-btn-right,.control.has-icon-right,.control.has-label-left{position:relative}.control.has-label-left>label{position:absolute;top:0;left:.25rem;min-width:.1rem;text-align:center;opacity:.5}.control.has-label-left .input,.control.has-label-left .select>select,.control.has-label-left .textarea{padding-left:1.25rem}.control.has-label-left .input:focus+label,.control.has-label-left .select>select:focus+label,.control.has-label-left .textarea:focus+label{opacity:1;color:#2196f3}.control.has-btn-right>.icon,.control.has-icon-right>.icon{position:absolute;top:.2rem;right:.25rem;min-width:1rem;text-align:center;opacity:.5}.control.has-btn-right .input,.control.has-btn-right .select>select,.control.has-btn-right .textarea,.control.has-icon-right .input,.control.has-icon-right .select>select,.control.has-icon-right .textarea{padding-right:1.25rem}.control.has-btn-right .input:focus+.icon,.control.has-btn-right .input:focus+label+.icon,.control.has-btn-right .select>select:focus+.icon,.control.has-btn-right .select>select:focus+label+.icon,.control.has-btn-right .textarea:focus+.icon,.control.has-btn-right .textarea:focus+label+.icon,.control.has-icon-right .input:focus+.icon,.control.has-icon-right .input:focus+label+.icon,.control.has-icon-right .select>select:focus+.icon,.control.has-icon-right .select>select:focus+label+.icon,.control.has-icon-right .textarea:focus+.icon,.control.has-icon-right .textarea:focus+label+.icon{opacity:1}.control.has-btn-right>.btn{position:absolute;top:0;right:0;min-width:1rem;text-align:center;opacity:.5}.column .control,.row .control{width:100%}.control.has-error .input,.control.has-error .select>select,.control.has-error .textarea{border-color:#e75c54}.control.has-error .help-text{color:#e75c54}.control.has-success .input,.control.has-success .select>select,.control.has-success .textarea{border-color:#76be35}.control.has-success .help-text{color:#76be35}.control.has-warning .input,.control.has-warning .select>select,.control.has-warning .textarea{border-color:#ef8e00}.control.has-warning .help-text{color:#ef8e00}.article embed,.article iframe,.article img,.article object,.article video{max-width:100%;height:auto}.article ol ol,.article ol ul,.article ul ol,.article ul ul{margin-bottom:0}.article a{color:#2196f3}.article blockquote{margin:.5rem 0 .5rem 1rem;padding-top:0;padding-bottom:0}.display-backdrop,.display-layer{position:fixed;z-index:1040;top:0;right:0;bottom:0;left:0;background-color:#000}.display-backdrop.in{opacity:.5}.display-backdrop.loading:before{width:1.5rem;height:1.5rem;margin-top:-.75rem;margin-left:-.75rem;border-width:.25rem}.display-layer{z-index:1050;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-direction:column;pointer-events:none;background:0 0;-webkit-flex-direction:column;-ms-flex-direction:column;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.display{pointer-events:auto}.display.invisible{transition:none!important}body[class*=' display-show-'],body[class^=display-show-]{overflow-y:hidden}.display-arrow:before{position:absolute;display:block;width:0;height:0;content:' ';border-style:solid}.arrow-top:before{top:-.4rem;left:50%;margin-left:-.4rem;border-width:0 .4rem .4rem .4rem;border-color:transparent transparent #fff transparent}.arrow-bottom:before{top:100%;left:50%;margin-left:-.4rem;border-width:.4rem .4rem 0 .4rem;border-color:#fff transparent transparent transparent}.arrow-right:before{top:50%;left:100%;margin-top:-.4rem;border-width:.4rem 0 .4rem .4rem;border-color:transparent transparent transparent #fff}.arrow-left:before{top:50%;left:-.4rem;margin-top:-.4rem;border-width:.4rem .4rem .4rem 0;border-color:transparent #fff transparent transparent}.dropdown-menu,.popover{display:none}.display>.dropdown-menu,.display>.popover{display:block}.dropdown-menu,.modal,.popover{overflow-y:auto;max-height:100%}.dropdown-menu{min-width:6rem}.messager{margin:1rem}.modal{display:-webkit-flex;display:-ms-flexbox;display:flex;flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column}.modal>.footer,.modal>.heading{z-index:1;-webkit-flex:none;-ms-flex:none;flex:none}.modal>.content{overflow-y:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto}.modal.in-scroll>.heading{border:none;box-shadow:rgba(0,0,0,.05) 0 .05rem .2rem,rgba(0,0,0,.12) 0 .05rem .1rem}.modal.can-scroll:not(.scroll-over)>.footer{box-shadow:rgba(0,0,0,.05) 0 -.05rem .2rem,rgba(0,0,0,.12) 0 -.05rem .1rem}.blur{-webkit-filter:blur(.5rem);filter:blur(.5rem)}.blur-lg{-webkit-filter:blur(1rem);filter:blur(1rem)}.blur-sm{-webkit-filter:blur(.25rem);filter:blur(.25rem)}.grayscale{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.flip-h{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.flip-v{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.outline{border:.05rem solid rgba(0,0,0,.1)}.circle{border-radius:50%}.rounded{border-radius:.15rem}.rounded-sm{border-radius:.1rem}.rounded-lg{border-radius:.3rem}.borderless{border:none!important}.divider{border-bottom:.05rem solid rgba(0,0,0,.1)}.divider-top{border-top:.05rem solid rgba(0,0,0,.1)}.space{margin-bottom:1rem}.space-sm{margin-bottom:.5rem}.space-xs{margin-bottom:.25rem}.space-xl{margin-bottom:2rem}.space-lg{margin-bottom:1.5rem}.center-block{margin-right:auto;margin-left:auto}.no-padding{padding:0!important}.no-margin{margin:0!important}.has-margin{margin:1rem!important}.has-margin-sm{margin:.5rem!important}.has-padding{padding:.5rem .5rem!important}.has-padding-sm{padding:.25rem .25rem!important}.has-padding-v{padding-top:.5rem!important;padding-bottom:.5rem!important}.has-padding-h{padding-right:.5rem!important;padding-left:.5rem!important}.canvas{background:#fff}.dropdown-menu,.layer,.modal,.popover{background:#fff;box-shadow:rgba(0,0,0,.15) 0 .15rem .5rem,rgba(0,0,0,.25) 0 .15rem .5rem}.section{margin-bottom:1rem;background:#fff;box-shadow:rgba(0,0,0,.05) 0 .05rem .2rem,rgba(0,0,0,.12) 0 .05rem .1rem}.box{padding:.5rem .5rem;border:.05rem solid transparent;background:#fff}.well{padding:.5rem .5rem;background-color:rgba(0,0,0,.05);box-shadow:inset rgba(0,0,0,.1) 0 .05rem .3rem,inset rgba(0,0,0,.12) 0 .05rem .2rem}.shadow-divider{box-shadow:inset 0 -.05rem 0 rgba(0,0,0,.1)}.shadow-divider-outside{box-shadow:0 .05rem 0 rgba(0,0,0,.1)}.shadow-none{box-shadow:none!important}.shadow,.shadow-1{box-shadow:rgba(0,0,0,.05) 0 .05rem .2rem,rgba(0,0,0,.12) 0 .05rem .1rem}.shadow-2{box-shadow:rgba(0,0,0,.12) 0 .05rem .3rem,rgba(0,0,0,.15) 0 .05rem .2rem}.shadow-3{box-shadow:rgba(0,0,0,.15) 0 .15rem .5rem,rgba(0,0,0,.25) 0 .15rem .5rem}.text-shadow-white{text-shadow:0 .05rem .1rem rgba(255,255,255,.5)}.text-shadow-black{text-shadow:0 .05rem .1rem rgba(0,0,0,.5)}.primary{color:#fff!important;border-color:#2196f3!important;background-color:#2196f3!important}.primary.hover:hover,tr.primary:hover{background-color:#0d8aee!important}.primary.outline{color:#2196f3!important;background-color:transparent!important}.primary.outline .active{color:#fff!important;background-color:#2196f3!important}.green,.success{color:#fff!important;border-color:#76be35!important;background-color:#76be35!important}.green.hover:hover,.success.hover:hover,tr.green:hover,tr.success:hover{background-color:#6aaa2f!important}.green.outline,.success.outline{color:#76be35!important;background-color:transparent!important}.green.outline .active,.success.outline .active{color:#fff!important;background-color:#76be35!important}.blue,.info{color:#fff!important;border-color:#03a9f4!important;background-color:#03a9f4!important}.blue.hover:hover,.info.hover:hover,tr.blue:hover,tr.info:hover{background-color:#0398db!important}.blue.outline,.info.outline{color:#03a9f4!important;background-color:transparent!important}.blue.outline .active,.info.outline .active{color:#fff!important;background-color:#03a9f4!important}.warning,.yellow{color:#fff!important;border-color:#ef8e00!important;background-color:#ef8e00!important}.warning.hover:hover,.yellow.hover:hover,tr.warning:hover,tr.yellow:hover{background-color:#d67f00!important}.warning.outline,.yellow.outline{color:#ef8e00!important;background-color:transparent!important}.warning.outline .active,.yellow.outline .active{color:#fff!important;background-color:#ef8e00!important}.danger,.red{color:#fff!important;border-color:#e75c54!important;background-color:#e75c54!important}.danger.hover:hover,.red.hover:hover,tr.danger:hover,tr.red:hover{background-color:#e4473e!important}.danger.outline,.red.outline{color:#e75c54!important;background-color:transparent!important}.danger.outline .active,.red.outline .active{color:#fff!important;background-color:#e75c54!important}.brown,.important{color:#fff!important;border-color:#bd7b46!important;background-color:#bd7b46!important}.brown.hover:hover,.important.hover:hover,tr.brown:hover,tr.important:hover{background-color:#ac6f3d!important}.brown.outline,.important.outline{color:#bd7b46!important;background-color:transparent!important}.brown.outline .active,.important.outline .active{color:#fff!important;background-color:#bd7b46!important}.purple,.special{color:#fff!important;border-color:#b06ce5!important;background-color:#b06ce5!important}.purple.hover:hover,.special.hover:hover,tr.purple:hover,tr.special:hover{background-color:#a456e1!important}.purple.outline,.special.outline{color:#b06ce5!important;background-color:transparent!important}.purple.outline .active,.special.outline .active{color:#fff!important;background-color:#b06ce5!important}.dark{color:#fff!important;border-color:#333!important;background-color:#333!important}.dark.hover:hover,tr.dark:hover{background-color:#262626!important}.dark.outline{color:#333!important;background-color:transparent!important}.dark.outline .active{color:#fff!important;background-color:#333!important}.black,.inverse{color:#fff!important;border-color:#000!important;background-color:#000!important}.black.hover:hover,.inverse.hover:hover,tr.black:hover,tr.inverse:hover{background-color:#000!important}.black.outline,.inverse.outline{color:#000!important;background-color:transparent!important}.black.outline .active,.inverse.outline .active{color:#fff!important;background-color:#000!important}.primary-pale{border-color:#ebf2f9!important;background-color:#ebf2f9!important}.primary-pale.hover:hover,tr.primary-pale:hover{background-color:#d7e5f3!important}.primary-pale.outline{color:#ebf2f9!important;border-color:#ebf2f9!important}.primary-pale .active,.primary-pale.text-tint{color:#2196f3}.green-pale,.success-pale{border-color:#ddf4df!important;background-color:#ddf4df!important}.green-pale.hover:hover,.success-pale.hover:hover,tr.green-pale:hover,tr.success-pale:hover{background-color:#caeecd!important}.green-pale.outline,.success-pale.outline{color:#ddf4df!important;border-color:#ddf4df!important}.green-pale .active,.green-pale.text-tint,.success-pale .active,.success-pale.text-tint{color:#76be35}.blue-pale,.info-pale{border-color:#ddf3f5!important;background-color:#ddf3f5!important}.blue-pale.hover:hover,.info-pale.hover:hover,tr.blue-pale:hover,tr.info-pale:hover{background-color:#c9ecef!important}.blue-pale.outline,.info-pale.outline{color:#ddf3f5!important;border-color:#ddf3f5!important}.blue-pale .active,.blue-pale.text-tint,.info-pale .active,.info-pale.text-tint{color:#03a9f4}.warning-pale,.yellow-pale{border-color:#fff0d5!important;background-color:#fff0d5!important}.warning-pale.hover:hover,.yellow-pale.hover:hover,tr.warning-pale:hover,tr.yellow-pale:hover{background-color:#ffe7bc!important}.warning-pale.outline,.yellow-pale.outline{color:#fff0d5!important;border-color:#fff0d5!important}.warning-pale .active,.warning-pale.text-tint,.yellow-pale .active,.yellow-pale.text-tint{color:#ef8e00}.danger-pale,.red-pale{border-color:#ffe5e0!important;background-color:#ffe5e0!important}.danger-pale.hover:hover,.red-pale.hover:hover,tr.danger-pale:hover,tr.red-pale:hover{background-color:#ffd0c6!important}.danger-pale.outline,.red-pale.outline{color:#ffe5e0!important;border-color:#ffe5e0!important}.danger-pale .active,.danger-pale.text-tint,.red-pale .active,.red-pale.text-tint{color:#e75c54}.brown-pale,.important-pale{border-color:#f7ebe1!important;background-color:#f7ebe1!important}.brown-pale.hover:hover,.important-pale.hover:hover,tr.brown-pale:hover,tr.important-pale:hover{background-color:#f2decd!important}.brown-pale.outline,.important-pale.outline{color:#f7ebe1!important;border-color:#f7ebe1!important}.brown-pale .active,.brown-pale.text-tint,.important-pale .active,.important-pale.text-tint{color:#bd7b46}.purple-pale,.special-pale{border-color:#f5eeff!important;background-color:#f5eeff!important}.purple-pale.hover:hover,.special-pale.hover:hover,tr.purple-pale:hover,tr.special-pale:hover{background-color:#e6d5ff!important}.purple-pale.outline,.special-pale.outline{color:#f5eeff!important;border-color:#f5eeff!important}.purple-pale .active,.purple-pale.text-tint,.special-pale .active,.special-pale.text-tint{color:#b06ce5}.gray{border-color:#f1f1f1!important;background-color:#f1f1f1!important}.gray.hover:hover,tr.gray:hover{background-color:#e4e4e4!important}.gray.outline{color:#f1f1f1!important;border-color:#f1f1f1!important}.gray .active,.gray.text-tint{color:#333}.white{border-color:#fff!important;background-color:#fff!important}.white.hover:hover,tr.white:hover{background-color:#f2f2f2!important}.white.outline{color:#fff!important;border-color:#fff!important}.white .active,.white.text-tint{color:#333}.text-primary{color:#2196f3}.text-green,.text-success{color:#76be35}.text-blue,.text-info{color:#03a9f4}.text-warning,.text-yellow{color:#ef8e00}.text-danger,.text-red{color:#e75c54}.text-brown,.text-important{color:#bd7b46}.text-purple,.text-special{color:#b06ce5}.text-gray{color:grey}.text-black{color:#000}.text-white{color:#fff}.clean{background-color:transparent!important}.outline{border:.05rem solid rgba(0,0,0,.1);background-color:transparent!important}.muted{opacity:.5!important}.darken{background-color:rgba(0,0,0,.1)!important}.lighten{background-color:rgba(255,255,255,.1)!important}.btn,.state,a{position:relative}.btn:after,.state:after,a:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;content:' ';transition:.3s cubic-bezier(.175,.885,.32,1);-webkit-transform:scale(.6);transform:scale(.6);opacity:0;background-color:transparent;box-shadow:0 0 0 .05rem #000}.btn.circle:after,.state.circle:after,a.circle:after{border-radius:50%}.btn.rounded:after,.state.rounded:after,a.rounded:after{border-radius:.15rem}.btn.hover:after,.btn:hover:after,.state.hover:after,.state:hover:after,a.hover:after,a:hover:after{-webkit-transform:scale(1);transform:scale(1);opacity:.08;background-color:#000}.btn:focus,.state:focus,a:focus{outline:0}.btn:focus:after,.state:focus:after,a:focus:after{-webkit-transform:scale(1);transform:scale(1);opacity:.1;background-color:rgba(0,0,0,.8);box-shadow:inset 0 0 0 .05rem rgba(0,0,0,.9)}.btn.open:after,.btn:active:after,.open>.btn:after,.open>.state:after,.open>a:after,.state.open:after,.state:active:after,a.open:after,a:active:after{-webkit-transform:scale(1);transform:scale(1);opacity:.11;background-color:#000}.disabled,.disabled>a,[disabled]{cursor:not-allowed!important;pointer-events:none!important;opacity:.5!important;box-shadow:none!important;-webkit-filter:grayscale(100%);filter:grayscale(100%)}.disabled:after,.disabled>a:after,[disabled]:after{display:none!important}.as-load-indicator,.loading{color:transparent!important}.as-load-indicator>*,.loading>*{visibility:hidden}.as-load-indicator:before,.loading:before{position:absolute;top:50%;left:50%;display:block;width:.9rem;height:.9rem;margin-top:-.45rem;margin-left:-.45rem;content:' ';transition:opacity .3s cubic-bezier(.175,.885,.32,1);-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;border:.15rem dotted rgba(255,255,255,.5);border-color:rgba(255,255,255,.1) rgba(255,255,255,.4) rgba(255,255,255,.5) rgba(255,255,255,.6);border-radius:50%}.as-load-indicator.loading-light:before,.loading.loading-light:before{border-color:rgba(0,0,0,.1) rgba(0,0,0,.2) rgba(0,0,0,.3) rgba(0,0,0,.4)}.as-load-indicator:before{-webkit-animation:none;animation:none;opacity:0}.as-load-indicator.loading:before{-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;opacity:1}.code,code,kbd,pre,samp{font-family:Monaco,Menlo,Consolas,'Courier New',monospace}code,kbd{font-size:.6rem;padding:.1rem .25rem;color:#e75c54;background-color:rgba(0,0,0,.05)}.code{color:#e75c54}kbd{font-weight:700;color:#666;border:.05rem solid rgba(0,0,0,.1);border-bottom-width:.1rem;border-radius:.1rem}pre{font-size:.6rem;display:block;overflow:auto;max-width:100%;padding:.5rem;word-wrap:normal;word-break:normal;border:.05rem solid transparent;background-color:rgba(0,0,0,.05)}pre code{font-size:inherit;padding:0;color:inherit;border-radius:0;background-color:transparent}.com{color:#93a1a1}.lit{color:#195f91}.clo,.opn,.pun{color:#93a1a1}.fun{color:#dc322f}.atv,.str{color:#d14}.kwd,.prettyprint .tag{color:#1e347b}.atn,.dec,.typ,.var{color:teal}.pln{color:#48484c}.prettyprint.linenums{padding:.25rem .5rem .25rem 0;word-wrap:break-word;word-break:break-all;border:.05rem solid rgba(0,0,0,.1);box-shadow:inset 2rem 0 0 #fbfbfc,inset 2.05rem 0 0 #ececf0}.prettyprint.linenums code{white-space:pre-wrap}.prettyprint ol.linenums{line-height:1rem;margin-bottom:0;padding-left:2.25rem;color:#bebec5;text-shadow:0 .05rem 0 #fff} -------------------------------------------------------------------------------- /fonts/zenicon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catouse/css-magic/e42e6ed3a8f455a5a706b4e0b6a78e90a3d43cd8/fonts/zenicon.eot -------------------------------------------------------------------------------- /fonts/zenicon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catouse/css-magic/e42e6ed3a8f455a5a706b4e0b6a78e90a3d43cd8/fonts/zenicon.ttf -------------------------------------------------------------------------------- /fonts/zenicon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catouse/css-magic/e42e6ed3a8f455a5a706b4e0b6a78e90a3d43cd8/fonts/zenicon.woff -------------------------------------------------------------------------------- /img/css-magic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catouse/css-magic/e42e6ed3a8f455a5a706b4e0b6a78e90a3d43cd8/img/css-magic.png -------------------------------------------------------------------------------- /img/magic-tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catouse/css-magic/e42e6ed3a8f455a5a706b4e0b6a78e90a3d43cd8/img/magic-tree.png -------------------------------------------------------------------------------- /img/mzui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catouse/css-magic/e42e6ed3a8f455a5a706b4e0b6a78e90a3d43cd8/img/mzui.png -------------------------------------------------------------------------------- /img/sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catouse/css-magic/e42e6ed3a8f455a5a706b4e0b6a78e90a3d43cd8/img/sprite.png -------------------------------------------------------------------------------- /img/zui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catouse/css-magic/e42e6ed3a8f455a5a706b4e0b6a78e90a3d43cd8/img/zui.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CSS 魔法类 7 | 8 | 9 | 10 | 11 |
12 | Github 13 |
14 | 15 |
16 |
17 |
18 |
19 |

CSS 魔法类

20 |

使用 CSS 伪类和伪元素的 61 种方法

21 |
22 |
23 | 24 |
25 |
26 |
27 |
28 | 29 |
30 |

前端解决方案推荐

31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | 41 |
42 |

本文档中的所有示例基于 MZUI 前端框架

43 | 访问 MZUI 官方网站 44 |
45 |
46 | 47 | 48 | 49 | 50 | 51 | 52 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /js/index.js: -------------------------------------------------------------------------------- 1 | var contents = [{ 2 | name: 'simple', 3 | title: '简单', 4 | items: [ 5 | {name: 'links', title: '链接', classes: ':link,:hover,:visited,:active,:focus'}, 6 | {name: 'root', title: ':root', classes: ':root'}, 7 | {name: 'drop-cap', title: '首字下沉', classes: ':first-letter'}, 8 | {name: 'bold-first-line', title: '首行加粗', classes: ':first-line'}, 9 | {name: 'focus-input', title: '表单输入框聚焦', classes: ':focus'}, 10 | {name: 'image-scale', title: '图像缩放效果', classes: ':hover'}, 11 | {name: 'image-flip', title: '背景翻转效果', classes: ':hover'}, 12 | {name: 'fix-border', title: '修正边框', classes: ':last-child'}, 13 | {name: 'table-striped', title: '表格隔行变色', classes: ':nth-child'}, 14 | {name: 'selection-style', title: '选中文本外观', classes: '::selection'}, 15 | {name: 'disabled-style', title: '禁用控件外观', classes: ':disabled'} 16 | ]}, { 17 | name: 'advance', 18 | title: '高级', 19 | items: [ 20 | {name: 'hide-empty-content', title: '隐藏空内容', classes: ':empty'}, 21 | {name: 'show-empty-links', title: '处理空链接', classes: ':empty,:after/:before', star: false}, 22 | {name: 'select-inputs', title: '选中表单控件(不包括按钮)', classes: ':not'}, 23 | {name: 'toggle-button', title: '按钮切换', classes: ':hover'}, 24 | {name: 'dropdown-menu', title: '下拉菜单', classes: ':hover'}, 25 | {name: 'triangle', title: '三角形', classes: ':before/:after'}, 26 | {name: 'dropdown-icon', title: '下拉菜单三角形图标', classes: ':before/:after'}, 27 | {name: 'chat-arrow', title: '会话箭头', classes: ':before/:after'}, 28 | {name: 'chat-arrow-with-border', title: '带边框的会话三角形', classes: ':before,:after'}, 29 | {name: 'corner-label', title: '角标', classes: ':before/:after'}, 30 | {name: 'arrow-shape', title: '箭头形状', classes: ':before,:after'}, 31 | {name: 'corner-tape', title: '切角遮挡', classes: ':before,:after', star: false}, 32 | {name: 'clearfix', title: '清除浮动', classes: ':before,:after'}, 33 | {name: 'css-tooltip', title: '纯 CSS 实现工具提示', classes: ':before/:after'}, 34 | {name: 'font-icons', title: '字体图标', classes: ':before/:after'}, 35 | {name: 'sprite-icons', title: 'Sprite 图标', classes: ':before/:after'}, 36 | {name: 'button-skin', title: '按钮交互外观', classes: ':before/:after'}, 37 | {name: 'css-shapes', title: '不规则形状', classes: ':before/:after'}, 38 | {name: 'expand-hit-area', title: '增加点击区域', classes: ':before/:after', star: false}, 39 | {name: 'css-logo', title: '绘制 Logo', classes: ':before,:after'}, 40 | {name: 'css-icons', title: '绘制图标', classes: ':before,:after', star: false}, 41 | {name: 'css-images', title: '绘制图形', classes: ':before,:after', star: false}, 42 | {name: 'css-loading-spinners', title: 'CSS loading 动画', classes: ':before,:after'}, 43 | {name: 'circle-progress-bar', title: '环形进度条', classes: ':before,:after', star: false}, 44 | {name: 'breadcumb', title: '面包屑导航', classes: ':before/:after'}, 45 | {name: 'comma-list', title: '行内逗号分割列表', classes: ':before/:after', star: false}, 46 | {name: 'corner-badge', title: '右上角徽标', classes: ':before/:after'}, 47 | {name: 'highlight-content', title: '聚焦内容', classes: ':before/:after', star: false}, 48 | {name: 'css-backdrop', title: '遮罩效果', classes: ':before/:after', star: false}, 49 | {name: 'irregular-shadow', title: '不规则阴影', classes: ':before,:after', star: false}, 50 | {name: 'top-shadow', title: '顶层内阴影', classes: ':before/:after'}, 51 | {name: 'auto-dock-bar', title: '自动隐藏 dock 栏', classes: ':hover'}, 52 | {name: 'toc-highlight', title: 'TOC 内容聚焦', classes: ':target'} 53 | ]}, { 54 | name: 'professor', 55 | title: '专家', 56 | items: [{name: 'responsive-square', title: '自适应正方形', classes: ':before/:after'}, 57 | {name: 'responsive-media', title: '等比例自适应媒体内容', classes: ':before/:after'}, 58 | {name: 'flip-card', title: '翻转卡片', classes: ':hover'}, 59 | {name: 'md-input', title: '占位标签输入框', classes: ':focus,:valid'}, 60 | {name: 'file-input-control', title: '文件上传控件外观', classes: ':before,:after', star: false}, 61 | {name: 'ratio-and-checkbox', title: '单选框和复选框外观', classes: ':checked'}, 62 | {name: 'switch', title: '开关', classes: ':checked'}, 63 | {name: 'checkbox-and-ratio-skin', title: '重置单选和复选外观', classes: ':checked,:before,:after,:focus'}, 64 | {name: 'css-tabs', title: '纯 CSS 实现标签页', classes: ':hover,:active,:checked,:nth-of-type', star: false}, 65 | {name: 'css-collapse-panel', title: '纯 CSS 实现折叠面板', classes: ':checked', star: false}, 66 | {name: 'css-carousel', title: '纯 CSS 实现轮播', classes: ':checked', star: false}, 67 | {name: 'css-modal', title: '纯 CSS 实现对话框', classes: ':checked', star: false}, 68 | {name: 'css-treeview', title: '纯 CSS 实现树形菜单', classes: ':checked', star: false 69 | }] 70 | }]; 71 | 72 | $('#lead').css('height', $(window).height()); 73 | 74 | $(function() { 75 | var $contentList = $('#contentList'); 76 | 77 | var updateContents = function() { 78 | $contentList.empty(); 79 | var index = 5; 80 | $.each(contents, function(sectionIndex, section) { 81 | var $cell = $('
'); 82 | var $tile = $cell.children('.tile'); 83 | $tile.append('
' + section.title + '
'); 84 | var $list = $('
', {id: 'section-' + section.name}).data('section', section); 85 | $.each(section.items, function(itemIndex, item) { 86 | var avatarText = index < 6 ? '1~5' : index; 87 | var $a = $('', { 88 | "data-remote": 'part/' + item.name + '.html', 89 | "href": '#' + item.name, 90 | "data-id": avatarText, 91 | 'class': 'item with-avatar multi-lines' 92 | }).data({item: item}); 93 | $a.append($('
', {'class': 'avatar rounded', 'data-skin': index}).text(avatarText)); 94 | var $content = $('
'); 95 | $content.append('
' + item.title + '
'); 96 | var $subContent = $(''); 97 | var subContent = $.map(item.classes.split(','), function(clz) { 98 | return '' + clz + ''; 99 | }); 100 | $subContent.html(subContent.join(' ')); 101 | $content.append($subContent); 102 | $a.append($content); 103 | if(item.star !== false) { 104 | $a.append(''); 105 | } 106 | $list.append($a); 107 | index++; 108 | }); 109 | $tile.append($list); 110 | $contentList.append($cell); 111 | }); 112 | }; 113 | 114 | updateContents(); 115 | 116 | $('#contentList .item > .avatar').each(function(idx) { 117 | $(this).skin({skin: idx, dark: true, hueSpace: 7}); 118 | }); 119 | 120 | var scrolling = false; 121 | var scrollToContent = function() { 122 | scrolling = true; 123 | $.scrollTo({ 124 | endY: $(window).height(), 125 | duration: 500, 126 | callback: function() { 127 | scrolling = false; 128 | } 129 | }); 130 | }; 131 | 132 | $('#scrollBtn').on($.TapName, scrollToContent); 133 | 134 | var srollCallback; 135 | $(window).on('listenScroll', function(e, isInScroll, scrollDirection, scrollTop) { 136 | if(isInScroll && scrollDirection === 'down' && scrollTop < $(window).height()/2 && !scrolling) { 137 | clearTimeout(srollCallback); 138 | srollCallback = setTimeout(scrollToContent, 100); 139 | } /* else if(isInScroll && scrollDirection === 'up' && scrollTop < $(window).height() && !scrolling) { 140 | // scrolling = true; 141 | // $.scrollTo({ 142 | // endY: 0, 143 | // duration: 500, 144 | // callback: function() { 145 | // scrolling = false; 146 | // } 147 | // }); 148 | // }*/ 149 | }); 150 | 151 | $contentList.modal({ 152 | selector: 'a.item', 153 | name: "contentModal", 154 | target: '!new', 155 | preventDefault: false, 156 | show: function(options) { 157 | console.log(options); 158 | }, 159 | remoteError: function(e, options) { 160 | console.log("无法加载:", e.responseURL); 161 | }, 162 | displayed: function(options) { 163 | var $target = options.$target; 164 | var $element = $(options.element); 165 | var $heading = $('
'); 166 | var item = $element.data('item'); 167 | $heading.append($element.find('.avatar').clone().attr('data-skin', null)); 168 | $heading.append($element.find('.content > .title').clone()); 169 | if(item.star !== false) $heading.find('.title').append('  '); 170 | $heading.append(''); 171 | $target.prepend($heading); 172 | 173 | var $magic = $('
魔法类
' + $element.find('.magic-classes').html() + '
') 174 | window.prettyPrint(); 175 | $target.children('.content').listenScroll({container: 'parent'}).prepend($magic); 176 | } 177 | }); 178 | 179 | // check window hash 180 | var hash = window.location.hash; 181 | if($.isStr(hash) && hash.length > 1) { 182 | hash = hash.substr(1); 183 | $('[href="#' + hash + '"],[data-id="' + hash + '"]').trigger($.TapName); 184 | } 185 | }); 186 | -------------------------------------------------------------------------------- /js/mzui.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * mzui - v1.0.0 - 2016-07-14 3 | * Copyright (c) 2016 cnezsoft.com; Licensed MIT 4 | */ 5 | /*! Zepto v1.1.6 - zeptojs.com/license */ 6 | var Zepto=function(){function t(t){return null==t?String(t):q[Y.call(t)]||"object"}function e(e){return"function"==t(e)}function n(t){return null!=t&&t==t.window}function r(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function i(e){return"object"==t(e)}function a(t){return i(t)&&!n(t)&&Object.getPrototypeOf(t)==Object.prototype}function o(t){return"number"==typeof t.length}function s(t){return j.call(t,function(t){return null!=t})}function l(t){return t.length>0?S.fn.concat.apply([],t):t}function c(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function u(t){return t in A?A[t]:A[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function f(t,e){return"number"!=typeof e||P[c(t)]?e:e+"px"}function p(t){var e,n;return L[t]||(e=D.createElement(t),D.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),L[t]=n),L[t]}function d(t){return"children"in t?$.call(t.children):S.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function h(t,e,n){for(C in e)n&&(a(e[C])||W(e[C]))?(a(e[C])&&!a(t[C])&&(t[C]={}),W(e[C])&&!W(t[C])&&(t[C]=[]),h(t[C],e[C],n)):e[C]!==x&&(t[C]=e[C])}function g(t,e){return null==e?S(t):S(t).filter(e)}function m(t,n,r,i){return e(n)?n.call(t,r,i):n}function v(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function y(t,e){var n=t.className||"",r=n&&n.baseVal!==x;return e===x?r?n.baseVal:n:void(r?n.baseVal=e:t.className=e)}function b(t){try{return t?"true"==t||("false"==t?!1:"null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?S.parseJSON(t):t):t}catch(e){return t}}function w(t,e){e(t);for(var n=0,r=t.childNodes.length;r>n;n++)w(t.childNodes[n],e)}var x,C,S,T,E,N,k=[],$=k.slice,j=k.filter,D=window.document,L={},A={},P={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},O=/^\s*<(\w+|!)[^>]*>/,M=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,_=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,R=/^(?:body|html)$/i,I=/([A-Z])/g,F=["val","css","html","text","data","width","height","offset"],z=["after","prepend","before","append"],H=D.createElement("table"),U=D.createElement("tr"),V={tr:D.createElement("tbody"),tbody:H,thead:H,tfoot:H,td:U,th:U,"*":D.createElement("div")},Z=/complete|loaded|interactive/,B=/^[\w-]*$/,q={},Y=q.toString,X={},G=D.createElement("div"),J={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},W=Array.isArray||function(t){return t instanceof Array};return X.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,i=t.parentNode,a=!i;return a&&(i=G).appendChild(t),r=~X.qsa(i,e).indexOf(t),a&&G.removeChild(t),r},E=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return j.call(t,function(e,n){return t.indexOf(e)==n})},X.fragment=function(t,e,n){var r,i,o;return M.test(t)&&(r=S(D.createElement(RegExp.$1))),r||(t.replace&&(t=t.replace(_,"<$1>")),e===x&&(e=O.test(t)&&RegExp.$1),e in V||(e="*"),o=V[e],o.innerHTML=""+t,r=S.each($.call(o.childNodes),function(){o.removeChild(this)})),a(n)&&(i=S(r),S.each(n,function(t,e){F.indexOf(t)>-1?i[t](e):i.attr(t,e)})),r},X.Z=function(t,e){return t=t||[],t.__proto__=S.fn,t.selector=e||"",t},X.isZ=function(t){return t instanceof X.Z},X.init=function(t,n){var r;if(!t)return X.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&O.test(t))r=X.fragment(t,RegExp.$1,n),t=null;else{if(n!==x)return S(n).find(t);r=X.qsa(D,t)}else{if(e(t))return S(D).ready(t);if(X.isZ(t))return t;if(W(t))r=s(t);else if(i(t))r=[t],t=null;else if(O.test(t))r=X.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==x)return S(n).find(t);r=X.qsa(D,t)}}return X.Z(r,t)},S=function(t,e){return X.init(t,e)},S.extend=function(t){var e,n=$.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){h(t,n,e)}),t},X.qsa=function(t,e){var n,i="#"==e[0],a=!i&&"."==e[0],o=i||a?e.slice(1):e,s=B.test(o);return r(t)&&s&&i?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType?[]:$.call(s&&!i?a?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},S.contains=D.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},S.type=t,S.isFunction=e,S.isWindow=n,S.isArray=W,S.isPlainObject=a,S.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},S.inArray=function(t,e,n){return k.indexOf.call(e,t,n)},S.camelCase=E,S.trim=function(t){return null==t?"":String.prototype.trim.call(t)},S.uuid=0,S.support={},S.expr={},S.map=function(t,e){var n,r,i,a=[];if(o(t))for(r=0;r=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return k.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return e(t)?this.not(this.not(t)):S(j.call(this,function(e){return X.matches(e,t)}))},add:function(t,e){return S(N(this.concat(S(t,e))))},is:function(t){return this.length>0&&X.matches(this[0],t)},not:function(t){var n=[];if(e(t)&&t.call!==x)this.each(function(e){t.call(this,e)||n.push(this)});else{var r="string"==typeof t?this.filter(t):o(t)&&e(t.item)?$.call(t):S(t);this.forEach(function(t){r.indexOf(t)<0&&n.push(t)})}return S(n)},has:function(t){return this.filter(function(){return i(t)?S.contains(this,t):S(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!i(t)?t:S(t)},last:function(){var t=this[this.length-1];return t&&!i(t)?t:S(t)},find:function(t){var e,n=this;return e=t?"object"==typeof t?S(t).filter(function(){var t=this;return k.some.call(n,function(e){return S.contains(e,t)})}):1==this.length?S(X.qsa(this[0],t)):this.map(function(){return X.qsa(this,t)}):S()},closest:function(t,e){var n=this[0],i=!1;for("object"==typeof t&&(i=S(t));n&&!(i?i.indexOf(n)>=0:X.matches(n,t));)n=n!==e&&!r(n)&&n.parentNode;return S(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=S.map(n,function(t){return(t=t.parentNode)&&!r(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return g(e,t)},parent:function(t){return g(N(this.pluck("parentNode")),t)},children:function(t){return g(this.map(function(){return d(this)}),t)},contents:function(){return this.map(function(){return $.call(this.childNodes)})},siblings:function(t){return g(this.map(function(t,e){return j.call(d(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return S.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=p(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var n=e(t);if(this[0]&&!n)var r=S(t).get(0),i=r.parentNode||this.length>1;return this.each(function(e){S(this).wrapAll(n?t.call(this,e):i?r.cloneNode(!0):r)})},wrapAll:function(t){if(this[0]){S(this[0]).before(t=S(t));for(var e;(e=t.children()).length;)t=e.first();S(t).append(this)}return this},wrapInner:function(t){var n=e(t);return this.each(function(e){var r=S(this),i=r.contents(),a=n?t.call(this,e):t;i.length?i.wrapAll(a):r.append(a)})},unwrap:function(){return this.parent().each(function(){S(this).replaceWith(S(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var e=S(this);(t===x?"none"==e.css("display"):t)?e.show():e.hide()})},prev:function(t){return S(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return S(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var n=this.innerHTML;S(this).empty().append(m(this,t,e,n))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=m(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this[0].textContent:null},attr:function(t,e){var n;return"string"!=typeof t||1 in arguments?this.each(function(n){if(1===this.nodeType)if(i(t))for(C in t)v(this,C,t[C]);else v(this,t,m(this,e,n,this.getAttribute(t)))}):this.length&&1===this[0].nodeType?!(n=this[0].getAttribute(t))&&t in this[0]?this[0][t]:n:x},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){v(this,t)},this)})},prop:function(t,e){return t=J[t]||t,1 in arguments?this.each(function(n){this[t]=m(this,e,n,this[t])}):this[0]&&this[0][t]},data:function(t,e){var n="data-"+t.replace(I,"-$1").toLowerCase(),r=1 in arguments?this.attr(n,e):this.attr(n);return null!==r?b(r):x},val:function(t){return 0 in arguments?this.each(function(e){this.value=m(this,t,e,this.value)}):this[0]&&(this[0].multiple?S(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each(function(e){var n=S(this),r=m(this,t,e,n.offset()),i=n.offsetParent().offset(),a={top:r.top-i.top,left:r.left-i.left};"static"==n.css("position")&&(a.position="relative"),n.css(a)});if(!this.length)return null;var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(e,n){if(arguments.length<2){var r,i=this[0];if(!i)return;if(r=getComputedStyle(i,""),"string"==typeof e)return i.style[E(e)]||r.getPropertyValue(e);if(W(e)){var a={};return S.each(e,function(t,e){a[e]=i.style[E(e)]||r.getPropertyValue(e)}),a}}var o="";if("string"==t(e))n||0===n?o=c(e)+":"+f(e,n):this.each(function(){this.style.removeProperty(c(e))});else for(C in e)e[C]||0===e[C]?o+=c(C)+":"+f(C,e[C])+";":this.each(function(){this.style.removeProperty(c(C))});return this.each(function(){this.style.cssText+=";"+o})},index:function(t){return t?this.indexOf(S(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return t?k.some.call(this,function(t){return this.test(y(t))},u(t)):!1},addClass:function(t){return t?this.each(function(e){if("className"in this){T=[];var n=y(this),r=m(this,t,e,n);r.split(/\s+/g).forEach(function(t){S(this).hasClass(t)||T.push(t)},this),T.length&&y(this,n+(n?" ":"")+T.join(" "))}}):this},removeClass:function(t){return this.each(function(e){if("className"in this){if(t===x)return y(this,"");T=y(this),m(this,t,e,T).split(/\s+/g).forEach(function(t){T=T.replace(u(t)," ")}),y(this,T.trim())}})},toggleClass:function(t,e){return t?this.each(function(n){var r=S(this),i=m(this,t,n,y(this));i.split(/\s+/g).forEach(function(t){(e===x?!r.hasClass(t):e)?r.addClass(t):r.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var e="scrollTop"in this[0];return t===x?e?this[0].scrollTop:this[0].pageYOffset:this.each(e?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var e="scrollLeft"in this[0];return t===x?e?this[0].scrollLeft:this[0].pageXOffset:this.each(e?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),r=R.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(S(t).css("margin-top"))||0,n.left-=parseFloat(S(t).css("margin-left"))||0,r.top+=parseFloat(S(e[0]).css("border-top-width"))||0,r.left+=parseFloat(S(e[0]).css("border-left-width"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||D.body;t&&!R.test(t.nodeName)&&"static"==S(t).css("position");)t=t.offsetParent;return t})}},S.fn.detach=S.fn.remove,["width","height"].forEach(function(t){var e=t.replace(/./,function(t){return t[0].toUpperCase()});S.fn[t]=function(i){var a,o=this[0];return i===x?n(o)?o["inner"+e]:r(o)?o.documentElement["scroll"+e]:(a=this.offset())&&a[t]:this.each(function(e){o=S(this),o.css(t,m(this,i,e,o[t]()))})}}),z.forEach(function(e,n){var r=n%2;S.fn[e]=function(){var e,i,a=S.map(arguments,function(n){return e=t(n),"object"==e||"array"==e||null==n?n:X.fragment(n)}),o=this.length>1;return a.length<1?this:this.each(function(t,e){i=r?e:e.parentNode,e=0==n?e.nextSibling:1==n?e.firstChild:2==n?e:null;var s=S.contains(D.documentElement,i);a.forEach(function(t){if(o)t=t.cloneNode(!0);else if(!i)return S(t).remove();i.insertBefore(t,e),s&&w(t,function(t){null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src||window.eval.call(window,t.innerHTML)})})})},S.fn[r?e+"To":"insert"+(n?"Before":"After")]=function(t){return S(t)[e](this),this}}),X.Z.prototype=S.fn,X.uniq=N,X.deserializeValue=b,S.zepto=X,S}();window.Zepto=Zepto,void 0===window.$&&(window.$=Zepto),function(t){function e(t){return t._zid||(t._zid=p++)}function n(t,n,a,o){if(n=r(n),n.ns)var s=i(n.ns);return(m[e(t)]||[]).filter(function(t){return t&&(!n.e||t.e==n.e)&&(!n.ns||s.test(t.ns))&&(!a||e(t.fn)===e(a))&&(!o||t.sel==o)})}function r(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function i(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function a(t,e){return t.del&&!y&&t.e in b||!!e}function o(t){return w[t]||y&&b[t]||t}function s(n,i,s,l,u,p,d){var h=e(n),g=m[h]||(m[h]=[]);i.split(/\s/).forEach(function(e){if("ready"==e)return t(document).ready(s);var i=r(e);i.fn=s,i.sel=u,i.e in w&&(s=function(e){var n=e.relatedTarget;return!n||n!==this&&!t.contains(this,n)?i.fn.apply(this,arguments):void 0}),i.del=p;var h=p||s;i.proxy=function(t){if(t=c(t),!t.isImmediatePropagationStopped()){t.data=l;var e=h.apply(n,t._args==f?[t]:[t].concat(t._args));return e===!1&&(t.preventDefault(),t.stopPropagation()),e}},i.i=g.length,g.push(i),"addEventListener"in n&&n.addEventListener(o(i.e),i.proxy,a(i,d))})}function l(t,r,i,s,l){var c=e(t);(r||"").split(/\s/).forEach(function(e){n(t,e,i,s).forEach(function(e){delete m[c][e.i],"removeEventListener"in t&&t.removeEventListener(o(e.e),e.proxy,a(e,l))})})}function c(e,n){return!n&&e.isDefaultPrevented||(n||(n=e),t.each(T,function(t,r){var i=n[t];e[t]=function(){return this[r]=x,i&&i.apply(n,arguments)},e[r]=C}),(n.defaultPrevented!==f?n.defaultPrevented:"returnValue"in n?n.returnValue===!1:n.getPreventDefault&&n.getPreventDefault())&&(e.isDefaultPrevented=x)),e}function u(t){var e,n={originalEvent:t};for(e in t)S.test(e)||t[e]===f||(n[e]=t[e]);return c(n,t)}var f,p=1,d=Array.prototype.slice,h=t.isFunction,g=function(t){return"string"==typeof t},m={},v={},y="onfocusin"in window,b={focus:"focusin",blur:"focusout"},w={mouseenter:"mouseover",mouseleave:"mouseout"};v.click=v.mousedown=v.mouseup=v.mousemove="MouseEvents",t.event={add:s,remove:l},t.proxy=function(n,r){var i=2 in arguments&&d.call(arguments,2);if(h(n)){var a=function(){return n.apply(r,i?i.concat(d.call(arguments)):arguments)};return a._zid=e(n),a}if(g(r))return i?(i.unshift(n[r],n),t.proxy.apply(null,i)):t.proxy(n[r],n);throw new TypeError("expected function")},t.fn.bind=function(t,e,n){return this.on(t,e,n)},t.fn.unbind=function(t,e){return this.off(t,e)},t.fn.one=function(t,e,n,r){return this.on(t,e,n,r,1)};var x=function(){return!0},C=function(){return!1},S=/^([A-Z]|returnValue$|layer[XY]$)/,T={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(t,e,n){return this.on(e,t,n)},t.fn.undelegate=function(t,e,n){return this.off(e,t,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,n,r,i,a){var o,c,p=this;return e&&!g(e)?(t.each(e,function(t,e){p.on(t,n,r,e,a)}),p):(g(n)||h(i)||i===!1||(i=r,r=n,n=f),(h(r)||r===!1)&&(i=r,r=f),i===!1&&(i=C),p.each(function(f,p){a&&(o=function(t){return l(p,t.type,i),i.apply(this,arguments)}),n&&(c=function(e){var r,a=t(e.target).closest(n,p).get(0);return a&&a!==p?(r=t.extend(u(e),{currentTarget:a,liveFired:p}),(o||i).apply(a,[r].concat(d.call(arguments,1)))):void 0}),s(p,e,i,r,n,c||o)}))},t.fn.off=function(e,n,r){var i=this;return e&&!g(e)?(t.each(e,function(t,e){i.off(t,n,e)}),i):(g(n)||h(r)||r===!1||(r=n,n=f),r===!1&&(r=C),i.each(function(){l(this,e,r,n)}))},t.fn.trigger=function(e,n){return e=g(e)||t.isPlainObject(e)?t.Event(e):c(e),e._args=n,this.each(function(){e.type in b&&"function"==typeof this[e.type]?this[e.type]():"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)})},t.fn.triggerHandler=function(e,r){var i,a;return this.each(function(o,s){i=u(g(e)?t.Event(e):e),i._args=r,i.target=s,t.each(n(s,e.type||e),function(t,e){return a=e.proxy(i),i.isImmediatePropagationStopped()?!1:void 0})}),a},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return 0 in arguments?this.bind(e,t):this.trigger(e)}}),t.Event=function(t,e){g(t)||(e=t,t=e.type);var n=document.createEvent(v[t]||"Events"),r=!0;if(e)for(var i in e)"bubbles"==i?r=!!e[i]:n[i]=e[i];return n.initEvent(t,r,!0),c(n)}}(Zepto),function(t){function e(t,e,n,r){return Math.abs(t-e)>=Math.abs(n-r)?t-e>0?"Left":"Right":n-r>0?"Up":"Down"}function n(){u=null,p.last&&(p.el.trigger("longTap"),p={})}function r(){u&&clearTimeout(u),u=null}function i(){s&&clearTimeout(s),l&&clearTimeout(l),c&&clearTimeout(c),u&&clearTimeout(u),s=l=c=u=null,p={}}function a(t){return("touch"==t.pointerType||t.pointerType==t.MSPOINTER_TYPE_TOUCH)&&t.isPrimary}function o(t,e){return t.type=="pointer"+e||t.type.toLowerCase()=="mspointer"+e}var s,l,c,u,f,p={},d=750;t(document).ready(function(){var h,g,m,v,y=0,b=0;"MSGesture"in window&&(f=new MSGesture,f.target=document.body),t(document).bind("MSGestureEnd",function(t){var e=t.velocityX>1?"Right":t.velocityX<-1?"Left":t.velocityY>1?"Down":t.velocityY<-1?"Up":null;e&&(p.el.trigger("swipe"),p.el.trigger("swipe"+e))}).on("touchstart MSPointerDown pointerdown",function(e){(v=o(e,"down"))&&!a(e)||(m=v?e:e.touches[0],e.touches&&1===e.touches.length&&p.x2&&(p.x2=void 0,p.y2=void 0),h=Date.now(),g=h-(p.last||h),p.el=t("tagName"in m.target?m.target:m.target.parentNode),s&&clearTimeout(s),p.x1=m.pageX,p.y1=m.pageY,g>0&&250>=g&&(p.isDoubleTap=!0),p.last=h,u=setTimeout(n,d),f&&v&&f.addPointer(e.pointerId))}).on("touchmove MSPointerMove pointermove",function(t){(v=o(t,"move"))&&!a(t)||(m=v?t:t.touches[0],r(),p.x2=m.pageX,p.y2=m.pageY,y+=Math.abs(p.x1-p.x2),b+=Math.abs(p.y1-p.y2))}).on("touchend MSPointerUp pointerup",function(n){(v=o(n,"up"))&&!a(n)||(r(),p.x2&&Math.abs(p.x1-p.x2)>30||p.y2&&Math.abs(p.y1-p.y2)>30?c=setTimeout(function(){p.el.trigger("swipe"),p.el.trigger("swipe"+e(p.x1,p.x2,p.y1,p.y2)),p={}},0):"last"in p&&(30>y&&30>b?l=setTimeout(function(){var e=t.Event("tap");e.cancelTouch=i,p.el.trigger(e),p.isDoubleTap?(p.el&&p.el.trigger("doubleTap"),p={}):s=setTimeout(function(){s=null,p.el&&p.el.trigger("singleTap"),p={}},250)},0):p={}),y=b=0)}).on("touchcancel MSPointerCancel pointercancel",i),t(window).on("scroll",i)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(e){t.fn[e]=function(t){return this.on(e,t)}})}(Zepto),function(t){function e(e,r){var l=e[s],c=l&&i[l];if(void 0===r)return c||n(e);if(c){if(r in c)return c[r];var u=o(r);if(u in c)return c[u]}return a.call(t(e),r)}function n(e,n,a){var l=e[s]||(e[s]=++t.uuid),c=i[l]||(i[l]=r(e));return void 0!==n&&(c[o(n)]=a),c}function r(e){var n={};return t.each(e.attributes||l,function(e,r){0==r.name.indexOf("data-")&&(n[o(r.name.replace("data-",""))]=t.zepto.deserializeValue(r.value))}),n}var i={},a=t.fn.data,o=t.camelCase,s=t.expando="Zepto"+ +new Date,l=[];t.fn.data=function(r,i){return void 0===i?t.isPlainObject(r)?this.each(function(e,i){t.each(r,function(t,e){n(i,t,e)})}):0 in this?e(this[0],r):void 0:this.each(function(){n(this,r,i)})},t.fn.removeData=function(e){return"string"==typeof e&&(e=e.split(/\s+/)),this.each(function(){var n=this[s],r=n&&i[n];r&&t.each(e||r,function(t){delete r[e?o(this):t]})})},["remove","empty"].forEach(function(e){var n=t.fn[e];t.fn[e]=function(){var t=this.find("*");return"remove"===e&&(t=t.add(this)),t.removeData(),n.call(this)}})}(Zepto),function(t){var e={endY:0,duration:200,updateRate:15},n=function(t,e,n){return t+(e-t)*n},r=function(t){return-Math.cos(t*Math.PI)/2+.5},i=function(i){var a=t.extend({},e,i);if(0===a.duration)return window.scrollTo(0,a.endY),void("function"==typeof a.callback&&a.callback());var o=window.pageYOffset,s=Date.now(),l=s+a.duration,c=function(){var t=Date.now(),e=t>l?1:(t-s)/a.duration;window.scrollTo(0,n(o,a.endY,r(e))),l>t?setTimeout(c,a.updateRate):"function"==typeof a.callback&&a.callback()};c()},a=function(i){var a=t.extend({},e,i);if(0===a.duration)return this.scrollTop=a.endY,void("function"==typeof a.callback&&a.callback());var o=this.scrollTop,s=Date.now(),l=s+a.duration,c=this,u=function(){var t=Date.now(),e=t>l?1:(t-s)/a.duration;c.scrollTop=n(o,a.endY,r(e)),l>t?setTimeout(u,a.updateRate):"function"==typeof a.callback&&a.callback()};u()};t.scrollTo=i,t.fn.scrollTo=function(){if(this.length){var t=arguments;this.forEach(function(e,n){a.apply(e,t)})}}}(Zepto),function(t){function e(e,n,r){var i=t.Event(n);return t(e).trigger(i,r),!i.isDefaultPrevented()}function n(t,n,r,i){return t.global?e(n||y,r,i):void 0}function r(e){e.global&&0===t.active++&&n(e,null,"ajaxStart")}function i(e){e.global&&!--t.active&&n(e,null,"ajaxStop")}function a(t,e){var r=e.context;return e.beforeSend.call(r,t,e)===!1||n(e,r,"ajaxBeforeSend",[t,e])===!1?!1:void n(e,r,"ajaxSend",[t,e])}function o(t,e,r,i){var a=r.context,o="success";r.success.call(a,t,o,e),i&&i.resolveWith(a,[t,o,e]),n(r,a,"ajaxSuccess",[e,r,t]),l(o,e,r)}function s(t,e,r,i,a){var o=i.context;i.error.call(o,r,e,t),a&&a.rejectWith(o,[r,e,t]),n(i,o,"ajaxError",[r,i,t||e]),l(e,r,i)}function l(t,e,r){var a=r.context;r.complete.call(a,e,t),n(r,a,"ajaxComplete",[e,r]),i(r)}function c(){}function u(t){return t&&(t=t.split(";",2)[0]),t&&(t==S?"html":t==C?"json":w.test(t)?"script":x.test(t)&&"xml")||"text"}function f(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function p(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()||(e.url=f(e.url,e.data),e.data=void 0)}function d(e,n,r,i){return t.isFunction(n)&&(i=r,r=n,n=void 0),t.isFunction(r)||(i=r,r=void 0),{url:e,data:n,success:r,dataType:i}}function h(e,n,r,i){var a,o=t.isArray(n),s=t.isPlainObject(n);t.each(n,function(n,l){a=t.type(l),i&&(n=r?i:i+"["+(s||"object"==a||"array"==a?n:"")+"]"),!i&&o?e.add(l.name,l.value):"array"==a||!r&&"object"==a?h(e,l,r,n):e.add(n,l)})}var g,m,v=0,y=window.document,b=/)<[^<]*)*<\/script>/gi,w=/^(?:text|application)\/javascript/i,x=/^(?:text|application)\/xml/i,C="application/json",S="text/html",T=/^\s*$/,E=y.createElement("a");E.href=window.location.href,t.active=0,t.ajaxJSONP=function(e,n){if(!("type"in e))return t.ajax(e);var r,i,l=e.jsonpCallback,c=(t.isFunction(l)?l():l)||"jsonp"+ ++v,u=y.createElement("script"),f=window[c],p=function(e){t(u).triggerHandler("error",e||"abort")},d={abort:p};return n&&n.promise(d),t(u).on("load error",function(a,l){clearTimeout(i),t(u).off().remove(),"error"!=a.type&&r?o(r[0],d,e,n):s(null,l||"error",d,e,n),window[c]=f,r&&t.isFunction(f)&&f(r[0]),f=r=void 0}),a(d,e)===!1?(p("abort"),d):(window[c]=function(){r=arguments},u.src=e.url.replace(/\?(.+)=\?/,"?$1="+c),y.head.appendChild(u),e.timeout>0&&(i=setTimeout(function(){p("timeout")},e.timeout)),d)},t.ajaxSettings={type:"GET",beforeSend:c,success:c,error:c,complete:c,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:C,xml:"application/xml, text/xml",html:S,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},t.ajax=function(e){var n,i=t.extend({},e||{}),l=t.Deferred&&t.Deferred();for(g in t.ajaxSettings)void 0===i[g]&&(i[g]=t.ajaxSettings[g]);r(i),i.crossDomain||(n=y.createElement("a"),n.href=i.url,n.href=n.href,i.crossDomain=E.protocol+"//"+E.host!=n.protocol+"//"+n.host),i.url||(i.url=window.location.toString()),p(i);var d=i.dataType,h=/\?.+=\?/.test(i.url);if(h&&(d="jsonp"),i.cache!==!1&&(e&&e.cache===!0||"script"!=d&&"jsonp"!=d)||(i.url=f(i.url,"_="+Date.now())),"jsonp"==d)return h||(i.url=f(i.url,i.jsonp?i.jsonp+"=?":i.jsonp===!1?"":"callback=?")),t.ajaxJSONP(i,l);var v,b=i.accepts[d],w={},x=function(t,e){w[t.toLowerCase()]=[t,e]},C=/^([\w-]+:)\/\//.test(i.url)?RegExp.$1:window.location.protocol,S=i.xhr(),N=S.setRequestHeader;if(l&&l.promise(S),i.crossDomain||x("X-Requested-With","XMLHttpRequest"),x("Accept",b||"*/*"),(b=i.mimeType||b)&&(b.indexOf(",")>-1&&(b=b.split(",",2)[0]),S.overrideMimeType&&S.overrideMimeType(b)),(i.contentType||i.contentType!==!1&&i.data&&"GET"!=i.type.toUpperCase())&&x("Content-Type",i.contentType||"application/x-www-form-urlencoded"),i.headers)for(m in i.headers)x(m,i.headers[m]);if(S.setRequestHeader=x,S.onreadystatechange=function(){if(4==S.readyState){S.onreadystatechange=c,clearTimeout(v);var e,n=!1;if(S.status>=200&&S.status<300||304==S.status||0==S.status&&"file:"==C){d=d||u(i.mimeType||S.getResponseHeader("content-type")),e=S.responseText;try{"script"==d?(0,eval)(e):"xml"==d?e=S.responseXML:"json"==d&&(e=T.test(e)?null:t.parseJSON(e))}catch(r){n=r}n?s(n,"parsererror",S,i,l):o(e,S,i,l)}else s(S.statusText||null,S.status?"error":"abort",S,i,l)}},a(S,i)===!1)return S.abort(),s(null,"abort",S,i,l),S;if(i.xhrFields)for(m in i.xhrFields)S[m]=i.xhrFields[m];var k="async"in i?i.async:!0;S.open(i.type,i.url,k,i.username,i.password);for(m in w)N.apply(S,w[m]);return i.timeout>0&&(v=setTimeout(function(){S.onreadystatechange=c,S.abort(),s(null,"timeout",S,i,l)},i.timeout)),S.send(i.data?i.data:null),S},t.get=function(){return t.ajax(d.apply(null,arguments))},t.post=function(){var e=d.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=d.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,r){if(!this.length)return this;var i,a=this,o=e.split(/\s/),s=d(e,n,r),l=s.success;return o.length>1&&(s.url=o[0],i=o[1]),s.success=function(e){a.html(i?t("
").html(e.replace(b,"")).find(i):e),l&&l.apply(a,arguments)},t.ajax(s),this};var N=encodeURIComponent;t.param=function(e,n){var r=[];return r.add=function(e,n){t.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(N(e)+"="+N(n))},h(r,e,n),r.join("&").replace(/%20/g,"+")}}(Zepto),window.CoreLib=window.jQuery||window.Zepto,!function(t){"use strict";t.callEvent=function(e,n,r,i,a){var o,s=t.Event(e);return i&&(t(i).trigger(s,a),o=s.result),t.isFunction(n)&&(o=n.apply(r,t.isArray(a)?a:[a])),o},t.fn.callEvent=function(e,n,r){return t.callEvent(n,e.options?e.options[n]:null,e,this,r)},t.bindFn=function(e,n,r){var i=t.fn[e],a=n.NAME||"mzui."+e;t.fn[e]=function(e,i){return this.each(function(){var o=t(this),s=o.data(a),l="object"==typeof e&&e;r&&(l=t.extend(l,r)),s||o.data(a,s=new n(o,l)),"string"==typeof e&&s[e].apply(s,t.isArray(i)?i:[i])})},t.fn[e].Constructor=n,t.fn[e].noConflict=function(){return t.fn[e]=i,this}},t.formatDate=function(t,e){t instanceof Date||(t=new Date(t));var n={"M+":t.getMonth()+1,"d+":t.getDate(),"h+":t.getHours(),"m+":t.getMinutes(),"s+":t.getSeconds(),"S+":t.getMilliseconds()};/(y+)/i.test(e)&&(e=e.replace(RegExp.$1,(t.getFullYear()+"").substr(4-RegExp.$1.length)));for(var r in n)new RegExp("("+r+")").test(e)&&(e=e.replace(RegExp.$1,1==RegExp.$1.length?n[r]:("00"+n[r]).substr((""+n[r]).length)));return e},t.format=function(e,n){if(e instanceof Date)return t.formatDate(e,n);if(arguments.length>1){var r;if(2==arguments.length&&"object"==typeof n)for(var i in n)void 0!==n[i]&&(r=new RegExp("({"+i+"})","g"),e=e.replace(r,n[i]));else for(var a=1;a',{id:i});var c=t("#"+a);c.length||(c=t('
',{id:a}).appendTo(u)),e.layer=e.container=c.append(r)}else"!self"===r&&(r=e.element||n.$);return r=t(r).addClass(o).attr("data-"+o+"-name",e.name),r.parent().length||r.appendTo(e.container),r.data(s)||r.data(s,r.attr("class")),r},h.prototype.update=function(e,n,i,a){var s=this,l=function(r){var i=n.template;t.isFunction(i)?r=i(r,n):t.isStr(i)&&(r=t.format(i,r)),r!==!1&&(t.is$(r)?e.empty().append(r):e["text"===n.contentType?"text":"html"](r))},f=t.calValue(n.remote,s,n);if(f){var p=t.uuid++,d=n.loadingClass;e.removeClass(n.showInClass).addClass(d),t(u).addClass("has-"+o+"-"+c),n.$backdrop&&n.$backdrop.addClass(d);var h=t.isStr(f)?{url:f}:f;s.xhr&&s.xhr.abort(),s.remoteCall=p,s.xhr=t.ajax(t.extend({dataType:n.remoteType||"html",error:n.remoteError},h,{success:function(t,e,n){l(t),h.success&&h.success(t,e,n)},complete:function(i,l){s.xhr=0,s.remoteCall===p&&(s.lastRemote!==f&&(t(n.container).scrollTop(0), 7 | s.lastRemote=f),e.removeClass(d).addClass(n.showInClass),t(u).removeClass("has-"+o+"-"+c),n.$backdrop&&n.$backdrop.removeClass(d),t.callEvent("loaded",n.loaded,s,s.$,n),t(r).triggerHandler(o+".loaded",[s,s.$,n]),h.complete&&h.complete(i,l),a&&a())}}))}else{var g=t.calValue(n.content,s,n),m=n.source;m&&(m=t(t.calValue(m,s,n)),m=m.parent().length?m.clone():m,g=g?m.html(g):m),l(g),a&&a()}i&&i(f)},h.prototype._getOptions=function(e){var n=this,r=t.extend({},n.options,e),i=r.display;return i&&h.plugs[i]&&(r=t.calValue(h.plugs[i],n,r)),r.$target||(r.$target=n._getTarget(r)),r},h.prototype.show=function(e,n){t.isFunction(e)&&(n=e,e=null);var c=this,p=c._getOptions(e);c.last=p;var g=p.$target,m=p.activeClass,v=p.animate,y=p.element,b=p.placement,w=p.layer,x="",C="",S=p.name,T=p.arrow,E=p.backdrop,N=t(y);if(g.attr("class","invisible "+g.data(s)+" "+(p.targetClass||"")).removeClass(l),t.callEvent("show",p.show,c,c.$,p)===!1)return g.attr("class",s),p.layer&&p.layer.remove(),n&&n();if(p.showSingle&&(p.showSingle===!0?g.parent().children():t(p.showSingle)).not(g).removeClass(p.showInClass).addClass(l),w&&w.removeClass(l),E){var k="backdrop-"+S;t("#"+k).remove();var $=p.$backdrop=t('
',{id:k,type:p.display,"data-display-name":S}).appendTo(u).css("zIndex",i++);E===!0&&(E="fade"),t.isStr(E)&&$.addClass(E),t(u).addClass("display-show-"+p.name),setTimeout(function(){$.addClass("in")},10),p.backdropDismiss&&$.attr("data-dismiss",o)}"none"!==p.targetZIndex&&(w||g).css("zIndex",p.targetZIndex||i++),m&&y&&(p.activeSingle&&N.parent().children().removeClass(m),N.addClass(m)),c.update(g,p,function(e){if(p.scrollTop&&t(p.container).scrollTop(0),b=t.calValue(b,c,p)){t.isStr(b)&&"{"==b[0]&&(b=t.parseJSON(b));var i=t("body");if(t.isPlainObject(b))g.css(b);else if("overlay"===b){var s=N.offset();g.css({position:"absolute",left:s.left-(p.layer?i.scrollLeft():0),top:s.top-(p.layer?i.scrollTop():0),width:N.width(),height:N.height()})}else if(0===b.indexOf("beside")){g.css({position:"absolute"}),b=b.split("-");var l,u,h=b[1]||"auto",m=b[2]||"center",s=N.offset(),y=s.top-(p.layer?i.scrollTop():0),S=s.left-(p.layer?i.scrollLeft():0),E=N.width(),k=N.height(),$=g.width(),j=g.height(),D=t(r).width(),L=t(r).height(),A="start"===m,P="end"===m;"auto"===h&&(h=L>=y+k+j?"bottom":y>=j?"top":D>=S+E+$?"right":S>=$?"left":"bottom");var O=A?S:P?S+E:S+E/2-$/2,M=A?y:P?y+k:y+k/2-j/2;"bottom"===h?(u=y+k,l=O):"top"===h?(u=y-j,l=O):"right"===h?(u=M,l=S+E):(u=M,l=S-$),g.css({top:Math.max(0,Math.min(u,L-j)),left:Math.max(0,Math.min(l,D-$))}),C=d[h],x="fade scale-from-"+C}else{b=b.split("-");var _=b[0],R=b[1],I={};"top"!=_&&"bottom"!=_&&"left"!=_&&"right"!=_||(I.justifyContent="flex-"+("top"===_||"left"==_?"start":"end"),I.flexDirection="top"==_||"bottom"==_?"column":"row",I.alignItems=R?"center"==R?"center":"left"==R?"flex-start":"flex-end":"stretch"),w&&w.css(I),x=_,C=d[x],x="from-"+x}}if(T){var F="display-arrow arrow-"+C;t.isStr(T)&&(F+=" "+T),g.addClass(F)}var z=function(){g.removeClass("invisible"),e||g.addClass(p.showInClass),n&&n();var i=p.autoHide;i&&(c.animateCall=setTimeout(function(){c.hide()},t.isNum(i)?i:5e3)),c.animateCall=setTimeout(function(){t.callEvent("shown",p.shown,c,c.$,p),t(r).triggerHandler(o+".shown",[c,c.$,p])},p.duration+50),p.targetDismiss&&g.one((p.targetDismiss===!0?a:p.targetDismiss)+f,function(){c.hide()})};v?(v===!0?g.addClass(x?"enter-"+x:"fade"):t.isStr(v)?g.addClass(v.replace("suggest",x)):t.isNum(v)&&(p.duration=v),clearTimeout(c.animateCall),c.animateCall=setTimeout(z,10)):z()},function(){t.callEvent("displayed",p.displayed,c,c.$,p),t(r).triggerHandler(o+".displayed",[c,c.$,p]),p.plugSkin&&g.find("[data-skin]").skin(),p.plugDisplay&&g.find("[data-"+o+"]").display(),t.fn.listenScroll&&g.find(".listen-scroll").listenScroll()}),h.last=S,h.all[S]=c},h.prototype.hide=function(e,n){t.isFunction(e)&&(n=e,e=null);var i=this,a=i.last||i._getOptions(e);if(t.callEvent("hide",a.hide,i,i.$,a)===!1)return n&&n();i.last=!1;var s=a.$target.off(f),c=t("#backdrop-"+a.name),p=function(){a.layer&&a.layer.addClass(l),t.callEvent(l,a[l],i,i.$,a),t(r).triggerHandler(o+"."+l,[i,i.$,a]),s.addClass(l),c.remove(),t(u).removeClass(o+"-show-"+a.name),a.layer&&a.layer.remove()};a.activeClass&&a.element&&t(a.element).removeClass(a.activeClass),s.removeClass(a.showInClass),c.removeClass("in"),a.animate?(clearTimeout(i.animateCall),i.animateCall=setTimeout(p,a.duration+50)):p()},h.prototype.isShow=function(e){return e=this._getOptions(e),e.checkShow?t.calValue(e.checkShow,this,e):e.$target?e.$target.hasClass(e.showInClass):e.last},h.prototype.toggle=function(e,n){var r;e===!0||e===!1?(r=e,e=t.isPlainObject(n)?n:null,e&&(n=null)):r=this.isShow(e),this[r?"hide":"show"](e,n)},h.NAME=p,h.DEFAULT={trigger:a,triggerMethod:"show",container:u,plugSkin:!0,plugDisplay:!0,content:!1,loadingClass:c,showInClass:"in",animate:!0,duration:300,keyboard:!0,backdropDismiss:!0,activeSingle:!0},h.plugs=function(e,n,r){if(t.isPlainObject(e))t.each(e,h.plugs);else{if(!n)return h.plugs[e];h.plugs[e]=n,e=0===e.indexOf("_")?e.substr(1):e,t.fn[e]||r===!1||t.bindFn(r||e,h,{display:e})}},h.all={},h.dismiss=function(e,n){t.isFunction(e)&&(n=e,e=""),e=e||h.last;var r=h.all[e];r&&r.hide(n)},t.bindFn(o,h),t.Display=h,t(function(){t("[data-"+o+"]").display(),t(r).on(a,'[data-dismiss="'+o+'"]',function(){var e=t(this),n="data-"+o+"-name";name=e.attr(n),name&&"null"!=name||(name=e.closest("."+o).attr(n)),h.dismiss(name)})})}(CoreLib,void 0,window,document),!function(t,e){"use strict";if(!t.Display)return void console.error("display.plugs.js requires display.js");var n=function(e,n,r,i,a){var o=t(n).next("."+e);return o.length||(o=r),o||'
'},r=function(t,n){return t===e?n:t};t.Display.plugs({dropdown:function(e){var i=e.source;return t.extend(e,{backdrop:r(e.backdrop,"clean"),source:e.target?null:function(){return n("dropdown-menu",e.element,i)},target:r(e.target,"!new"),placement:r(e.placement,"beside"),activeClass:r(e.activeClass,"open"),targetDismiss:r(e.targetDismiss,!0)})},popover:function(e){var i=e.source;return t.extend(e,{arrow:r(e.arrow,!0),backdrop:r(e.backdrop,"clean"),source:e.target?null:function(){return n("popover",e.element,i,"canvas with-padding")},target:r(e.target,"!new"),placement:r(e.placement,"beside"),activeClass:r(e.activeClass,"open")})},messager:function(n){return t.extend(n,{autoHide:r(n.autoHide,!0),animate:n.animate===e||n.animate===!0?"scale-suggest fade":n.animate,closeButton:r(n.closeButton,!0),template:function(e,n){var r=t(n.source||'
');return n.icon&&r.append('
'),r.append('
'+e+"
"),n.closeButton&&r.append(''),r.addClass(n.type||"gray")},target:"!new",placement:r(n.placement,"bottom-center"),activeClass:r(n.activeClass,"open")})},modal:function(e){var i=e.source;return t.extend(e,{backdrop:r(e.backdrop,"modal-backdrop fade"),source:e.target?null:function(){return n("modal",e.element,i,"","content")},target:r(e.target,"!new"),targetClass:"modal "+(e.targetClass||""),placement:r(e.placement,"tap"===t.TapName?"bottom":"center"),activeClass:r(e.activeClass,"open")})},_collapse:function(e){return t.extend(e,{triggerMethod:"toggle",animate:!1,showInClass:"in",activeClass:"collapse-open",showSingle:r(e.group||e.showSingle,e.selector?"collapse-group-"+ ++t.uuid:!1)})}}),t.Display.plugs("_self",function(e){return t.extend(e,{trigger:!1,target:"!self",targetZIndex:"none",displayAuto:r(e.displayAuto,!0)})},"displaySelf");var i=new t.Display({display:"messager"});i._show=i.show,i.show=function(e,n){i._show(t.extend({content:e},n))},t.each({primary:0,success:"ok-sign",info:"info-sign",warning:"warning-sign",danger:"exclamation-sign",important:0,special:0},function(e,n){i[e]=function(r,a){i._show(t.extend({content:r,icon:n||null,type:e},a))}}),t.messager=i}(CoreLib,void 0),!function(t){"use strict";var e="mzui.scrollListener",n=function(r,i){var a=this;a.options=i=t.extend({},n.DEFAULT,r.data(),i),a.$=r,a.$container=i.container?"parent"==i.container?a.$.parent():t(i.container):a.$,a.lastScrollTop=0,a.lastCallTime=0;var o=0;if(r.on("scroll."+e,function(){clearTimeout(o);var t=(new Date).getTime();o=setTimeout(function(){a.onScroll(),a.lastCallTime=t},t-a.lastCallTime>i.handleInterval?0:i.handleInterval)}),i.canScrollClass){var s=(a.$[0]===window?t("body"):a.$)[0].scrollHeight;a.$container.toggleClass(i.canScrollClass,s>a.$.height())}};n.prototype.onScroll=function(){var t=this,e=t.options,n=t.$.scrollTop(),r=n>0,i=n>t.lastScrollTop?"down":"up";t.$container.toggleClass(e.inScrollClass,r).toggleClass(e.directionClass+"-down","down"===i).toggleClass(e.directionClass+"-up","up"===i).toggleClass(e.directionClass+"-over",n+t.$.height()>=t.$[0].scrollHeight),t.$container.callEvent(t,"listenScroll",[r,i,n]),t.isInScroll=r,t.scrollDirection=i,t.lastScrollTop=n},n.NAME=e,n.DEFAULT={minDelta:20,handleInterval:100,inScrollClass:"in-scroll",directionClass:"scroll",canScrollClass:"can-scroll"},t.bindFn("listenScroll",n),t(function(){t(window).listenScroll({container:"body"}),t(".listen-scroll").listenScroll()})}(CoreLib),!function(t,e,n){"use strict";function r(t){if(t=t.toLowerCase(),t&&c.test(t)){var e;if(4===t.length){var n="#";for(e=1;4>e;e+=1)n+=t.slice(e,e+1).concat(t.slice(e,e+1));t=n}var r=[];for(e=1;7>e;e+=2)r.push(v("0x"+t.slice(e,e+2)));return{r:r[0],g:r[1],b:r[2],a:1}}throw new Error("Wrong hex string! (hex: "+t+")")}function i(e){return typeof e===d&&("transparent"===e.toLowerCase()||c.test(t.trim(e.toLowerCase())))}function a(t){function e(t){return t=0>t?t+1:t>1?t-1:t,1>6*t?s+(o-s)*t*6:1>2*t?o:2>3*t?s+(o-s)*(2/3-t)*6:s}var n=t.h,r=t.s,i=t.l,a=t.a;n=l(n)%f/f,r=y(r),i=y(i),a=y(a);var o=.5>=i?i*(r+1):i+r-i*r,s=2*i-o,c={r:e(n+1/3)*u,g:e(n)*u,b:e(n-1/3)*u,a:a};return c}function o(t,n,r){return g(r)&&(r=0),g(n)&&(n=u),e.min(e.max(t,r),n)}function s(t,e){return o(t,e)}function l(t){return"number"==typeof t?t:parseFloat(t)}var c=/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/,u=255,f=360,p=100,d="string",h="object",g=function(t){return t===n},m=function(t){return!g(t)},v=function(t){return parseInt(t)},y=function(t,e){return s(l(t),e)},b=function(t){return v(y(t,u))},w=function(t,e,n,i){var o=this;if(o.r=o.g=o.b=0,o.a=1,m(i)&&(o.a=y(i,1)),m(t)&&m(e)&&m(n))o.r=b(t),o.g=b(e),o.b=b(n);else if(m(t)){var s=typeof t;if(s==d)t=t.toLowerCase(),"transparent"===t?o.a=0:o.rgb(r(t));else if("number"==s&&g(e))o.r=o.g=o.b=b(t);else if(s==h&&m(t.r))o.r=b(t.r),m(t.g)&&(o.g=b(t.g)),m(t.b)&&(o.b=b(t.b)),m(t.a)&&(o.a=y(t.a,1));else if(s==h&&m(t.h)){var l={h:y(t.h,f),s:1,l:1,a:1};m(t.s)&&(l.s=y(t.s,1)),m(t.l)&&(l.l=y(t.l,1)),m(t.a)&&(l.a=y(t.a,1)),o.rgb(a(l))}}};w.prototype.rgb=function(t){var e=this;if(m(t)){if(typeof t==h)m(t.r)&&(e.r=b(t.r)),m(t.g)&&(e.g=b(t.g)),m(t.b)&&(e.b=b(t.b)),m(t.a)&&(e.a=y(t.a,1));else{var n=v(l(t));e.r=n,e.g=n,e.b=n}return e}return{r:e.r,g:e.g,b:e.b,a:e.a}},w.prototype.hue=function(t){var e=this,n=e.toHsl();return g(t)?n.h:(n.h=y(t,f),e.rgb(a(n)),e)},w.prototype.darken=function(t){var e=this,n=e.toHsl();return n.l-=t/p,n.l=s(n.l,1),e.rgb(a(n)),e},w.prototype.clone=function(){var t=this;return new w(t.r,t.g,t.b,t.a)},w.prototype.lighten=function(t){return this.darken(-t)},w.prototype.fade=function(t){return this.a=s(t/p,1),this},w.prototype.toHsl=function(){var t,n,r=this,i=r.r/u,a=r.g/u,o=r.b/u,s=r.a,l=e.max(i,a,o),c=e.min(i,a,o),p=(l+c)/2,d=l-c;if(l===c)t=n=0;else{switch(n=p>.5?d/(2-l-c):d/(l+c),l){case i:t=(a-o)/d+(o>a?6:0);break;case a:t=(o-i)/d+2;break;case o:t=(i-a)/d+4}t/=6}return{h:t*f,s:n,l:p,a:s}},w.prototype.luma=function(){var t=this.r/u,n=this.g/u,r=this.b/u;return t=.03928>=t?t/12.92:e.pow((t+.055)/1.055,2.4),n=.03928>=n?n/12.92:e.pow((n+.055)/1.055,2.4),r=.03928>=r?r/12.92:e.pow((r+.055)/1.055,2.4),.2126*t+.7152*n+.0722*r},w.prototype.saturate=function(t){var e=this.toHsl();return e.s+=t/p,e.s=s(e.s),this.rgb(a(e))},w.prototype.contrast=function(t,e,n){if(e=g(e)?new w(u,u,u,1):new w(e),t=g(t)?new w(0,0,0,1):new w(t),this.a<.5)return t;if(n=g(n)?.43:l(n),t.luma()>e.luma()){var r=e;e=t,t=r}return this.luma()0?t.a<1?"rgba("+t.r+","+t.g+","+t.b+","+t.a+")":t.hexStr():"transparent"},w.isColor=i,t.Color=w}(CoreLib,Math,void 0),function(t,e){"use strict";var n="mzui.skin",r={},i=function(e,n){var r=this;r.options=n=t.extend({},i.DEFAULT,e.data(),n),r.$=e,r.paint()};i.prototype.paint=function(n){var i,a,o=this,s=o.options,l=o.$,c=o.$.hasClass("pale")||s.pale,u=s.outline||l.hasClass("outline"),f=s.tint||l.hasClass("text-tint");if(n=n===e?s.skin:n,c===e&&(o.$.hasClass("dark")||s.dark)&&(c=!1),t.isStr(n)&&n.indexOf(":")>0){n=n.split(":"),a=n[0],n=n[1];var p=parseInt(n);NaN!==p&&(n=p)}if(""===n||n===e||"random"===n)n=Math.round(360*Math.random());else if(r[n])n=r[n];else if(t.isStr(n)&&0===n.indexOf("random"))r[n]=n=Math.round(360*Math.random());else if(t.isStr(n)&&0===n.indexOf("@")){for(var d=0,h=n.length-1;h>0;--h)d+=Math.pow(3,h-1)*n.charCodeAt(h);n=d}a&&(r[a]=n),i="number"==typeof n?new t.Color({h:n*s.hueSpace%360,s:s.saturation,l:s.lightness}):new t.Color(n),o.color=i,i.luma()=0;--c)s.push(a[c]);a=s}t.isArray(a)?o===n?o=a:t.isArray(o)?o.push.apply(o,a):(a.push(o),o=a):i.lastIndexOf("]")===i.length-1?o===n?o=[a]:o.push(a):o=a,l[i]=o}),o("onSubmit",l);var c=new FormData;for(var u in l){var f=l[u];if(t.isArray(f))for(var p=f.length-1;p>=0;--p)c.append(u,f[p]);else c.append(u,f)}var d=i.find('[type="submit"]').attr("disabled","disabled").addClass("disabled loading");t.ajax({url:a.action,type:a.method,processData:!1,contentType:!1,dataType:i.data("type")||"json",data:c,success:function(e,n){try{if("string"==typeof e&&(e=t.parseJSON(e)),o("onSuccess",e),"success"===e.result)e.message?(t.messager.success(e.message),e.locate&&setTimeout(function(){location.href=e.locate},1200)):e.locate&&(location.href=e.locate);else{var r=e.message||e.reason||e.error;r&&(t.isPlainObject(r)?t.each(r,function(e,n){t.isArray(n)&&n.length&&(n=n.length>1?"
  • "+n.join("
  • ")+"
":n[0]);var r=i.find("#"+e+', [name="'+e+'"]').closest(".control");if(r.length){var a=r.find(".help-text");a.length?a.html(n):r.append('
'+n+"
"),r.addClass("has-error")}else s(n)}):s(r))}}catch(a){s(e||"No response.")}o("onResult",e)},error:function(n,r,i){s("error: "+i),o("onError",{xhr:n,errorType:r,error:i}),e.v&&e.v.lang.timeout&&t.messager.danger(e.v.lang.timeout)},complete:function(t,e){d.attr("disabled",null).removeClass("disabled loading"),o("onComplete",{xhr:t,status:e})}})}).on("change",function(e){i.find(".form-message").hide(),t(e.target).closest(".control").removeClass("has-error")})}};t.ajaxForm=i,t.fn.ajaxform=function(e){return t(this).each(function(){var n=t(this);i(n,t.extend(n.data(),e))})},t(function(){t(".ajaxform").ajaxform()})}(CoreLib,window,void 0),/*! Apache License 2.0 https://github.com/google/code-prettify*/ 8 | !function(){var t=null;window.PR_SHOULD_USE_CONTINUATION=!0,function(){function e(t){function e(t){var e=t.charCodeAt(0);if(92!==e)return e;var n=t.charAt(1);return(e=f[n])?e:n>="0"&&"7">=n?parseInt(t.substring(1),8):"u"===n||"x"===n?parseInt(t.substring(2),16):t.charCodeAt(1)}function n(t){return 32>t?(16>t?"\\x0":"\\x")+t.toString(16):(t=String.fromCharCode(t),"\\"===t||"-"===t||"]"===t||"^"===t?"\\"+t:t)}function r(t){var r=t.substring(1,t.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),t=[],i="^"===r[0],a=["["];i&&a.push("^");for(var i=i?1:0,o=r.length;o>i;++i){var s=r[i];if(/\\[bdsw]/i.test(s))a.push(s);else{var l,s=e(s);o>i+2&&"-"===r[i+1]?(l=e(r[i+2]),i+=2):l=s,t.push([s,l]),65>l||s>122||(65>l||s>90||t.push([32|Math.max(65,s),32|Math.min(l,90)]),97>l||s>122||t.push([-33&Math.max(97,s),-33&Math.min(l,122)]))}}for(t.sort(function(t,e){return t[0]-e[0]||e[1]-t[1]}),r=[],o=[],i=0;is[0]&&(s[1]+1>s[0]&&a.push("-"),a.push(n(s[1])));return a.push("]"),a.join("")}function i(t){for(var e=t.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),i=e.length,s=[],l=0,c=0;i>l;++l){var u=e[l];"("===u?++c:"\\"===u.charAt(0)&&(u=+u.substring(1))&&(c>=u?s[u]=-1:e[l]=n(u))}for(l=1;ll;++l)u=e[l],"("===u?(++c,s[c]||(e[l]="(?:")):"\\"===u.charAt(0)&&(u=+u.substring(1))&&c>=u&&(e[l]="\\"+s[u]);for(l=0;i>l;++l)"^"===e[l]&&"^"!==e[l+1]&&(e[l]="");if(t.ignoreCase&&o)for(l=0;i>l;++l)u=e[l],t=u.charAt(0),u.length>=2&&"["===t?e[l]=r(u):"\\"!==t&&(e[l]=u.replace(/[A-Za-z]/g,function(t){return t=t.charCodeAt(0),"["+String.fromCharCode(-33&t,32|t)+"]"}));return e.join("")}for(var a=0,o=!1,s=!1,l=0,c=t.length;c>l;++l){var u=t[l];if(u.ignoreCase)s=!0;else if(/[a-z]/i.test(u.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){o=!0,s=!1;break}}for(var f={b:8,t:9,n:10,v:11,f:12,r:13},p=[],l=0,c=t.length;c>l;++l){if(u=t[l],u.global||u.multiline)throw Error(""+u);p.push("(?:"+i(u)+")")}return RegExp(p.join("|"),s?"gi":"g")}function n(t,e){function n(t){var l=t.nodeType;if(1==l){if(!r.test(t.className)){for(l=t.firstChild;l;l=l.nextSibling)n(l);l=t.nodeName.toLowerCase(),"br"!==l&&"li"!==l||(i[s]="\n",o[s<<1]=a++,o[s++<<1|1]=t)}}else 3!=l&&4!=l||(l=t.nodeValue,l.length&&(l=e?l.replace(/\r\n?/g,"\n"):l.replace(/[\t\n\r ]+/g," "),i[s]=l,o[s<<1]=a,a+=l.length,o[s++<<1|1]=t))}var r=/(?:^|\s)nocode(?:\s|$)/,i=[],a=0,o=[],s=0;return n(t),{a:i.join("").replace(/\n$/,""),d:o}}function r(t,e,n,r){e&&(t={a:e,e:t},n(t),r.push.apply(r,t.g))}function i(t){for(var e=void 0,n=t.firstChild;n;n=n.nextSibling)var r=n.nodeType,e=1===r?e?t:n:3===r&&x.test(n.nodeValue)?t:e;return e===t?void 0:e}function a(n,i){function a(t){for(var e=t.e,n=[e,"pln"],u=0,f=t.a.match(o)||[],p={},d=0,h=f.length;h>d;++d){var g,m=f[d],v=p[m],y=void 0;if("string"==typeof v)g=!1;else{var b=s[m.charAt(0)];if(b)y=m.match(b[1]),v=b[0];else{for(g=0;l>g;++g)if(b=i[g],y=m.match(b[1])){v=b[0];break}y||(v="pln")}!(g=v.length>=5&&"lang-"===v.substring(0,5))||y&&"string"==typeof y[1]||(g=!1,v="src"),g||(p[m]=v)}if(b=u,u+=m.length,g){g=y[1];var w=m.indexOf(g),x=w+g.length;y[2]&&(x=m.length-y[2].length,w=x-g.length),v=v.substring(5),r(e+b,m.substring(0,w),a,n),r(e+b+w,g,c(v,g),n),r(e+b+x,m.substring(x),a,n)}else n.push(e+b,v)}t.g=n}var o,s={};!function(){for(var r=n.concat(i),a=[],l={},c=0,u=r.length;u>c;++c){var f=r[c],p=f[3];if(p)for(var d=p.length;--d>=0;)s[p.charAt(d)]=f;f=f[1],p=""+f,l.hasOwnProperty(p)||(a.push(f),l[p]=t)}a.push(/[\S\s]/),o=e(a)}();var l=i.length;return a}function o(e){var n=[],r=[];e.tripleQuotedStrings?n.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,t,"'\""]):e.multiLineStrings?n.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,t,"'\"`"]):n.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,t,"\"'"]),e.verbatimStrings&&r.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,t]);var i=e.hashComments;if(i&&(e.cStyleComments?(i>1?n.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,t,"#"]):n.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,t,"#"]),r.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,t])):n.push(["com",/^#[^\n\r]*/,t,"#"])),e.cStyleComments&&(r.push(["com",/^\/\/[^\n\r]*/,t]),r.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,t])),i=e.regexLiterals){var o=(i=i>1?"":"\n\r")?".":"[\\S\\s]";r.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+("/(?=[^/*"+i+"])(?:[^/\\x5B\\x5C"+i+"]|\\x5C"+o+"|\\x5B(?:[^\\x5C\\x5D"+i+"]|\\x5C"+o+")*(?:\\x5D|$))+/")+")")])}return(i=e.types)&&r.push(["typ",i]),i=(""+e.keywords).replace(/^ | $/g,""),i.length&&r.push(["kwd",RegExp("^(?:"+i.replace(/[\s,]+/g,"|")+")\\b"),t]),n.push(["pln",/^\s+/,t," \r\n  "]),i="^.[^\\s\\w.$@'\"`/\\\\]*",e.regexLiterals&&(i+="(?!s*/)"),r.push(["lit",/^@[$_a-z][\w$@]*/i,t],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,t],["pln",/^[$_a-z][\w$@]*/i,t],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,t,"0123456789"],["pln",/^\\[\S\s]?/,t],["pun",RegExp(i),t]),a(n,r)}function s(t,e,n){function r(t){var e=t.nodeType;if(1!=e||a.test(t.className)){if((3==e||4==e)&&n){var l=t.nodeValue,c=l.match(o);c&&(e=l.substring(0,c.index),t.nodeValue=e,(l=l.substring(c.index+c[0].length))&&t.parentNode.insertBefore(s.createTextNode(l),t.nextSibling),i(t),e||t.parentNode.removeChild(t))}}else if("br"===t.nodeName)i(t),t.parentNode&&t.parentNode.removeChild(t);else for(t=t.firstChild;t;t=t.nextSibling)r(t)}function i(t){function e(t,n){var r=n?t.cloneNode(!1):t,i=t.parentNode;if(i){var i=e(i,1),a=t.nextSibling;i.appendChild(r);for(var o=a;o;o=a)a=o.nextSibling,i.appendChild(o)}return r}for(;!t.nextSibling;)if(t=t.parentNode,!t)return;for(var n,t=e(t.nextSibling,0);(n=t.parentNode)&&1===n.nodeType;)t=n;c.push(t)}for(var a=/(?:^|\s)nocode(?:\s|$)/,o=/\r\n?|\n/,s=t.ownerDocument,l=s.createElement("li");t.firstChild;)l.appendChild(t.firstChild);for(var c=[l],u=0;uu;++u)l=c[u],l.className="L"+(u+e)%10,l.firstChild||l.appendChild(s.createTextNode(" ")),f.appendChild(l);t.appendChild(f)}function l(t,e){for(var n=e.length;--n>=0;){var r=e[n];S.hasOwnProperty(r)?f.console&&console.warn("cannot override language handler %s",r):S[r]=t}}function c(t,e){return t&&S.hasOwnProperty(t)||(t=/^\s*m;)p[m]!==p[m+2]?(p[g++]=p[m++],p[g++]=p[m++]):m+=2;for(d=g,m=g=0;d>m;){for(var v=p[m],y=p[m+1],b=m+2;d>=b+2&&p[b+1]===y;)b+=2;p[g++]=v,p[g++]=y,m=b}p.length=g;var w,x=t.c;x&&(w=x.style.display,x.style.display="none");try{for(;u>i;){var C,S=l[i+2]||s,T=p[h+2]||s,b=Math.min(S,T),E=l[i+1];if(1!==E.nodeType&&(C=o.substring(r,b))){a&&(C=C.replace(e,"\r")),E.nodeValue=C;var N=E.ownerDocument,k=N.createElement("span");k.className=p[h+1];var $=E.parentNode;$.replaceChild(k,E),k.appendChild(E),S>r&&(l[i+1]=E=N.createTextNode(o.substring(b,S)),$.insertBefore(E,k.nextSibling))}r=b,r>=S&&(i+=2),r>=T&&(h+=2)}}finally{x&&(x.style.display=w)}}catch(j){f.console&&console.log(j&&j.stack||j)}}var f=window,p=["break,continue,do,else,for,if,return,while"],d=[[p,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],h=[d,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],g=[d,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],m=[g,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],d=[d,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],v=[p,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],y=[p,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],b=[p,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],p=[p,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],w=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,x=/\S/,C=o({keywords:[h,m,d,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",v,y,p],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),S={};l(C,["default-code"]),l(a([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]),l(a([["pln",/^\s+/,t," \r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,t,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'\/>]|\/(?=\s)))/],["pun",/^[\/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]),l(a([],[["atv",/^[\S\s]+/]]),["uq.val"]),l(o({keywords:h,hashComments:!0,cStyleComments:!0,types:w}),["c","cc","cpp","cxx","cyc","m"]),l(o({keywords:"null,true,false"}),["json"]),l(o({keywords:m,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:w}),["cs"]),l(o({keywords:g,cStyleComments:!0}),["java"]),l(o({keywords:p,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]),l(o({keywords:v,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]),l(o({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]),l(o({keywords:y,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]),l(o({keywords:d,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]),l(o({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]),l(o({keywords:b,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]),l(a([],[["str",/^[\S\s]+/]]),["regex"]);var T=f.PR={createSimpleLexer:a,registerLangHandler:l,sourceDecorator:o,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:f.prettyPrintOne=function(t,e,n){var r=document.createElement("div");return r.innerHTML="
"+t+"
",r=r.firstChild,n&&s(r,n,!0),u({h:e,j:n,c:r,i:1}),r.innerHTML},prettyPrint:f.prettyPrint=function(e,n){function r(){for(var n=f.PR_SHOULD_USE_CONTINUATION?h.now()+250:1/0;mp;++p)l.push(a[c][p]);var a=t,h=Date;h.now||(h={now:function(){return+new Date}});var g,m=0,v=/\blang(?:uage)?-([\w.]+)(?!\S)/,y=/\bprettyprint\b/,b=/\bprettyprinted\b/,w=/pre|xmp/i,x=/^code$/i,C=/^(?:pre|code|xmp)$/i,S={};r()}};"function"==typeof define&&define.amd&&define("google-code-prettify",[],function(){return T})}()}(); -------------------------------------------------------------------------------- /part/arrow-shape.html: -------------------------------------------------------------------------------- 1 | 32 |
33 |
34 |
35 |
36 |
37 | 42 |
43 |
<nav class="nav-arrow">
44 |   <div>我家</div>
45 |   <div>大院</div>
46 |   <div>的井</div>
47 | </nav>
48 |
.nav-arrow > div {
49 |   display: inline-block;
50 |   line-height: 2rem;
51 |   background-color: #76be35;
52 |   color: #fff;
53 |   position: relative;
54 |   margin-right: .5rem;
55 |   padding: 0 .5rem 0 1.5rem;
56 | }
57 | .nav-arrow > div:before,
58 | .nav-arrow > div:after {
59 |   content: ' ';
60 |   display: block;
61 |   border: 1rem solid transparent;
62 |   border-left-color: #fff;
63 |   position: absolute;
64 |   top: 0;
65 |   left: 0;
66 |   width: 0;
67 |   height: 0;
68 |   z-index: 0;
69 | }
70 | .nav-arrow > div:after {
71 |   left: auto;
72 |   right: -2rem;
73 |   border-color: transparent;
74 |   border-left-color: #76be35;
75 |   z-index: 1;
76 | }
77 |
78 |
79 |
80 |
81 | -------------------------------------------------------------------------------- /part/auto-dock-bar.html: -------------------------------------------------------------------------------- 1 | 17 |
18 |
19 |
20 |
21 |
22 |

将鼠标移动到页面底部显示导航栏。

23 |

此示例仅限桌面端用鼠标仅限操作,移动端无法查看效果。

24 | 30 |
31 |
<nav class="nav auto-dock-nav dark">
32 |   <a><i class="icon-home"></i>&nbsp;首页</a>
33 |   <a>项目</a>
34 |   <a>产品</a>
35 |   <a>任务</a>
36 | </nav>
37 |
.auto-dock-nav {
38 |   position: fixed;
39 |   bottom: 0;
40 |   left: 0;
41 |   right: 0;
42 |   transform: translateY(99%);
43 |   opacity: 0;
44 |   transition: transform .3s, opacity .1s;
45 | }
46 | .auto-dock-nav:hover {
47 |   opacity: 1;
48 |   transform: translateY(0);
49 | }
50 |
51 |
52 |
53 |
54 | -------------------------------------------------------------------------------- /part/bold-first-line.html: -------------------------------------------------------------------------------- 1 | 8 |
9 |
10 |
11 |
12 |

茅屋为秋风所破歌 · 唐-杜甫
八月秋高风怒号,卷我屋上三重茅。茅飞渡江洒江郊,高者挂罥长林梢,下者飘转沉塘坳。 13 | 南村群童欺我老无力,忍能对面为盗贼,公然抱茅入竹去。唇焦口燥呼不得,归来倚杖自叹息。

14 |
<p class="bold-line">茅屋为秋风所破歌 · 唐-杜甫<br>八月秋高风怒号,卷我屋上三重茅。茅飞渡江洒江郊,高者挂罥长林梢,下者飘转沉塘坳。
15 | 南村群童欺我老无力,忍能对面为盗贼,公然抱茅入竹去。唇焦口燥呼不得,归来倚杖自叹息。</p>
16 |
p.bold-line:first-line {
17 |   font-size: 1rem;
18 |   font-weight: bold;
19 |   color: #b06ce5;
20 | }
21 |
22 |
23 |
24 |
25 | -------------------------------------------------------------------------------- /part/breadcumb.html: -------------------------------------------------------------------------------- 1 | 20 |
21 |
22 |
23 |
24 |
25 | 31 |
32 |
<ul class="breadcrumb">
33 |   <li><a href=""><i class="icon icon-home"></i></a></li>
34 |   <li><a href="">我家</a></li>
35 |   <li><a href="">大院</a></li>
36 |   <li class="active">的井</li>
37 | </ul>
38 |
.breadcrumb {
39 |   padding: 8px 15px;
40 |   margin-bottom: 20px;
41 |   list-style: none;
42 |   border-radius: 4px;
43 | }
44 | .breadcrumb > li {
45 |   display: inline-block;
46 | }
47 | .breadcrumb > li + li:before {
48 |   padding: 0 5px;
49 |   color: #ccc;
50 |   content: "/\00a0";
51 | }
52 | .breadcrumb > .active {
53 |   color: #808080;
54 | }
55 |
56 |
57 |
58 |
59 | -------------------------------------------------------------------------------- /part/button-skin.html: -------------------------------------------------------------------------------- 1 | 37 |
38 |
39 |
40 |
41 |
42 |
<button type="button" class="btn btn-skin">按钮</button>
43 |
.btn-skin {
44 |     position: relative;
45 | }
46 | .btn-skin:after {
47 |     position: absolute;
48 |     top: 0;
49 |     right: 0;
50 |     bottom: 0;
51 |     left: 0;
52 |     display: block;
53 |     content: ' ';
54 |     transition: .3s cubic-bezier(.175, .885, .32, 1);
55 |     transform: scale(.6);
56 |     opacity: 0;
57 |     background-color: transparent;
58 |     box-shadow: 0 0 0 .05rem #000;
59 | }
60 | .btn-skin:hover:after,
61 | .btn-skin.hover:after {
62 |     transform: scale(1);
63 |     opacity: .08;
64 |     background-color: #000;
65 | }
66 | .btn-skin:focus {
67 |     outline: none;
68 | }
69 | .btn-skin:focus:after {
70 |     transform: scale(1);
71 |     opacity: .1;
72 |     background-color: rgba(0, 0, 0, .8);
73 |     box-shadow: inset 0 0 0 .05rem rgba(0, 0, 0, .9);
74 | }
75 |
76 |
77 |
78 |
79 | -------------------------------------------------------------------------------- /part/chat-arrow-with-border.html: -------------------------------------------------------------------------------- 1 | 27 |
28 |
29 |
30 |
31 |
32 |
子曰:学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
33 |
34 |
<div class="chat-bubble"><strong>子曰:</strong>学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?</div>
35 |
.chat-bubble {
36 |   background-color: #fff;
37 |   border: .1rem solid #76be35;
38 |   padding: .5rem;
39 |   position: relative;
40 |   max-width: 12rem;
41 |   color: #76be35;
42 | }
43 | .chat-bubble:before,
44 | .chat-bubble:after {
45 |   content: ' ';
46 |   display: block;
47 |   position: absolute;
48 |   bottom: -1rem;
49 |   left: 1rem;
50 |   width: 0;
51 |   height: 0;
52 |   border: .5rem solid transparent;
53 |   border-top-color: #76be35;
54 | }
55 | .chat-bubble:after {
56 |   border-top-color: #fff;
57 |   bottom: -.85rem;
58 | }
59 |
60 |
61 |
62 |
63 | -------------------------------------------------------------------------------- /part/chat-arrow.html: -------------------------------------------------------------------------------- 1 | 22 |
23 |
24 |
25 |
26 |
27 |
子曰:学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
28 |
29 |
<div class="chat-bubble"><strong>子曰:</strong>学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?</div>
30 |
.chat-bubble {
31 |   background-color: #76be35;
32 |   color: #fff;
33 |   padding: .5rem;
34 |   position: relative;
35 |   max-width: 12rem;
36 | }
37 | .chat-bubble:after {
38 |   content: ' ';
39 |   display: block;
40 |   position: absolute;
41 |   top: 100%;
42 |   left: 1rem;
43 |   width: 0;
44 |   height: 0;
45 |   border: .3rem solid transparent;
46 |   border-top-color: #76be35;
47 |   border-left-color: #76be35;
48 | }
49 |
50 |
51 |
52 |
53 | -------------------------------------------------------------------------------- /part/checkbox-and-ratio-skin.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 9 | 10 |
11 |
12 |
13 | 14 |
15 | 16 | 17 |
18 |
19 | 20 | 21 |
22 |
23 |
24 |
<div class="control">
 25 |   <div class="checkbox">
 26 |     <input type="checkbox" name="buyMethod">
 27 |     <label for="buyMethod">使用匿名购买</label>
 28 |   </div>
 29 | </div>
 30 | <div class="control">
 31 |   <label>付款方式</label>
 32 |   <div class="radio">
 33 |     <input type="radio" name="payment">
 34 |     <label for="payment">支付宝</label>
 35 |   </div>
 36 |   <div class="radio">
 37 |     <input type="radio" name="payment">
 38 |     <label for="payment">网银</label>
 39 |   </div>
 40 | </div>
41 |
.radio,
 42 | .checkbox {
 43 |     position: relative;
 44 | }
 45 | .radio > input,
 46 | .checkbox > input {
 47 |     position: absolute;
 48 |     z-index: 1;
 49 |     top: 0;
 50 |     left: 0;
 51 |     display: block;
 52 |     width: 100%;
 53 |     height: 100%;
 54 |     opacity: 0;
 55 | }
 56 | .radio > input + label,
 57 | .checkbox > input + label {
 58 |     position: relative;
 59 |     z-index: 0;
 60 |     display: block;
 61 |     padding: .25rem 0 .25rem 1.25rem;
 62 | }
 63 | .radio > input + label:before,
 64 | .checkbox > input + label:before,
 65 | .radio > input + label:after,
 66 | .checkbox > input + label:after {
 67 |     position: absolute;
 68 |     top: .3rem;
 69 |     left: 0;
 70 |     display: flex;
 71 |     width: .9rem;
 72 |     height: .9rem;
 73 |     content: ' ';
 74 |     transition: .3s cubic-bezier(.175, .885, .32, 1);
 75 |     color: transparent;
 76 |     border: .1rem solid #ccc;
 77 |     align-items: center;
 78 |     justify-content: center;
 79 | }
 80 | .radio > input + label:after,
 81 | .checkbox > input + label:after {
 82 |     transform: scale(0);
 83 |     opacity: 0;
 84 |     color: #808080;
 85 | }
 86 | .radio > input:focus + label:before,
 87 | .checkbox > input:focus + label:before {
 88 |     border-color: #2196f3;
 89 | }
 90 | .radio > input:checked + label:after,
 91 | .checkbox > input:checked + label:after {
 92 |     transform: scale(1);
 93 |     opacity: 1;
 94 | }
 95 | .radio > input[disabled],
 96 | .checkbox > input[disabled],
 97 | .radio > input.disabled,
 98 | .checkbox > input.disabled {
 99 |     opacity: 0!important;
100 | }
101 | .radio > input[disabled] + label,
102 | .checkbox > input[disabled] + label,
103 | .radio > input.disabled + label,
104 | .checkbox > input.disabled + label {
105 |     opacity: .5;
106 | }
107 | .radio.inline-block + .inline-block,
108 | .checkbox.inline-block + .inline-block {
109 |     margin-left: .05rem;
110 | }
111 | .checkbox > input + label:after {
112 |     font-family: ZenIcon;
113 |     font-size: .7rem;
114 |     font-weight: normal;
115 |     font-style: normal;
116 |     font-variant: normal;
117 |     content: '\e60d';
118 |     text-transform: none;
119 |     border: none;
120 |     speak: none;
121 |     -webkit-font-smoothing: antialiased;
122 |     -moz-osx-font-smoothing: grayscale;
123 | }
124 | .checkbox > input:focus + label:after {
125 |     color: #2196f3;
126 | }
127 | .radio > input + label:before {
128 |     border-radius: 1rem;
129 | }
130 | .radio > input + label:after {
131 |     top: .55rem;
132 |     left: .25rem;
133 |     width: .4rem;
134 |     height: .4rem;
135 |     border: none;
136 |     border-radius: .2rem;
137 |     background-color: #808080;
138 | }
139 | .radio > input:focus + label:after {
140 |     background-color: #2196f3;
141 | }
142 |
143 |
144 |
145 |
146 | -------------------------------------------------------------------------------- /part/clearfix.html: -------------------------------------------------------------------------------- 1 | 14 |
15 |
16 |
17 |
18 |
19 |
20 |
浮动一
21 |
浮动一
22 |
23 |
24 |
<div class="clearfix">
25 |   <div class="pull-left">浮动一</div>
26 |   <div class="pull-left">浮动一</div>
27 | </div>
28 |
.clearfix:before,
29 | .clearfix:after
30 | {
31 |     display: table;
32 | 
33 |     content: ' ';
34 | }
35 | .clearfix:after
36 | {
37 |     clear: both;
38 | }
39 |
40 |
41 |
42 |
43 | -------------------------------------------------------------------------------- /part/comma-list.html: -------------------------------------------------------------------------------- 1 | 15 |
16 |
17 |
18 |
19 |
20 |

今日作业:

21 |
    22 |
  • 写字两页
  • 23 |
  • 背古诗三首
  • 24 |
  • 作文一篇
  • 25 |
  • 算术练习
  • 26 |
27 |

逗号分隔列表:

28 |
    29 |
  • 写字两页
  • 30 |
  • 背古诗三首
  • 31 |
  • 作文一篇
  • 32 |
  • 算术练习
  • 33 |
34 |
35 |
<ul class="comma-list">
36 |   <li>写字两页</li>
37 |   <li>背古诗三首</li>
38 |   <li>作文一篇</li>
39 |   <li>算术练习</li>
40 | </ul>
41 |
ul.comma-list {
42 |   padding-left: 0;
43 | }
44 | ul.comma-list > li {
45 |  display: inline-block;
46 | }
47 | ul.comma-list > li:after {
48 |  content: ", ";
49 | }
50 | ul.comma-list > li:last-child:after {
51 |  display: none;
52 | }
53 |
54 |
55 |
56 |
57 | -------------------------------------------------------------------------------- /part/corner-badge.html: -------------------------------------------------------------------------------- 1 | 21 |
22 |
23 |
24 |
25 |
26 |
<button data-badge="2" class="green btn has-badge"><i class="icon-check-board"></i> 今日待办</button>
27 |
.has-badge {
28 |   position: relative;
29 | }
30 | .has-badge:before {
31 |   content: attr(data-badge);
32 |   display: block;
33 |   position: absolute;
34 |   top: -.5rem;
35 |   right: -.5rem;
36 |   height: 1rem;
37 |   line-height: 1rem;
38 |   border-radius: .5rem;
39 |   background: red;
40 |   color: #fff;
41 |   min-width: 1rem;
42 |   text-align: center;
43 |   padding: 0 .25rem;
44 | }
45 |
46 |
47 |
48 |
49 | -------------------------------------------------------------------------------- /part/corner-label.html: -------------------------------------------------------------------------------- 1 | 35 |
36 |
37 |
38 |
39 |
40 |
41 | 42 |
NEW
43 |
44 |
45 |
<div class="has-corner">
46 |   <img src="img/magic-tree.png" alt="">
47 |   <div class="corner"><div>NEW</div></div>
48 | </div>
49 |
.has-corner {
50 |   position: relative;
51 |   border: .05rem solid #e75c54;
52 | }
53 | .has-corner > .corner {
54 |   position: absolute;
55 |   right: 0;
56 |   top: 0;
57 |   width: 3rem;
58 |   height: 3rem;
59 | }
60 | .has-corner > .corner:before {
61 |   content: ' ';
62 |   display: block;
63 |   position: absolute;
64 |   right: 0;
65 |   top: 0;
66 |   width: 0;
67 |   height: 0;
68 |   border: 1.5rem solid #e75c54;
69 |   border-left-color: transparent;
70 |   border-bottom-color: transparent;
71 | }
72 | .has-corner > .corner > div {
73 |   transform: rotate(45deg);
74 |   position: relative;
75 |   text-align: center;
76 |   color: #fff;
77 |   position: relative;
78 |   top: .5rem;
79 |   right: -.5rem;
80 | }
81 |
82 |
83 |
84 |
85 | -------------------------------------------------------------------------------- /part/corner-tape.html: -------------------------------------------------------------------------------- 1 | 26 |
27 |
28 |
29 |
30 |
31 |
32 | 33 |
34 |
35 |
<div class="has-corner">
36 |   <img src="img/magic-tree.png" alt="">
37 | </div>
38 |
.has-corner {
39 |   position: relative;
40 |   border: .05rem solid #ddd;
41 |   overflow: hidden;
42 | }
43 | .has-corner:before,
44 | .has-corner:after {
45 |   content: ' ';
46 |   display: block;
47 |   position: absolute;
48 |   box-shadow: .1rem .1rem .5rem rgba(0,0,0,.3);
49 |   width: 4rem;
50 |   height: 4rem;
51 |   transform: rotate(45deg);
52 | }
53 | .has-corner:before {
54 |   right: -2rem;
55 |   top: -2rem;
56 | }
57 | .has-corner:after {
58 |   left: -2rem;
59 |   bottom: -2rem;
60 | }
61 |
62 |
63 |
64 |
65 | -------------------------------------------------------------------------------- /part/css-backdrop.html: -------------------------------------------------------------------------------- 1 | 28 |
29 |
30 |
31 |
32 | 35 |
<a class="green btn has-backdrop">点击启用遮罩效果</a>
36 |
.has-backdrop {
37 |   position: relative;
38 | }
39 | .has-backdrop:before {
40 |   content: ' ';
41 |   display: block;
42 |   box-sizing: content-box;
43 |   box-shadow: 0 0 0 0rem rgba(0,0,0,.5);
44 |   position: absolute;
45 |   top: 0;
46 |   left: 0;
47 |   right: 0;
48 |   bottom: 0;
49 |   z-index: 99999;
50 |   pointer-events: none;
51 |   transition: box-shadow .5s;
52 |   opacity: 0;
53 |   visibility: hidden;
54 | }
55 | .has-backdrop:hover:before,
56 | .has-backdrop:focus:before {
57 |   opacity: 1;
58 |   box-shadow: 0 0 0 9999rem rgba(0,0,0,.5);
59 |   visibility: visible;
60 | }
61 |
62 |
63 |
64 |
65 | -------------------------------------------------------------------------------- /part/css-carousel.html: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /part/css-collapse-panel.html: -------------------------------------------------------------------------------- 1 |
2 | 15 |
16 | -------------------------------------------------------------------------------- /part/css-icons.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |

参考:

7 | 10 |
11 |
12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /part/css-images.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |

参考:

7 | 10 |
11 |
12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /part/css-loading-spinners.html: -------------------------------------------------------------------------------- 1 | 33 |
34 |
35 |
36 |
37 |
在加载的时候我是隐藏的
38 |
<div class="primary loading relative box">在加载的时候我是隐藏的</div>
39 |
@keyframes spin {
40 |   0% {
41 |     transform: rotate(0deg);
42 |   }
43 |   100% {
44 |     transform: rotate(359deg);
45 |   }
46 | }
47 | .loading {
48 |   color: transparent!important;
49 | }
50 | .loading > * {
51 |   visibility: hidden;
52 | }
53 | .loading:before {
54 |   position: absolute;
55 |   top: 50%;
56 |   left: 50%;
57 |   display: block;
58 |   width: .9rem;
59 |   height: .9rem;
60 |   margin-top: -.45rem;
61 |   margin-left: -.45rem;
62 |   content: ' ';
63 |   transition: opacity .3s cubic-bezier(.175, .885, .32, 1);
64 |   animation: spin 2s infinite linear;
65 |   border: .15rem dotted rgba(255, 255, 255, .5);
66 |   border-color: rgba(255, 255, 255, .1) rgba(255, 255, 255, .4) rgba(255, 255, 255, .5) rgba(255, 255, 255, .6);
67 |   border-radius: 50%;
68 | }
69 |
70 |
71 |
72 |
73 | -------------------------------------------------------------------------------- /part/css-logo.html: -------------------------------------------------------------------------------- 1 | 59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
<div class="primary box">
 67 |   <div class="path-zui-36"><i class="path-1"></i><i class="path-2"></i></div>
 68 | </div>
69 |
.path-zui-36 {
 70 |   position: relative;
 71 |   display: inline-block;
 72 |   overflow: hidden;
 73 |   width: 3.6rem;
 74 |   height: 3.6rem;
 75 |   border-radius: 1.8rem;
 76 |   background-color: #fff;
 77 | }
 78 | .path-zui-36:before,
 79 | .path-zui-36:after {
 80 |   position: absolute;
 81 |   left: 1.1rem;
 82 |   display: block;
 83 |   width: 1.4rem;
 84 |   height: .4rem;
 85 |   content: ' ';
 86 |   border: .2rem solid #3280fc;
 87 | }
 88 | .path-zui-36:before {
 89 |   top: .9rem;
 90 |   border-bottom: none;
 91 | }
 92 | .path-zui-36:after {
 93 |   top: 2.3rem;
 94 |   border-top: none;
 95 | }
 96 | .path-zui-36 .path-1,
 97 | .path-zui-36 .path-2,
 98 | .path-zui-36 .path-1:before,
 99 | .path-zui-36 .path-1:after,
100 | .path-zui-36 .path-2:before {
101 |   position: absolute;
102 |   display: block;
103 |   width: .2rem;
104 |   height: .2rem;
105 |   content: ' ';
106 |   background-color: #3280fc;
107 | }
108 | .path-zui-36 .path-1 {
109 |   top: 1.9rem;
110 |   left: 1.5rem;
111 | }
112 | .path-zui-36 .path-1:before,
113 | .path-zui-36 .path-2:before {
114 |   top: .2rem;
115 |   left: -.2rem;
116 | }
117 | .path-zui-36 .path-1:after {
118 |   top: -.2rem;
119 |   left: .2rem;
120 | }
121 | .path-zui-36 .path-2 {
122 |   top: 1.3rem;
123 |   left: 2.1rem;
124 | }
125 |
126 |
127 |
128 |
129 | -------------------------------------------------------------------------------- /part/css-modal.html: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /part/css-shapes.html: -------------------------------------------------------------------------------- 1 | 31 |
32 |
33 |
34 |
35 |
36 |
LUCK
37 |
38 |
<div class="luck"><span>LUCK</span></div>
39 |
.luck {
40 |   position: relative;
41 | }
42 | .luck:before {
43 |    content: ' ';
44 |    display: block;
45 |    position: absolute;
46 |    width: 5rem;
47 |    height: 5rem;
48 |    top: 0;
49 |    left: 0;
50 |    transform: rotate(45deg);
51 |    background: red;
52 |    z-index: 0;
53 | }
54 | .luck > span {
55 |   display: block;
56 |   width: 5rem;
57 |   height: 5rem;
58 |   line-height: 5rem;
59 |   text-align: center;
60 |   position: relative;
61 |   color: yellow;
62 |   font-size: 1.2rem;
63 |   z-index: 1;
64 |   position: relative;
65 | }
66 |
67 |
68 |
69 |
70 | -------------------------------------------------------------------------------- /part/css-tabs.html: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /part/css-tooltip.html: -------------------------------------------------------------------------------- 1 | 42 |
43 |
44 |
45 |
46 |
47 |
夫人之相与,俯仰一世,或取诸怀抱,悟言一室之内;或因寄所托,放浪形骸之外。
48 |
49 |
<div data-tooltip="兰亭集序 (王羲之)" class="box green block has-tooltip">夫人之相与,俯仰一世,或取诸怀抱,悟言一室之内;或因寄所托,放浪形骸之外。</div>
50 |
.has-tooltip {
51 |   position: relative;
52 | }
53 | .has-tooltip:before {
54 |   content: attr(data-tooltip);
55 |   display: block;
56 |   position: absolute;
57 |   background-color: rgba(0,0,0,.7);
58 |   color: #fff;
59 |   line-height: 1rem;
60 |   padding: .25rem .5rem;
61 |   bottom: 100%;
62 |   left: 50%;
63 |   transform: translateX(-50%);
64 |   font-size: .6rem;
65 |   opacity: 0;
66 |   visibility: hidden;
67 |   transition: all .2s;
68 | }
69 | .has-tooltip:after {
70 |   content: ' ';
71 |   display: block;
72 |   width: 0;
73 |   height: 0;
74 |   border: .5rem solid transparent;
75 |   border-top-color: rgba(0,0,0,.7);
76 |   position: absolute;
77 |   left: 50%;
78 |   transform: translateX(-50%);
79 |   top: 0;
80 |   opacity: 0;
81 |   transition: all .2s;
82 | }
83 | .has-tooltip:hover:before,
84 | .has-tooltip:hover:after {
85 |   opacity: 1;
86 |   visibility: visible;
87 |   transform: translate(-50%, -.5rem);
88 | }
89 |
参考:Hint.css
90 |
91 |
92 |
93 |
94 | -------------------------------------------------------------------------------- /part/css-treeview.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 13 |
14 |
15 |
16 | -------------------------------------------------------------------------------- /part/disabled-style.html: -------------------------------------------------------------------------------- 1 | 7 |
8 |
9 |
10 |
11 | 12 |
<a href="http://google.com" class="link" disabled="disabled">此链接被禁用</a>
13 |
.link[disabled] {
14 |   opacity: .5;
15 |   pointer-events: none;
16 | }
17 |
18 |
19 |
20 |
21 | -------------------------------------------------------------------------------- /part/drop-cap.html: -------------------------------------------------------------------------------- 1 | 8 |
9 |
10 |
11 |
12 |
13 |

近塞上之人,有善术者,马无故亡而入胡。人皆吊之,其父曰:“此何遽不为福乎?”居数月,其马将胡骏马而归。人皆贺之,其父曰:“此何遽不能为祸乎?”家富良马,其子好骑,堕而折其髀。人皆吊之,其父曰:“此何遽不为福乎?”居一年,胡人大入塞,丁壮者引弦而战。近塞之人,死者十九。此独以跛之故,父子相保。

14 |
15 |
<p class="drop-cap">近塞上之人,有善术者,马无故亡而入胡。人皆吊之,其父曰:“此何遽不为福乎?”居数月,其马将胡骏马而归。人皆贺之,其父曰:“此何遽不能为祸乎?”家富良马,其子好骑,堕而折其髀。人皆吊之,其父曰:“此何遽不为福乎?”居一年,胡人大入塞,丁壮者引弦而战。近塞之人,死者十九。此独以跛之故,父子相保。</p>
16 |
p.drop-cap:first-letter {
17 |   font-size: 2em;
18 |   float: left;
19 |   margin-right: .25em;
20 | }
21 |
22 |
23 |
24 |
25 | -------------------------------------------------------------------------------- /part/dropdown-icon.html: -------------------------------------------------------------------------------- 1 | 32 |
33 |
34 |
35 |
36 |
37 |
天天向下
38 |
天天向上
39 |
天天向左
40 |
天天向右
41 |
42 |
<div class="caret-down">天天向下</div>
43 | <div class="caret-up">天天向上</div>
44 | <div class="caret-left">天天向左</div>
45 | <div class="caret-rigth">天天向右</div>
46 |
.caret-down:after,
47 | .caret-up:after,
48 | .caret-left:after,
49 | .caret-rigth:after {
50 |   position: relative;
51 |   content: ' ';
52 |   display: inline-block;
53 |   width: 0;
54 |   height: 0;
55 |   border: .3rem solid transparent;
56 |   vertical-align: middle;
57 |   margin-left: .25rem;
58 | }
59 | .caret-down:after {
60 |   border-top-color: #03A9F4;
61 |   top: .1rem;
62 | }
63 | .caret-up:after {
64 |   border-bottom-color: #03A9F4;
65 |   bottom: .1rem;
66 | }
67 | .caret-left:after {
68 |   border-right-color: #03A9F4;
69 |   right: .1rem;
70 | }
71 | .caret-rigth:after {
72 |   border-left-color: #03A9F4;
73 |   left: .1rem;
74 | }
75 |
76 |
77 |
78 |
79 | -------------------------------------------------------------------------------- /part/dropdown-menu.html: -------------------------------------------------------------------------------- 1 | 37 |
38 |
39 |
40 |
41 |
42 | 64 |
65 |
<div class="dropdown">
 66 |   <a class="btn primary">检查下拉菜单 <i class="icon-caret-down"></i></a>
 67 |   <ul class="dropdown-menu">
 68 |     <li><a>产品</a></li>
 69 |     <li>
 70 |       <a>项目 <i class="icon-caret-right"></i></a>
 71 |       <ul class="dropdown-menu">
 72 |         <li><a>火星救援</a></li>
 73 |         <li>
 74 |           <a>太阳系远征 <i class="icon-caret-right"></i></a>
 75 |           <ul class="dropdown-menu">
 76 |             <li><a>半人马</a></li>
 77 |             <li><a>红蝎子</a></li>
 78 |             <li><a>阿尔法狗</a></li>
 79 |           </ul>
 80 |         </li>
 81 |         <li><a>月球漫步</a></li>
 82 |       </ul>
 83 |     </li>
 84 |     <li><a>任务</a></li>
 85 |   </ul>
 86 | </div>
87 |
.dropdown {
 88 |     position: relative;
 89 | }
 90 | .dropdown:hover > .dropdown-menu,
 91 | .dropdown.open > .dropdown-menu {
 92 |     display: block;
 93 |     position: absolute;
 94 |     top: 100%;
 95 |     left: 0;
 96 |     max-height: initial;
 97 | }
 98 | .dropdown-menu  {
 99 |     padding: 0;
100 |     overflow: visible;
101 | }
102 | .dropdown-menu > li {
103 |     display: block;
104 |     position: relative;
105 | 
106 | }
107 | .dropdown-menu > li > a {
108 |     padding: .5rem;
109 |     display: block;
110 | }
111 | .dropdown-menu > li > a > .icon-caret-right {
112 |     float: right;
113 | }
114 | .dropdown-menu > li:hover > a + .dropdown-menu {
115 |     display: block;
116 |     position: absolute;
117 |     top: 0;
118 |     left: 100%;
119 |     max-height: initial;
120 | }
121 |
122 |
123 |
124 |
125 | -------------------------------------------------------------------------------- /part/expand-hit-area.html: -------------------------------------------------------------------------------- 1 | 38 |
39 |
40 |
41 |
42 |
43 |
<button type="button" class="btn btn-expand">按钮</button>
44 |
.btn-expand {
45 |     position: relative;
46 |     background: #03A9F4;
47 |     color: #fff;
48 |     margin: 1rem;
49 | }
50 | .btn-expand:after {
51 |     position: absolute;
52 |     top: -1rem;
53 |     right: -1rem;
54 |     bottom: -1rem;
55 |     left: -1rem;
56 |     display: block;
57 |     content: ' ';
58 |     transition: .3s cubic-bezier(.175, .885, .32, 1);
59 |     transform: scale(.6);
60 |     opacity: 0;
61 |     background-color: transparent;
62 |     box-shadow: 0 0 0 .05rem #000;
63 | }
64 | .btn-expand:hover:after,
65 | .btn-expand.hover:after {
66 |     transform: scale(1);
67 |     opacity: .15;
68 |     background-color: #000;
69 | }
70 | .btn-expand:focus {
71 |     outline: none;
72 | }
73 | .btn-expand:focus:after {
74 |     transform: scale(1);
75 |     opacity: .2;
76 |     background-color: rgba(0, 0, 0, .8);
77 |     box-shadow: inset 0 0 0 .05rem rgba(0, 0, 0, .9);
78 | }
79 |
80 |
81 |
82 |
83 | -------------------------------------------------------------------------------- /part/file-input-control.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |

参考:

7 | 10 |
11 |
12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /part/fix-border.html: -------------------------------------------------------------------------------- 1 | 10 |
11 |
12 |
13 |
14 |
15 | 22 |
23 |
<nav class="nav nav-outline">
24 |   <a><i class="icon-home"></i></a>
25 |   <a>产品</a>
26 |   <a>项目</a>
27 |   <a>需求</a>
28 |   <a>Bug</a>
29 | </nav>
30 |
.nav-outline > a {
31 |   border: 1px solid red;
32 |   border-right: none;
33 | }
34 | .nav-outline > a:last-child {
35 |   border-right: 1px solid red;
36 | }
37 |
38 |
39 |
40 |
41 | -------------------------------------------------------------------------------- /part/flip-card.html: -------------------------------------------------------------------------------- 1 | 25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |

抽奖

33 |
34 |
35 |

欧耶
今日你值日

36 |
37 |
38 |
39 |
<div class="flip-card rounded shadow">
40 |   <div class="front content red flex flex-center">
41 |     <h1 class="text-center">抽奖</h1>
42 |   </div>
43 |   <div class="back content green flex flex-center">
44 |     <h1 class="text-center">欧耶<br>今日你值日</h1>
45 |   </div>
46 | </div>
47 |
.flip-card,
48 | .flip-card > .content {
49 |   height: 10rem;
50 |   transition: opacity .5s, transform .5s;
51 | }
52 | .flip-card > .content.back {
53 |   opacity: 0;
54 |   position: absolute;
55 |   left: 0;
56 |   top: 0;
57 |   right: 0;
58 | }
59 | .flip-card:hover {
60 |   transform: rotateY(180deg);
61 | }
62 | .flip-card:hover > .content.front {
63 |   opacity: 0;
64 | }
65 | .flip-card:hover > .content.back {
66 |   opacity: 1;
67 |   transform: rotateY(180deg);
68 | }
69 |
70 |
71 |
72 |
73 | -------------------------------------------------------------------------------- /part/focus-input.html: -------------------------------------------------------------------------------- 1 | 4 |
5 |
6 |
7 |
8 |
9 | 10 | 11 |
点击并激活上面的电子邮件输入框
12 |
13 |
<div class="control">
14 |   <label for="email">电子邮件</label>
15 |   <input name="email" type="email" class="input" placeholder="example@email.com">
16 | </div>
17 |
.input:focus {
18 |   border: .05rem solid red;
19 | }
20 |
21 |
22 |
23 |
24 | -------------------------------------------------------------------------------- /part/font-icons.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | 7 |
8 |
<i class="icon-star"></i>
9 |
.icon-star:before{
10 |   content: '\e606';
11 | }
12 |
13 |

参考

14 | 18 |
19 |
20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /part/hide-empty-content.html: -------------------------------------------------------------------------------- 1 | 4 |
5 |
6 |
7 |
8 |
9 |

我的下方有 3 个空段落。

10 |

11 |

12 |

13 |

我的上方有 3 个空段落。

14 |
15 |
<p>我的下方有 3 个空段落。</p>
16 | <p></p>
17 | <p></p>
18 | <p></p>
19 | <p>我的上方有 3 个空段落。</p>
20 |
p:empty {display: none;}
21 |
22 |
23 |
24 |
25 | -------------------------------------------------------------------------------- /part/highlight-content.html: -------------------------------------------------------------------------------- 1 | 17 |
18 |
19 |
20 |
21 |
22 |

这段话里面有些 重要内容 需要你注意。

23 |
24 |
<p>这段话里面有些 <span class="highlight">重要内容</span> 需要你注意。</p>
25 |
.highlight {
26 |   position: relative;
27 | }
28 | .highlight:before {
29 |   content: ' ';
30 |   display: block;
31 |   position: absolute;
32 |   left: 0;
33 |   top: 0;
34 |   right: 0;
35 |   bottom: 0;
36 |   border: .05rem solid rgba(0,255,0, .8);
37 |   background: rgba(0,255,0, .1);
38 | }
39 |
40 |
41 |
42 |
43 | -------------------------------------------------------------------------------- /part/image-flip.html: -------------------------------------------------------------------------------- 1 | 24 |
25 |
26 |
27 |
28 | 29 | 30 |
31 |

CSS 魔法类

32 |
33 |
34 |
点击图片查看效果
35 |
<a class="img-box">
36 |   <img src="img/magic-tree.png" alt="">
37 |   <div class="back-content flex flex-center">
38 |     <h1 class="text-center" style="font-size: 2rem;"><span class="code text-yellow">C</span><span class="code text-red">S</span><span class="code text-purple">S</span> 魔法类</h1>
39 |   </div>
40 | </a>
41 |
.img-box {
42 |   overflow: hidden;
43 |   display: block;
44 |   margin-bottom: .5rem;
45 |   position: relative;
46 | }
47 | .img-box > .back-content {
48 |   opacity: 0;
49 |   visibility: hidden;
50 |   transition: all .5s;
51 |   position: absolute;
52 |   left: 0;
53 |   top: 0;
54 |   right: 0;
55 |   bottom: 0;
56 |   background-color: rgba(255,255,255,.9);
57 | }
58 | .img-box:hover > .back-content {
59 |   opacity: 1;
60 |   visibility: visible;
61 | }
62 |
63 |
64 |
65 |
66 | -------------------------------------------------------------------------------- /part/image-scale.html: -------------------------------------------------------------------------------- 1 | 12 |
13 |
14 |
15 |
16 | 17 |
点击图片查看效果
18 |
<a class="img-box"><img src="img/magic-tree.png" alt=""></a>
19 |
.img-box {
20 |   overflow: hidden;
21 |   display: block;
22 |   margin-bottom: .5rem;
23 | }
24 | .img-box:hover > img {
25 |   transform: scale(1.5);
26 |   transition: transform .2s;
27 | }
28 |
29 |
30 |
31 |
32 | -------------------------------------------------------------------------------- /part/irregular-shadow.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |

参考:

7 | 10 |
11 |
12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /part/links.html: -------------------------------------------------------------------------------- 1 | 19 |
20 |
21 |
22 |
23 | 24 |
a:link {color: red}
25 |
26 |
27 |
28 |
29 | 30 |
a:hover {
31 |   color: #fff;
32 |   background-color: red;
33 | }
34 |
35 |
36 |
37 |
38 | 39 |
a:visited {color: #000}
40 |
41 |
42 |
43 |
44 | 45 |
a:active {
46 |   color: red;
47 |   text-decoration: underline;
48 | }
49 |
50 |
51 |
52 |
53 | 54 |
a:focus {
55 |   color: red;
56 |   border: 1px solid red;
57 | }
58 |
59 |
60 |
61 |
62 | -------------------------------------------------------------------------------- /part/md-input.html: -------------------------------------------------------------------------------- 1 | 49 |
50 |
51 |
52 |
53 |

下面是一个用纯 CSS 实现的 Material Design 风格的输入框。

54 |
55 |
56 | 57 | 58 |
59 |
60 |
<div class="md-input">
 61 |   <input type="text" class="input" id="account" name="account" required>
 62 |   <label for="account">用户名</label>
 63 | </div>
64 |
.md-input {
 65 |   padding-top: 1rem;
 66 |   position: relative;
 67 | }
 68 | .md-input > label {
 69 |   position: absolute;
 70 |   line-height: 1rem;
 71 |   height: 2.5rem;
 72 |   padding: 1.25rem 0 0.25rem 0;
 73 |   top: 0;
 74 |   left: 0;
 75 |   right: 0;
 76 |   transition: all .4s;
 77 | }
 78 | .md-input > label:before {
 79 |   content: " ";
 80 |   display: block;
 81 |   position: absolute;
 82 |   background-color: red;
 83 |   height: .1rem;
 84 |   left: 50%;
 85 |   right: 50%;
 86 |   bottom: 0;
 87 |   transition: left .3s, right .3s;
 88 | }
 89 | .md-input > input {
 90 |   border-width: 0;
 91 |   border-bottom-width: .1rem; 
 92 |   padding-left: 0;
 93 |   padding-right: 0;
 94 | }
 95 | .md-input > input:focus {
 96 |   border-color: #ccc;
 97 | }
 98 | .md-input > input:valid + label,
 99 | .md-input > input:focus + label {
100 |   padding-top: 0.25rem;
101 |   padding-bottom: 1.25rem;
102 |   font-size: .6rem;
103 |   color: #666;
104 | }
105 | .md-input > input:valid + label:before,
106 | .md-input > input:focus + label:before {
107 |   left: 0;
108 |   right: 0;
109 | }
110 |
111 |
112 |
113 |
114 | -------------------------------------------------------------------------------- /part/ratio-and-checkbox.html: -------------------------------------------------------------------------------- 1 | 9 |
10 |
11 |
12 |
13 |
14 | 15 |
16 |
<label class="checkbox-skin"><input type="checkbox"> <span>选中就是绿色,不选中就是红色</span></label>
17 |
.checkbox-skin > input + span {
18 |   color: red;
19 | }
20 | .checkbox-skin > input:checked + span {
21 |   color: green;
22 | }
23 |
24 |
25 |
26 |
27 | -------------------------------------------------------------------------------- /part/responsive-media.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 14 |
15 |
16 | -------------------------------------------------------------------------------- /part/responsive-square.html: -------------------------------------------------------------------------------- 1 | 11 |
12 |
13 |
14 |
15 |

旋转设备屏幕或者更改浏览器窗口宽度,下方的红色矩形方块会保持 1:1 的比例。

16 |
17 |
<div class="red square"></div>
18 |
.square {
19 |   width: 100%;
20 | }
21 | .square:before {
22 |   content: " ";
23 |   display: block;
24 |   padding-top: 100%;
25 | }
26 |
27 |

参考:

28 | 31 |
32 |
33 |
34 |
35 |
36 | -------------------------------------------------------------------------------- /part/root.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
:root {
 5 |   font-size: .7rem;
 6 | }
7 |
8 |
9 |
10 | -------------------------------------------------------------------------------- /part/select-inputs.html: -------------------------------------------------------------------------------- 1 | 6 |
7 |
8 |
9 |
10 |
11 |
选中所有类型的文本框,设置其边框颜色为红色。
12 |
13 | 14 | 15 |
16 |
17 | 18 | 19 |
20 |
21 | 22 | 23 |
24 |
25 | 26 |
27 |
28 |
.my-form input:not([type="submit"]) {
29 |   border: 2px solid red;
30 | }
31 |
32 |
33 |
34 |
35 | -------------------------------------------------------------------------------- /part/selection-style.html: -------------------------------------------------------------------------------- 1 | 7 |
8 |
9 |
10 |
11 |
12 |

茅屋为秋风所破歌

13 |

唐 · 杜甫

14 |

八月秋高风怒号,卷我屋上三重茅。茅飞渡江洒江郊,高者挂罥长林梢,下者飘转沉塘坳。

15 |

南村群童欺我老无力,忍能对面为盗贼,公然抱茅入竹去。唇焦口燥呼不得,归来倚杖自叹息。

16 |

俄顷风定云墨色,秋天漠漠向昏黑。布衾多年冷似铁,娇儿恶卧踏里裂。床头屋漏无干处,雨脚如麻未断绝。自经丧乱少睡眠,长夜沾湿何由彻?

17 |

安得广厦千万间,大庇天下寒士俱欢颜,风雨不动安如山!呜呼!何时眼前突兀见此屋,吾庐独破受冻死亦足!

18 |
19 |

选择一些文本来查看选中的文本外观。

20 |
::selection {
21 |   background-color: #76be35;
22 |   color: #000;
23 | }
24 |
25 |
26 |
27 |
28 | -------------------------------------------------------------------------------- /part/show-empty-links.html: -------------------------------------------------------------------------------- 1 | 9 |
10 |
11 |
12 |
13 |
14 |

这里包含一个空链接 ,使用伪类 :empty:before 可以使其显示出来,并使得其可以被点击。

15 |
16 |
<p>这里包含一个空链接 <a href="http://zui.sexy" title="zui 官方网站"></a>,使用伪类 <code>:empty</code> 和 <code>:before</code> 可以使其显示出来。 </p>
17 |
a:empty:before {
18 |   content: attr(href);
19 |   color: #2196F3;
20 |   font-weight: bold;
21 |   border-bottom: 1px dashed #2196F3;
22 | }
23 |
24 |
25 |
26 |
27 | -------------------------------------------------------------------------------- /part/sprite-icons.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |

Sprite 图片:

7 | 8 |

Sprite 图标:

9 |

10 |

11 |
12 |
<p>Sprite 图片:</p>
13 | <img src="img/sprite.png" alt="" class="shadow">
14 | <p>Sprite 图标:</p>
15 | <p><i class="sprite sprite-face1"></i></p>
16 | <p><i class="sprite sprite-face2"></i></p>
17 |
.sprite:before {
18 |   content: ' ';
19 |   background-position: no-repeat;
20 |   background: url(img/sprite.png) no-repeat;
21 |   display: inline-block;
22 |   width: 1.5rem;
23 |   height: 1.5rem;
24 | }
25 | .sprite-face1:before {
26 |   background-position: 0 0;
27 | }
28 | .sprite-face2:before {
29 |   background-position: -30px 0;
30 | }
31 |
32 |
33 |
34 |
35 | 51 | -------------------------------------------------------------------------------- /part/switch.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |

参考:

7 | 10 |
11 |
12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /part/table-striped.html: -------------------------------------------------------------------------------- 1 | 6 |
7 |
8 |
9 |
10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |
ID名称积分排名
1526小马虎1056 1
1001勇敢的小鸭999 12
1045鸡大爷998 23
1025猪无畏860 25
1102糊涂虫749 30
53 |
54 |
<table class="table striped-table">
 55 | <thead>
 56 |   <tr>
 57 |     <th>ID</th>
 58 |     <th>名称</th>
 59 |     <th>积分</th>
 60 |     <th>排名</th>
 61 |   </tr>
 62 | </thead>
 63 | <tbody>
 64 |   <tr>
 65 |     <td>1526</td>
 66 |     <td>小马虎</td>
 67 |     <td>1056</td>
 68 |     <td class="text-red"><i class="icon icon-double-angle-up"></i> 1 </td>
 69 |   </tr>
 70 |   <tr>
 71 |     <td>1001</td>
 72 |     <td>勇敢的小鸭</td>
 73 |     <td>999</td>
 74 |     <td class="text-red"><i class="icon icon-double-angle-up"></i> 12 </td>
 75 |   </tr>
 76 |   <tr>
 77 |     <td>1045</td>
 78 |     <td>鸡大爷</td>
 79 |     <td>998</td>
 80 |     <td class="text-green"><i class="icon icon-double-angle-up"></i> 23 </td>
 81 |   </tr>
 82 |   <tr>
 83 |     <td>1025</td>
 84 |     <td>猪无畏</td>
 85 |     <td>860</td>
 86 |     <td class="text-green"><i class="icon icon-double-angle-down"></i> 25 </td>
 87 |   </tr>
 88 |   <tr>
 89 |     <td>1102</td>
 90 |     <td>糊涂虫</td>
 91 |     <td>749</td>
 92 |     <td class="text-red"><i class="icon icon-double-angle-up"></i> 30 </td>
 93 |   </tr>
 94 | </tbody>
 95 | </table>
96 |
.striped-table > tbody > tr:nth-child(odd) > td {
 97 |   background-color: #fff0d5;
 98 | }
99 |
100 |
101 |
102 |
103 | -------------------------------------------------------------------------------- /part/toc-highlight.html: -------------------------------------------------------------------------------- 1 | 7 |
8 |
9 |
10 |
11 |
12 |

杜甫诗歌精选

13 |
14 | 20 |
21 |
22 |

春望

23 |

国破山河在,城春草木深。

24 |

感时花溅泪,恨别鸟惊心。

25 |

烽火连三月,家书抵万金。

26 |

白头搔更短,浑欲不胜簪。

27 |
28 |
29 |

春夜喜雨

30 |

好雨知时节,当春乃发生。

31 |

随风潜入夜,润物细无声。

32 |

野径云俱黑,江船火独明。

33 |

晓看红湿处,花重锦官城。

34 |
35 |
36 |

绝句

37 |

两个黄鹂鸣翠柳,一行白鹭上青天。

38 |

窗含西岭千秋雪,门泊东吴万里船。

39 |
40 |
41 |

望岳

42 |

岱宗夫如何?齐鲁青未了。

43 |

造化钟神秀,阴阳割昏晓。

44 |

荡胸生曾云,决眦入归鸟。

45 |

会当凌绝顶,一览众山小。

46 |
47 |
48 |
<div class="article">
49 |   <h1>杜甫诗歌精选</h1>
50 |   <div class="box outline gray space-sm">
51 |     <ul class="no-margin">
52 |       <li><a href="#p1">春望</a></li>
53 |       <li><a href="#p2">春夜喜雨</a></li>
54 |       <li><a href="#p3">绝句</a></li>
55 |       <li><a href="#p4">望岳</a></li>
56 |     </ul>
57 |   </div>
58 |   <div id="p1" class="box poetry">
59 |     <h3>春望</h3>
60 |     <p>国破山河在,城春草木深。</p>
61 |     <p>感时花溅泪,恨别鸟惊心。</p>
62 |     <p>烽火连三月,家书抵万金。</p>
63 |     <p>白头搔更短,浑欲不胜簪。</p>
64 |   </div>
65 |   <div id="p2" class="box poetry">
66 |     <h3>春夜喜雨</h3>
67 |     <p>好雨知时节,当春乃发生。</p>
68 |     <p>随风潜入夜,润物细无声。</p>
69 |     <p>野径云俱黑,江船火独明。</p>
70 |     <p>晓看红湿处,花重锦官城。</p>
71 |   </div>
72 |   <div id="p3" class="box poetry">
73 |     <h3>绝句</h3>
74 |     <p>两个黄鹂鸣翠柳,一行白鹭上青天。</p>
75 |     <p>窗含西岭千秋雪,门泊东吴万里船。</p>
76 |   </div>
77 |   <div id="p4" class="box poetry">
78 |     <h3>望岳</h3>
79 |     <p>岱宗夫如何?齐鲁青未了。</p>
80 |     <p>造化钟神秀,阴阳割昏晓。</p>
81 |     <p>荡胸生曾云,决眦入归鸟。</p>
82 |     <p>会当凌绝顶,一览众山小。</p>
83 |   </div>
84 | </div>
85 |
.poetry:target {
86 |   background-color: #ddf4df;
87 |   border-color: #76be35;
88 | }
89 |
90 |
91 |
92 |
93 | -------------------------------------------------------------------------------- /part/toggle-button.html: -------------------------------------------------------------------------------- 1 | 27 |
28 |
29 |
30 |
31 |
32 | 36 |
37 |
<button type="button" class="btn toggle-btn primary">
38 |   <div class="normal-content"><i class="icon-download-alt"></i> 立即下载</div>
39 |   <div class="hover-content">大小:120GB</div>
40 | </button>
41 |
.toggle-btn {
42 |   position: relative;
43 |   width: 6rem;
44 |   border: none;
45 |   overflow: hidden;
46 | }
47 | .toggle-btn > div {
48 |   position: absolute;
49 |   top: 0;
50 |   left: 0;
51 |   width: 100%;
52 |   line-height: 1.5rem;
53 |   transition: .2s top;
54 | }
55 | .toggle-btn > .hover-content {
56 |   top: 1.5rem;
57 |   background-color: #76be35;
58 | }
59 | .toggle-btn:hover > .normal-content {
60 |   top: -1.5rem;
61 | }
62 | .toggle-btn:hover > .hover-content {
63 |   top: 0;
64 | }
65 |
66 |
67 |
68 |
69 | -------------------------------------------------------------------------------- /part/top-shadow.html: -------------------------------------------------------------------------------- 1 | 17 |
18 |
19 |
20 |
21 |
22 |
<div class="has-top-shadow"><img src="img/magic-tree.png" alt=""></div>
23 |
.has-top-shadow {
24 |   position: relative;
25 |   overflow: hidden;
26 | }
27 | .has-top-shadow:before {
28 |   content: " ";
29 |   display: block;
30 |   position: absolute;
31 |   top: -20px;
32 |   left: -20px;
33 |   right: -20px;
34 |   height: 20px;
35 |   box-shadow: 0 .3rem 2rem rgba(0,0,0,.5);
36 | }
37 |
38 |
39 |
40 |
41 | -------------------------------------------------------------------------------- /part/triangle.html: -------------------------------------------------------------------------------- 1 | 25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
<div class="triangle"></div>
37 | <div class="triangle2"></div>
38 | <div class="triangle3"></div>
39 |
.triangle {
40 |   width: 0;
41 |   height: 0;
42 |   border: 2rem solid #e75c54;
43 |   border-left-color: #b06ce5;
44 |   border-right-color: #76be35;
45 |   border-bottom-color: #2196F3;
46 | }
47 | .triangle2 {
48 |   width: 0;
49 |   height: 0;
50 |   border: 2rem solid #e75c54;
51 |   border-right-color: #76be35;
52 |   border-bottom-color: #76be35;
53 | }
54 | .triangle3 {
55 |   width: 0;
56 |   height: 0;
57 |   border: 2rem solid #e75c54;
58 |   border-left-color: #76be35;
59 |   border-bottom-color: #76be35;
60 | }
61 |
62 |
63 |
64 |
65 | --------------------------------------------------------------------------------