antd-mobile-alita
Version:
基于 React 的移动设计规范实现
136 lines (135 loc) • 3.87 kB
CSS
.am-picker-col {
display: block;
position: relative;
height: 238px;
overflow: hidden;
width: 100%;
}
.am-picker-col-content {
position: absolute;
left: 0;
top: 0;
width: 100%;
z-index: 1;
padding: 102px 0;
}
.am-picker-col-item {
-ms-touch-action: manipulation;
touch-action: manipulation;
text-align: center;
font-size: 16px;
height: 34px;
line-height: 34px;
color: #000;
white-space: nowrap;
text-overflow: ellipsis;
}
.am-picker-col-item-selected {
font-size: 17px;
}
.am-picker-col-mask {
position: absolute;
left: 0;
top: 0;
height: 100%;
margin: 0 auto;
width: 100%;
z-index: 3;
background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6)), -webkit-linear-gradient(bottom, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6));
background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.95)), to(rgba(255, 255, 255, 0.6))), -webkit-gradient(linear, left bottom, left top, from(rgba(255, 255, 255, 0.95)), to(rgba(255, 255, 255, 0.6)));
background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6)), linear-gradient(to top, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6));
background-position: top, bottom;
background-size: 100% 102px;
background-repeat: no-repeat;
}
.am-picker-col-indicator {
-webkit-box-sizing: border-box;
box-sizing: border-box;
width: 100%;
height: 34px;
position: absolute;
left: 0;
top: 102px;
z-index: 3;
border-top: 1PX solid #ddd;
border-bottom: 1PX solid #ddd;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
html:not([data-scale]) .am-picker-col-indicator {
border-top: none;
}
html:not([data-scale]) .am-picker-col-indicator::before {
content: '';
position: absolute;
background-color: #ddd;
display: block;
z-index: 1;
top: 0;
right: auto;
bottom: auto;
left: 0;
width: 100%;
height: 1PX;
-webkit-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
transform-origin: 50% 50%;
-webkit-transform: scaleY(0.5);
-ms-transform: scaleY(0.5);
transform: scaleY(0.5);
}
}
@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {
html:not([data-scale]) .am-picker-col-indicator::before {
-webkit-transform: scaleY(0.33);
-ms-transform: scaleY(0.33);
transform: scaleY(0.33);
}
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
html:not([data-scale]) .am-picker-col-indicator {
border-bottom: none;
}
html:not([data-scale]) .am-picker-col-indicator::after {
content: '';
position: absolute;
background-color: #ddd;
display: block;
z-index: 1;
top: auto;
right: auto;
bottom: 0;
left: 0;
width: 100%;
height: 1PX;
-webkit-transform-origin: 50% 100%;
-ms-transform-origin: 50% 100%;
transform-origin: 50% 100%;
-webkit-transform: scaleY(0.5);
-ms-transform: scaleY(0.5);
transform: scaleY(0.5);
}
}
@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 2dppx) and (min-resolution: 3dppx) {
html:not([data-scale]) .am-picker-col-indicator::after {
-webkit-transform: scaleY(0.33);
-ms-transform: scaleY(0.33);
transform: scaleY(0.33);
}
}
.am-picker {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.am-picker-item {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
text-align: center;
}