移动端rem和PSD单位换算问题

设计图尺寸一般750宽度,而需要兼容640宽度手机的话,需要调整缩放比率,之前使用写死viewport的做法来实现,不过这个方法有点取巧,而且有些场景并不适用。
本文用标准的@media来实现

rem定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@media screen and (max-width: 750px) {
html {
font-size: 30px;
}
}

@media screen and (min-width: 640px) and (max-width: 749px) {
html {
font-size: 25px;
}
}

@media screen and (min-width: 480px) and (max-width: 639px) {
html {
font-size: 20px;
}
}

@media screen and (min-width: 320px) and (max-width: 479px) {
html {
font-size: 15px;
}
}

如何使用

假设PSD中有个button的大小为100px*40px,那使用rem时CSS如下

1
2
3
4
button {
width: 3.333rem;
height: 1.333rem;
}

css3实现三角形

移动端input和textarea宽度不一致的问题

今天在做写一个IOS端的表单时,尽管input,textarea设置了宽度,结果发现真机浏览的时候发现宽度不一致,有图为证
图片

css

1
2
3
4
5
6
7
8
9
10
input,
textarea {
border-radius: 4px;
border: 1px solid #4f4f4f;
font-size: 24px;
background: none;
outline: 0;
width: 283px;
-webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .4);
}

在PC版的chrome发现textarea有默认的padding属性,估计是这个问题,加上padding:0;之后,宽度一致了。
图片

css3打造炫酷loading

css3的优点就不多说了,一个很重要的,节约了带宽,以往需要使用图片的地方很多时候都可以使用CSS3来实现。 本文将带来一个利用CSS3制作loading的教程,这里直接上代码了。

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
@keyframes spin {
0% {
transform: rotate(0deg);
-webkit-transform: rotate(0deg);
}

100% {
transform: rotate(360deg);
-webkit-transform: rotate(360deg);
}
}

@-webkit-keyframes spin {
0% {
transform: rotate(0deg);
-webkit-transform: rotate(0deg);
}

100% {
transform: rotate(360deg);
-webkit-transform: rotate(360deg);
}
}

@keyframes spinoff {
0% {
transform: rotate(0deg);
-webkit-transform: rotate(0deg);
}

100% {
transform: rotate(-360deg);
-webkit-transform: rotate(-360deg);
}
}

@-webkit-keyframes spinoff {
0% {
transform: rotate(0deg);
-webkit-transform: rotate(0deg);
}

100% {
transform: rotate(-360deg);
-webkit-transform: rotate(-360deg);
}
}

body {
margin: 0;
}

.content {
width: 100px;
height: 100px;
position: relative;
margin: 10% auto 0 auto;
}

.content .ball {
top: 25px;
left: 25px;
width: 50px;
height: 50px;
position: absolute;
border-radius: 50px;
-webkit-border-radius: 50px;
border: 5px solid rgba(40,40,200,0.5);
border-left: 5px solid rgba(255,255,255,0.7);
border-top: 5px solid rgba(255,255,255,0.7);
box-shadow: 2px 2px 4px 0 rgba(40,40,200,0.4);
animation: spin .5s linear infinite;
-webkit-animation: spin .5s linear infinite;
}

.content .ball1 {
top: 35px;
left: 35px;
width: 30px;
height: 30px;
position: absolute;
border-radius: 30px;
-webkit-border-radius: 30px;
border: 5px solid rgba(40,40,200,0.8);
border-left: 5px solid rgba(255,255,255,1.0);
border-top: 5px solid rgba(255,255,255,1.0);
box-shadow: 2px 2px 4px 0 rgba(40,40,200,0.4);
animation: spinoff .5s linear infinite;
-webkit-animation: spinoff .5s linear infinite;
}

HTML代码

1
2
3
4
<div class="content">
<div class="ball"></div>
<div class="ball1"></div>
</div>

css水平居中和垂直居中

水平居中还是比较好弄的

1
2
3
4
{
margin-left: auto;
margin-right: auto;
}

但是垂直居中就比较麻烦,网上一大推文章都是什么display:table-cell,根本不管用。这里利用position属性可以达到这个目的。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×