-
Notifications
You must be signed in to change notification settings - Fork 108
/
Copy path常用的mixin样式(css, less, scss写法).css
123 lines (116 loc) · 2.87 KB
/
常用的mixin样式(css, less, scss写法).css
1
2
3
4
5
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// 1px
// 使用box-shadow都会让线有阴影,甚至颜色变浅
.border-1px(@color) {
box-shadow: 0px 0px 1px 0px @color inset;
}
// transform -> less, scss
.border-1px {
position: relative;
&::before {
content: "";
position: absolute;
left: 0;
top: 0;
width: 200%;
border:1px solid #ccc;
color: red;
height: 200%;
-webkit-transform-origin: left top;
transform-origin: left top;
-webkit-transform: scale(0.5);
transform: scale(0.5);
pointer-events: none;
box-sizing: border-box;
@media screen and (min-device-pixel-ratio:3), (-webkit-min-device-pixel-ratio:3) {
width: 300%;
height: 300%;
-webkit-transform: scale(0.33);
transform: scale(0.33);
}
}
}
.border-1px {
overflow: hidden;
position: relative;
border: none!important;
}
.border-1px::after {
content: ".";
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 1px;
background-color: #ccc;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: scaleY(0.5);
transform: scaleY(0.5);
}
// media
.border-1px {
border: 1px solid #ccc;
}
@media screen and (-webkit-min-device-pixel-ratio: 2) {
.border-1px {
border: 1px solid #ccc;
}
}
@media screen and (-webkit-min-device-pixel-ratio: 3) {
.border-1px {
border: 1px solid #ccc;
}
}
// clear 清除浮动
.clearfix {
*zoom: 1
}
.clearfix:before, .clearfix:after {
display: table;
line-height: 0;
content: "";
}
.clearfix:after {
clear: both
}
// 单行显示
.single-line-camp {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
// 多行显示, 以下方式注意浏览器兼容
/*
* 在webkit浏览器或移动端(绝大部分是webkit内核的浏览器)可以直接使用webkit的css扩展属性(webkit是私有属性)-webkit-line-clamp;
* 注意:这是一个不规范的属性,它没有在CSS的规范草案中
* -webkit-line-clamp用来限制在一个块元素显示的文本行数,为了实现效果,他要与一下webkit属性结合使用:
* display: -webkit-box;(必须结合的属性,将对象作为弹性伸缩盒子模型展示)
* -webkit-box-orient(必须结合的属性,设置或检索伸缩盒对象的子元素的排列方式)
*/
// less
.line-camp(@clamp: 3) {
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: @clamp;
-webkit-box-orient: vertical;
}
// scss mixin
@mixin line-camp($clamp) {
text-overflow: ellipsis;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: $clamp;
-webkit-box-orient: vertical;
}
// 文字对齐
.text-align-style (@align: 'justify') {
text-align: @align;
text-align-last: @align;
}
.text-align-style::after {
content: '';
display: inline-block;
width: 100%;
}