zui
Version:
一个基于 Bootstrap 深度定制开源前端实践方案,帮助你快速构建现代跨屏应用。
488 lines (464 loc) • 12 kB
text/less
/// ========================================================================
/// Chosen: chosen.less
/// https://github.com/harvesthq/chosen/blob/master/sass/chosen.scss
/// Chosen, a Select Box Enhancer for jQuery and Prototype
/// by Patrick Filler for Harvest, http://getharvest.com
///
/// ZUI: The file has been changed in ZUI. It will not keep update with the
/// Chosen version in the future.
/// http://openzui.com
/// ========================================================================
/// Chosen: MIT License
/// https://github.com/harvesthq/chosen/blob/master/LICENSE.md
/// Full source at https://github.com/harvesthq/chosen
/// Copyright (c) 2011-2016 Harvest http://getharvest.com
/// ========================================================================
/*!
* Chosen, a Select Box Enhancer for jQuery and Prototype
* by Patrick Filler for Harvest, http://getharvest.com
*
* Copyright (c) 2011-2016 Harvest http://getharvest.com
* MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
*/
// Depends on the dropdown.less
// @group Base //
.chosen-container {
position: relative;
display: block;
font-size: @font-size-base;
zoom: 1;
user-select: none;
vertical-align: middle;
.chosen-drop {
position: absolute;
top: 100%;
display: none;
z-index: 1010;
width: 100%;
border: 1px solid @dropdown-fallback-border; // IE8 fallback
border: 1px solid @dropdown-border;
border-top: 0;
background: #fff;
box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
&.chosen-drop-size-limited {
border-top: 1px solid @dropdown-border;
}
&.chosen-auto-max-width {
border-top: 1px solid @dropdown-border;
opacity: 0;
min-width: 100%;
> .chosen-results > li {
display: inline-block;
white-space: nowrap;
}
&.in {
opacity: 1;
> .chosen-results > li {
display: block;
white-space: normal;
}
}
}
&.chosen-no-wrap {
> .chosen-results > li {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
&.chosen-with-drop .chosen-drop {
display: block;
}
a {
cursor: pointer;
}
&.chosen-up {
.chosen-drop {
bottom: 100%;
top: inherit;
border-radius: @input-border-radius @input-border-radius 0 0;
box-shadow: 0 -3px 5px rgba(0, 0, 0, .175);
margin-top: auto;
margin-bottom: -1px;
}
}
&.chosen-highlight-selected {
.result-selected {
background: @color-pale;
color: @color-primary;
}
}
}
// @end
// @group Single Chosen //
.chosen-container-single {
.chosen-single {
// position: relative;
display: block;
overflow: hidden;
padding: @padding-base-vertical @padding-small-horizontal;
height: @input-height-base;
width: 100%;
border: 1px solid @input-border;
border-radius: @input-border-radius;
background-color: @input-bg;
background-clip: padding-box;
color: @input-color;
text-decoration: none;
white-space: nowrap;
line-height: @line-height-base;
box-shadow: @input-shadow;
.transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
}
.chosen-default {
color: @input-color-placeholder;
}
.chosen-single > span {
display: block;
overflow: hidden;
margin-right: 26px;
text-overflow: ellipsis;
white-space: nowrap;
}
.chosen-single-with-deselect span {
margin-right: 38px;
}
.chosen-single abbr {
position: absolute;
top: (@input-height-base - 20px)/2 - 1px;
right: 24px;
display: block;
width: 20px;
height: 20px;
line-height: 18px;
font-size: 18px;
font-weight: @close-font-weight;
color: @close-color;
text-shadow: @close-text-shadow;
text-align: center;
font-family: sans-serif;
.opacity(.2);
&:before {
display: block;;
content: '×';
}
&:hover,
&:focus {
color: @close-color;
text-decoration: none;
cursor: pointer;
.opacity(.5);
}
}
// &.chosen-disabled .chosen-single abbr:hover {}
.chosen-single div {
position: absolute;
top: 0;
right: 0;
display: block;
height: 100%;
padding: @padding-base-vertical @padding-small-horizontal;
b {
.caret();
// display: block;
// width: 100%;
// height: 100%;
// background: @chosen-sprite no-repeat 0px 2px;
}
}
.chosen-search {
position: relative;
z-index: 1010;
margin: 0;
padding: 3px 4px;
white-space: nowrap;
input[type="text"] {
margin: 1px 0;
padding: @padding-small-vertical 26px @padding-small-vertical @padding-small-horizontal;
width: 100%;
height: 27px;
outline: 0;
border: 1px solid @input-border;
border-radius: @input-border-radius;
background-color: @input-bg;
font-size: @font-size-small;
line-height: @line-height-small;
&:focus {
border-color: @input-border-focus;
}
}
&:before {
position: absolute;
display: block;
right: 10px;
color: @color-gray;
top: 10px;
content: @icon-search;
.icon-zenicon();
}
}
.chosen-drop {
margin-top: -1px;
border-radius: 0 0 @border-radius-base @border-radius-base;
background-clip: padding-box;
}
&.chosen-container-single-nosearch .chosen-search {
position: absolute;
left: -9999px;
}
}
// @end
// @group Results //
.chosen-container .chosen-results {
position: relative;
overflow-x: hidden;
overflow-y: auto;
margin: 0;
padding: 0;
max-height: 240px;
-webkit-overflow-scrolling: touch;
li {
display: none;
margin: 0;
padding: 5px 10px;
list-style: none;
line-height: 15px;
-webkit-touch-callout: none;
.transition(background-color, @animation-speed-fast, @animation-type);
&.active-result {
display: list-item;
cursor: pointer;
}
&.disabled-result {
display: list-item;
color: #ccc;
cursor: default;
}
&.highlighted {
color: @dropdown-link-hover-color;
background-color: @dropdown-link-hover-bg;
}
&.no-results {
display: list-item;
background: #f4f4f4;
}
&.group-result {
display: list-item;
font-weight: bold;
cursor: default;
}
&.group-option {
padding-left: 15px;
}
em {
font-style: normal;
text-decoration: underline;
}
}
}
// @end
// @group Multi Chosen //
.chosen-container-multi {
.chosen-choices {
position: relative;
overflow: hidden;
margin: 0;
padding: 0;
width: 100%;
min-height: @input-height-base;
min-height: (@input-height-base - 2)~'\0';
border: 1px solid @input-border;
border-radius: @input-border-radius;
background-color: @input-bg;
cursor: text;
box-shadow: @input-shadow;
.transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
.clearfix-mixin();
}
.chosen-choices li {
display: block;
float: left;
list-style: none;
padding: 0 6px;
margin: (@input-height-base - 22px)/2 4px;
&.search-field {
padding: 0;
white-space: nowrap;
line-height: 12px;
input[type="text"] {
height: 20px;
outline: 0;
border: 0 ;
background: transparent ;
box-shadow: none;
color: @input-color-placeholder;
font-size: 100%;
border-radius: 0;
}
.default {
color: #999;
}
&:before {
.icon-zenicon();
content: @icon-search;
position: absolute;
display: block;
right: 8px;
bottom: 8px;
opacity: 0;
color: @color-gray;
.transition-fast(opacity);
}
}
&.search-choice {
position: relative;
padding: 3px 20px 3px 5px;
background-color: @color-gray-pale;
border-radius: @border-radius-small;
border: 1px solid @color-gray-light;
background-clip: padding-box;
box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0,0,0,.05);
line-height: 12px;
cursor: default;
.transition(all, @animation-speed-normal, @animation-type);
&:hover {
border-color: darken(@color-gray-light, 10%);
background-color: lighten(@color-gray-pale, 10%);
box-shadow: 0 1px 0 rgba(0,0,0,.1);
}
.search-choice-close {
position: absolute;
top: 1px;
right: 0px;
text-align: center;
display: block;
width: 20px;
height: 18px;
line-height: 18px;
text-align: center;
color: @close-color;
text-shadow: @close-text-shadow;
.opacity(.2);
&:before {
content: @icon-remove;
.icon-zenicon();
text-shadow: @close-text-shadow;
}
&:hover,
&:focus {
color: @close-color;
text-decoration: none;
cursor: pointer;
.opacity(.5);
}
}
}
&.search-choice-disabled {
padding-right: 5px;
border: 1px solid #ccc;
background-color: #e4e4e4;
color: #666;
}
&.search-choice-focus {
background: #d4d4d4;
.search-choice-close {
background-position: -42px -10px;
}
}
}
.chosen-results {
margin: 0;
padding: 5px 0;
// margin-top: ~'-1px\0';
}
.chosen-drop .result-selected {
display: list-item;
color: #ccc;
cursor: default;
}
}
// @end
// @group Active //
.chosen-container-active {
.chosen-single {
@color-rgba: rgba(red(@input-border-focus), green(@input-border-focus), blue(@input-border-focus), .6);
border-color: @input-border-focus;
box-shadow: @input-shadow, 0 0 8px @color-rgba;
}
&.chosen-with-drop {
.chosen-single {
border: 1px solid @dropdown-fallback-border; // IE8 fallback
border: 1px solid @dropdown-border;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
// @include background-image(linear-gradient(#eee 20%, #fff 80%));
box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
}
.chosen-single div {
border-left: none;
background: transparent;
b {
.caret-reverse();
}
}
&.chosen-up {
.chosen-single {
border-top-right-radius: 0;
border-top-left-radius: 0;
border-bottom-right-radius: @input-border-radius;
border-bottom-left-radius: @input-border-radius;
// @include background-image(linear-gradient(#eee 20%, #fff 80%));
box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
}
}
}
.chosen-choices {
@color-rgba: rgba(red(@input-border-focus), green(@input-border-focus), blue(@input-border-focus), .6);
border-color: @input-border-focus;
box-shadow: @input-shadow, 0 0 8px @color-rgba;
li.search-field input[type="text"] {
color: #111 ;
}
li.search-field:before {
opacity: 1;
}
}
}
// @end
// @group Disabled Support //
.chosen-disabled {
opacity: 0.5 ;
cursor: default;
.chosen-single {
cursor: default;
}
.chosen-choices .search-choice .search-choice-close {
cursor: default;
}
}
// Compact search
.chosen-compact {
&.chosen-container-single .chosen-single > .chosen-search {
display: none;
opacity: 0;
padding: 3px 4px;
left: 0;
> input {
height: 25px;
padding: 2px 26px 2px 4px;
font-size: inherit;
}
&:before {top: 9px;}
}
&.chosen-with-search.chosen-with-drop .chosen-single > .chosen-search {
display: block;
opacity: 1;
}
}
// Fix multiple select height change during chosen load
select.chosen[multiple] {
height: @input-height-base;
overflow: hidden;
option {visibility: hidden;}
}