Commit 1a274491caa516522760d1d8888240cf7565e379
1 parent
63e06640
first commit
Showing
71 changed files
with
4751 additions
and
0 deletions
Too many changes to show.
To preserve performance only 71 of 3809 files are displayed.
css/common.css
0 → 100644
1 | +* { | ||
2 | + -moz-tap-highlight-color: rgba(0, 0, 0, 0); | ||
3 | + -o-tap-highlight-color: rgba(0, 0, 0, 0); | ||
4 | + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); | ||
5 | +} | ||
6 | +html { | ||
7 | + height: 100%; | ||
8 | +} | ||
9 | +html, | ||
10 | +body, | ||
11 | +div, | ||
12 | +span, | ||
13 | +object, | ||
14 | +iframe, | ||
15 | +h1, | ||
16 | +h2, | ||
17 | +h3, | ||
18 | +h4, | ||
19 | +h5, | ||
20 | +h6, | ||
21 | +p, | ||
22 | +blockquote, | ||
23 | +pre, | ||
24 | +abbr, | ||
25 | +address, | ||
26 | +cite, | ||
27 | +code, | ||
28 | +del, | ||
29 | +dfn, | ||
30 | +em, | ||
31 | +img, | ||
32 | +ins, | ||
33 | +kbd, | ||
34 | +q, | ||
35 | +samp, | ||
36 | +small, | ||
37 | +strong, | ||
38 | +sub, | ||
39 | +sup, | ||
40 | +var, | ||
41 | +b, | ||
42 | +i, | ||
43 | +dl, | ||
44 | +dt, | ||
45 | +dd, | ||
46 | +ol, | ||
47 | +ul, | ||
48 | +li, | ||
49 | +fieldset, | ||
50 | +form, | ||
51 | +label, | ||
52 | +legend, | ||
53 | +table, | ||
54 | +caption, | ||
55 | +tbody, | ||
56 | +tfoot, | ||
57 | +thead, | ||
58 | +tr, | ||
59 | +th, | ||
60 | +td, | ||
61 | +article, | ||
62 | +aside, | ||
63 | +canvas, | ||
64 | +details, | ||
65 | +figcaption, | ||
66 | +figure, | ||
67 | +footer, | ||
68 | +header, | ||
69 | +menu, | ||
70 | +nav, | ||
71 | +section, | ||
72 | +summary, | ||
73 | +time, | ||
74 | +mark, | ||
75 | +audio, | ||
76 | +video { | ||
77 | + margin: 0; | ||
78 | + padding: 0; | ||
79 | + border: 0; | ||
80 | + outline: 0; | ||
81 | + vertical-align: baseline; | ||
82 | + background: transparent; | ||
83 | +} | ||
84 | +body { | ||
85 | + font: 12px/1.5 sans-serif; | ||
86 | + background-color: #F5F5F5; | ||
87 | + position: relative; | ||
88 | + color: #333; | ||
89 | + min-height: 100%; | ||
90 | + overflow-x: hidden; | ||
91 | +} | ||
92 | +article, | ||
93 | +aside, | ||
94 | +details, | ||
95 | +figcaption, | ||
96 | +figure, | ||
97 | +footer, | ||
98 | +header, | ||
99 | +menu, | ||
100 | +nav, | ||
101 | +section { | ||
102 | + display: block; | ||
103 | +} | ||
104 | +nav ul { | ||
105 | + list-style: none; | ||
106 | +} | ||
107 | +li { | ||
108 | + list-style: none; | ||
109 | +} | ||
110 | +em { | ||
111 | + font-style: normal; | ||
112 | +} | ||
113 | +ins { | ||
114 | + background-color: #ff9; | ||
115 | + color: #000; | ||
116 | + text-decoration: none; | ||
117 | +} | ||
118 | +mark { | ||
119 | + background-color: #ff9; | ||
120 | + color: #000; | ||
121 | + font-style: italic; | ||
122 | + font-weight: bold; | ||
123 | +} | ||
124 | +table { | ||
125 | + border-collapse: collapse; | ||
126 | + border-spacing: 0; | ||
127 | +} | ||
128 | +hr { | ||
129 | + display: block; | ||
130 | + height: 1px; | ||
131 | + border: 0; | ||
132 | + border-top: 1px solid #cccccc; | ||
133 | + margin: 0; | ||
134 | + padding: 0; | ||
135 | +} | ||
136 | +input, | ||
137 | +select { | ||
138 | + vertical-align: middle; | ||
139 | +} | ||
140 | +input:focus, | ||
141 | +button:focus { | ||
142 | + outline: none; | ||
143 | +} | ||
144 | +a { | ||
145 | + color: #333; | ||
146 | + text-decoration: none; | ||
147 | + margin: 0; | ||
148 | + padding: 0; | ||
149 | + vertical-align: baseline; | ||
150 | + background: transparent; | ||
151 | +} | ||
152 | +a:active, | ||
153 | +a:visited { | ||
154 | + color: #333; | ||
155 | +} | ||
156 | +input, | ||
157 | +img { | ||
158 | + border: 0; | ||
159 | + vertical-align: middle; | ||
160 | +} | ||
161 | +textarea, | ||
162 | +input, | ||
163 | +a { | ||
164 | + -webkit-tap-highlight-color: transparent; | ||
165 | +} | ||
166 | +/* 清除浮动 */ | ||
167 | +.clearfix, | ||
168 | +.clear { | ||
169 | + display: inline-table; | ||
170 | + zoom: 1; | ||
171 | +} | ||
172 | +* html .clearfix, | ||
173 | +* html .clear { | ||
174 | + height: 1%; | ||
175 | +} | ||
176 | +* html .clearfix, | ||
177 | +* html .clear { | ||
178 | + zoom: 1; | ||
179 | +} | ||
180 | +.clearfix, | ||
181 | +.clear { | ||
182 | + display: block; | ||
183 | +} | ||
184 | +.clear { | ||
185 | + clear: both; | ||
186 | +} | ||
187 | +.clearfix:after, | ||
188 | +.clear:after { | ||
189 | + content: " "; | ||
190 | + display: block; | ||
191 | + height: 0; | ||
192 | + clear: both; | ||
193 | + visibility: hidden; | ||
194 | + line-height: 0px; | ||
195 | +} | ||
196 | +.border-1px { | ||
197 | + position: relative; | ||
198 | +} | ||
199 | +.border-1px:before, | ||
200 | +.border-1px:after { | ||
201 | + border-top: 1px solid #e2e2e2; | ||
202 | + content: ''; | ||
203 | + display: block; | ||
204 | + width: 100%; | ||
205 | + position: absolute; | ||
206 | + left: 0; | ||
207 | + z-index: 1; | ||
208 | +} | ||
209 | +.border-1px:before { | ||
210 | + top: 0; | ||
211 | +} | ||
212 | +.border-1px:after { | ||
213 | + bottom: 0; | ||
214 | +} | ||
215 | +.border-1px.border-top:after { | ||
216 | + display: none; | ||
217 | +} | ||
218 | +.border-1px.border-bottom:before { | ||
219 | + display: none; | ||
220 | +} | ||
221 | +.border-1px-full { | ||
222 | + position: relative; | ||
223 | +} | ||
224 | +.border-1px-full:after { | ||
225 | + content: ''; | ||
226 | + position: absolute; | ||
227 | + top: 0; | ||
228 | + left: 0; | ||
229 | + z-index: 1; | ||
230 | + border: 1px solid #e2e2e2; | ||
231 | + -webkit-box-sizing: border-box; | ||
232 | + box-sizing: border-box; | ||
233 | + width: 200%; | ||
234 | + height: 200%; | ||
235 | + -webkit-transform: scale(0.5); | ||
236 | + transform: scale(0.5); | ||
237 | + -webkit-transform-origin: left top; | ||
238 | + transform-origin: left top; | ||
239 | +} | ||
240 | +@media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5) { | ||
241 | + .border-1px::after, | ||
242 | + .border-1px::before { | ||
243 | + -webkit-transform: scaleY(0.7); | ||
244 | + -webkit-transform-origin: 0 0; | ||
245 | + transform: scaleY(0.7); | ||
246 | + } | ||
247 | + .border-1px::after { | ||
248 | + -webkit-transform-origin: left bottom; | ||
249 | + } | ||
250 | +} | ||
251 | +@media (-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2) { | ||
252 | + .border-1px::after, | ||
253 | + .border-1px::before { | ||
254 | + -webkit-transform: scaleY(0.5); | ||
255 | + transform: scaleY(0.5); | ||
256 | + } | ||
257 | +} | ||
258 | +/*************************************************** | ||
259 | +* feature : 全局头部,提供默认 深色(绿底白字) & 浅色(白底黑字)主题; | ||
260 | +* update : 2015/02/03; | ||
261 | +* use : .m-header; | ||
262 | +* extend : .header-*; | ||
263 | +* example : <header class="m-header header-light"></header>; | ||
264 | +* desc : 默认为深色主题, 通过 .header-light 来引用浅色主题; | ||
265 | +* feedback : 此处填入 issue, 并请附带以下信息[os_version, browser_version, page_path, issue_description] | ||
266 | +* - demo => [windows 7, IE 8, http://diligrp.com/icon.html, 在不定height下未能垂直居中]; | ||
267 | +****************************************************/ | ||
268 | +.m-header { | ||
269 | + z-index: 5; | ||
270 | + color: #FFF; | ||
271 | + color: #ffffff; | ||
272 | + background-color: #23AC38; | ||
273 | + position: relative; | ||
274 | +} | ||
275 | +.m-header .head { | ||
276 | + padding: 0 50px; | ||
277 | + box-sizing: border-box; | ||
278 | + height: 44px; | ||
279 | + text-align: center; | ||
280 | +} | ||
281 | +.m-header .head h1 { | ||
282 | + display: inline-block; | ||
283 | + vertical-align: middle; | ||
284 | + line-height: 44px; | ||
285 | + font-weight: normal; | ||
286 | + font-size: 18px; | ||
287 | + white-space: nowrap; | ||
288 | + text-overflow: ellipsis; | ||
289 | + overflow: hidden; | ||
290 | +} | ||
291 | +.m-header .lt-bar, | ||
292 | +.m-header .rt-bar { | ||
293 | + position: absolute; | ||
294 | + left: 0; | ||
295 | + top: 0; | ||
296 | + bottom: 0; | ||
297 | + min-width: 44px; | ||
298 | + line-height: 44px; | ||
299 | + height: 100%; | ||
300 | + text-align: center; | ||
301 | + cursor: pointer; | ||
302 | + z-index: 1; | ||
303 | +} | ||
304 | +.m-header .lt-bar { | ||
305 | + float: left; | ||
306 | +} | ||
307 | +.m-header .lt-bar.text { | ||
308 | + padding-left: 10px; | ||
309 | + text-align: left; | ||
310 | +} | ||
311 | +.m-header .rt-bar { | ||
312 | + float: right; | ||
313 | + left: auto; | ||
314 | + right: 0; | ||
315 | +} | ||
316 | +.m-header .rt-bar.text { | ||
317 | + padding-right: 10px; | ||
318 | + text-align: right; | ||
319 | +} | ||
320 | +.m-header .text { | ||
321 | + text-align: center; | ||
322 | + line-height: 44px; | ||
323 | + font-size: 15px; | ||
324 | + color: #FFF; | ||
325 | +} | ||
326 | +.m-header.header-light { | ||
327 | + background-color: #FFF; | ||
328 | + color: #666; | ||
329 | +} | ||
330 | +.m-header.header-light .text { | ||
331 | + color: #666; | ||
332 | +} | ||
333 | +.m-header.header-light .m-input { | ||
334 | + color: #333; | ||
335 | +} | ||
336 | +.m-header.header-light .m-input::-webkit-input-placeholder { | ||
337 | + color: #999; | ||
338 | +} | ||
339 | +/* | ||
340 | + * Swiper 2.7.0 | ||
341 | + * Mobile touch slider and framework with hardware accelerated transitions | ||
342 | + * | ||
343 | + * http://www.idangero.us/sliders/swiper/ | ||
344 | + * | ||
345 | + * Copyright 2010-2014, Vladimir Kharlampidi | ||
346 | + * The iDangero.us | ||
347 | + * http://www.idangero.us/ | ||
348 | + * | ||
349 | + * Licensed under GPL & MIT | ||
350 | + * | ||
351 | + * Released on: August 30, 2014 | ||
352 | +*/ | ||
353 | +/* =============================================================== | ||
354 | +Basic Swiper Styles | ||
355 | +================================================================*/ | ||
356 | +.swiper-container { | ||
357 | + margin: 0 auto; | ||
358 | + position: relative; | ||
359 | + overflow: hidden; | ||
360 | + -webkit-backface-visibility: hidden; | ||
361 | + -moz-backface-visibility: hidden; | ||
362 | + -ms-backface-visibility: hidden; | ||
363 | + -o-backface-visibility: hidden; | ||
364 | + backface-visibility: hidden; | ||
365 | + /* Fix of Webkit flickering */ | ||
366 | + z-index: 1; | ||
367 | +} | ||
368 | +.swiper-wrapper { | ||
369 | + position: relative; | ||
370 | + width: 100%; | ||
371 | + -webkit-transition-property: -webkit-transform, left, top; | ||
372 | + -webkit-transition-duration: 0s; | ||
373 | + -webkit-transform: translate3d(0px, 0, 0); | ||
374 | + -webkit-transition-timing-function: ease; | ||
375 | + -moz-transition-property: -moz-transform, left, top; | ||
376 | + -moz-transition-duration: 0s; | ||
377 | + -moz-transform: translate3d(0px, 0, 0); | ||
378 | + -moz-transition-timing-function: ease; | ||
379 | + -o-transition-property: -o-transform, left, top; | ||
380 | + -o-transition-duration: 0s; | ||
381 | + -o-transform: translate3d(0px, 0, 0); | ||
382 | + -o-transition-timing-function: ease; | ||
383 | + -o-transform: translate(0px, 0px); | ||
384 | + -ms-transition-property: -ms-transform, left, top; | ||
385 | + -ms-transition-duration: 0s; | ||
386 | + -ms-transform: translate3d(0px, 0, 0); | ||
387 | + -ms-transition-timing-function: ease; | ||
388 | + transition-property: transform, left, top; | ||
389 | + transition-duration: 0s; | ||
390 | + transform: translate3d(0px, 0, 0); | ||
391 | + transition-timing-function: ease; | ||
392 | + -webkit-box-sizing: content-box; | ||
393 | + -moz-box-sizing: content-box; | ||
394 | + box-sizing: content-box; | ||
395 | +} | ||
396 | +.swiper-free-mode > .swiper-wrapper { | ||
397 | + -webkit-transition-timing-function: ease-out; | ||
398 | + -moz-transition-timing-function: ease-out; | ||
399 | + -ms-transition-timing-function: ease-out; | ||
400 | + -o-transition-timing-function: ease-out; | ||
401 | + transition-timing-function: ease-out; | ||
402 | + margin: 0 auto; | ||
403 | +} | ||
404 | +.swiper-slide { | ||
405 | + float: left; | ||
406 | + -webkit-box-sizing: content-box; | ||
407 | + -moz-box-sizing: content-box; | ||
408 | + box-sizing: content-box; | ||
409 | +} | ||
410 | +/* IE10 Windows Phone 8 Fixes */ | ||
411 | +.swiper-wp8-horizontal { | ||
412 | + -ms-touch-action: pan-y; | ||
413 | +} | ||
414 | +.swiper-wp8-vertical { | ||
415 | + -ms-touch-action: pan-x; | ||
416 | +} | ||
417 | +/* =============================================================== | ||
418 | +Your custom styles, here you need to specify container's and slide's | ||
419 | +sizes, pagination, etc. | ||
420 | +================================================================*/ | ||
421 | +.swiper-container { | ||
422 | + /* Specify Swiper's Size: */ | ||
423 | + /*width:200px; | ||
424 | + height: 100px;*/ | ||
425 | +} | ||
426 | +.swiper-slide { | ||
427 | + /* Specify Slides's Size: */ | ||
428 | + /*width: 100%; | ||
429 | + height: 100%;*/ | ||
430 | +} | ||
431 | +.swiper-slide-active { | ||
432 | + /* Specific active slide styling: */ | ||
433 | +} | ||
434 | +.swiper-slide-visible { | ||
435 | + /* Specific visible slide styling: */ | ||
436 | +} | ||
437 | +/* =============================================================== | ||
438 | +Pagination Styles | ||
439 | +================================================================*/ | ||
440 | +.swiper-pagination-switch { | ||
441 | + /* Stylize pagination button: */ | ||
442 | +} | ||
443 | +.swiper-active-switch { | ||
444 | + /* Specific active button style: */ | ||
445 | +} | ||
446 | +.swiper-visible-switch { | ||
447 | + /* Specific visible button style: */ | ||
448 | +} | ||
449 | +.swiper-pagination { | ||
450 | + position: absolute; | ||
451 | + text-align: center; | ||
452 | + -webkit-transition: 300ms; | ||
453 | + -moz-transition: 300ms; | ||
454 | + -o-transition: 300ms; | ||
455 | + transition: 300ms; | ||
456 | + -webkit-transform: translate3d(0, 0, 0); | ||
457 | + -ms-transform: translate3d(0, 0, 0); | ||
458 | + -o-transform: translate3d(0, 0, 0); | ||
459 | + transform: translate3d(0, 0, 0); | ||
460 | + z-index: 10; | ||
461 | +} | ||
462 | +.swiper-pagination { | ||
463 | + bottom: 10px; | ||
464 | + left: 0; | ||
465 | + width: 100%; | ||
466 | +} | ||
467 | +.swiper-pagination .swiper-pagination-switch { | ||
468 | + margin: 0 5px; | ||
469 | +} | ||
470 | +.swiper-pagination-switch { | ||
471 | + width: 8px; | ||
472 | + height: 8px; | ||
473 | + display: inline-block; | ||
474 | + /*background: #FFF;*/ | ||
475 | + background: none; | ||
476 | + -webkit-box-shadow: inset 0 0 0 2px #ddd; | ||
477 | + box-shadow: inset 0 0 0 2px #ddd; | ||
478 | + -webkit-box-shadow: inset hoff voff blur color; | ||
479 | + box-shadow: inset hoff voff blur color; | ||
480 | + border-radius: 100%; | ||
481 | + /* -webkit-transition: all ease-in-out .15s; | ||
482 | + -o-transition: all ease-in-out .15s; | ||
483 | + transition: all ease-in-out .15s;*/ | ||
484 | +} | ||
485 | +.swiper-active-switch { | ||
486 | + opacity: 1; | ||
487 | + -webkit-box-shadow: inset 0 0 0 4px #23AC38; | ||
488 | + box-shadow: inset 0 0 0 4px #23AC38; | ||
489 | + /*background: #23AC38;*/ | ||
490 | + /*-webkit-box-shadow: none;*/ | ||
491 | + /*box-shadow: none;*/ | ||
492 | +} | ||
493 | +.m-slider { | ||
494 | + height: 120px; | ||
495 | + position: relative; | ||
496 | + overflow: hidden; | ||
497 | + font-size: 0; | ||
498 | +} | ||
499 | +.m-slider a { | ||
500 | + display: block; | ||
501 | + width: 100%; | ||
502 | + height: 100%; | ||
503 | +} | ||
504 | +.m-slider img { | ||
505 | + display: inline-block; | ||
506 | + width: 100%; | ||
507 | + height: 100%; | ||
508 | + float: left; | ||
509 | +} | ||
510 | +.m-slider .swiper-container { | ||
511 | + height: 100%; | ||
512 | +} | ||
513 | +.m-slider .swiper-wrapper { | ||
514 | + height: 100%; | ||
515 | +} | ||
516 | +.m-section .section-head { | ||
517 | + line-height: 45px; | ||
518 | + padding: 0 10px; | ||
519 | + background-color: #fff; | ||
520 | + font-size: 14px; | ||
521 | + color: #666; | ||
522 | + text-align: left; | ||
523 | + font-weight: bold; | ||
524 | + margin-bottom: 10px; | ||
525 | +} | ||
526 | +.m-section .section-head:first-letter { | ||
527 | + font-size: 18px; | ||
528 | + color: #23ac38; | ||
529 | +} | ||
530 | +.section-items { | ||
531 | + margin-bottom: 10px; | ||
532 | +} | ||
533 | +.section-items .section-item { | ||
534 | + display: block; | ||
535 | + margin-bottom: 5px; | ||
536 | + width: 100%; | ||
537 | +} | ||
538 | +.section-items .section-item img { | ||
539 | + width: 100%; | ||
540 | + max-width: 100%; | ||
541 | +} | ||
542 | +.product-items { | ||
543 | + background-color: #FFF; | ||
544 | + margin-bottom: 10px; | ||
545 | +} | ||
546 | +.product-items .items .item { | ||
547 | + width: 33.33%; | ||
548 | + float: left; | ||
549 | + font-size: 13px; | ||
550 | + text-align: center; | ||
551 | + padding: 8px 0; | ||
552 | +} | ||
553 | +.product-items .items .item a { | ||
554 | + display: block; | ||
555 | + position: relative; | ||
556 | + z-index: 2; | ||
557 | +} | ||
558 | +.product-items .items .item h3 { | ||
559 | + font-size: 13px; | ||
560 | + padding: 0 5px; | ||
561 | + font-weight: 700; | ||
562 | + color: #333; | ||
563 | + line-height: 16px; | ||
564 | + padding: 0 10px; | ||
565 | + text-align: left; | ||
566 | + text-overflow: ellipsis; | ||
567 | + overflow: hidden; | ||
568 | + white-space: nowrap; | ||
569 | +} | ||
570 | +.product-items .items .item p { | ||
571 | + padding: 0 10px; | ||
572 | + text-align: left; | ||
573 | +} | ||
574 | +.product-items .items .item em { | ||
575 | + text-align: left; | ||
576 | + display: block; | ||
577 | + font-size: 13px; | ||
578 | + font-weight: 700; | ||
579 | + font-style: normal; | ||
580 | + color: #FA4535; | ||
581 | + text-overflow: ellipsis; | ||
582 | + overflow: hidden; | ||
583 | + white-space: nowrap; | ||
584 | +} | ||
585 | +.product-items .items .item span { | ||
586 | + display: block; | ||
587 | + text-align: center; | ||
588 | + overflow: hidden; | ||
589 | + white-space: nowrap; | ||
590 | + text-overflow: ellipsis; | ||
591 | +} | ||
592 | +.product-items .items .item .pic { | ||
593 | + max-width: 100%; | ||
594 | + height: 60px; | ||
595 | + display: inline-block; | ||
596 | + vertical-align: middle; | ||
597 | +} | ||
598 | +.product-items .items .item:after { | ||
599 | + border-left: none; | ||
600 | + border-top: none; | ||
601 | +} | ||
602 | +.m-list-view { | ||
603 | + margin-bottom: 10px; | ||
604 | +} | ||
605 | +.m-list-view .cell { | ||
606 | + font-size: 14px; | ||
607 | + padding: 0 0 0 15px; | ||
608 | + background-color: #FFF; | ||
609 | + overflow: hidden; | ||
610 | + position: relative; | ||
611 | + text-align: left; | ||
612 | +} | ||
613 | +.m-list-view .cell-header { | ||
614 | + background-color: #f8f8f8; | ||
615 | + padding: 0 10px; | ||
616 | +} | ||
617 | +.m-list-view .cell-header .title { | ||
618 | + font-size: 13px; | ||
619 | + color: #333; | ||
620 | + line-height: 35px; | ||
621 | + width: auto; | ||
622 | +} | ||
623 | +.m-list-view .cell-header .text { | ||
624 | + font-size: 13px; | ||
625 | + line-height: 35px; | ||
626 | + float: right; | ||
627 | + color: #9e9e9e; | ||
628 | + text-align: right; | ||
629 | + margin: 0; | ||
630 | +} | ||
631 | +.m-list-view .cell-basic { | ||
632 | + padding: 11px 10px; | ||
633 | +} | ||
634 | +.m-list-view .cell-basic .title, | ||
635 | +.m-list-view .cell-basic .text { | ||
636 | + float: none; | ||
637 | + display: inline-block; | ||
638 | + vertical-align: middle; | ||
639 | + margin: 0 10px 0 0; | ||
640 | + line-height: 1.5; | ||
641 | +} | ||
642 | +.m-list-view .cell-basic .sub-title { | ||
643 | + padding-top: 10px; | ||
644 | + font-size: 13px; | ||
645 | + color: #999; | ||
646 | +} | ||
647 | +.m-list-view .cell-radio { | ||
648 | + text-align: right; | ||
649 | + padding: 0 10px; | ||
650 | + margin-bottom: 10px; | ||
651 | + background-color: #eee; | ||
652 | +} | ||
653 | +.m-list-view .cell-radio .title { | ||
654 | + color: #333; | ||
655 | + width: auto; | ||
656 | + text-align: left; | ||
657 | +} | ||
658 | +.m-list-view .cell-radio .text { | ||
659 | + float: none; | ||
660 | + text-align: right; | ||
661 | +} | ||
662 | +.m-list-view .cell-radio .m-radio { | ||
663 | + margin-left: 8px; | ||
664 | +} | ||
665 | +.m-list-view .cell-radio .m-table-view { | ||
666 | + margin: 0 -10px; | ||
667 | +} | ||
668 | +.m-list-view .cell-radio .m-table-view .cell-radio { | ||
669 | + margin: 0; | ||
670 | + background-color: #FFF; | ||
671 | +} | ||
672 | +.m-list-view .cell-block { | ||
673 | + padding: 8px 10px; | ||
674 | +} | ||
675 | +.m-list-view .cell-block h3 { | ||
676 | + font-size: 16px; | ||
677 | + font-weight: normal; | ||
678 | + padding-right: 60px; | ||
679 | + white-space: nowrap; | ||
680 | + text-overflow: ellipsis; | ||
681 | + overflow: hidden; | ||
682 | +} | ||
683 | +.m-list-view .cell-block p { | ||
684 | + font-size: 14px; | ||
685 | + color: #666; | ||
686 | +} | ||
687 | +.m-list-view .cell-block .bottom { | ||
688 | + margin-top: 10px; | ||
689 | + padding-top: 8px; | ||
690 | + line-height: 30px; | ||
691 | +} | ||
692 | +.m-list-view .cell-extend .m-table-view { | ||
693 | + margin: 0 0 0 45px; | ||
694 | +} | ||
695 | +.m-list-view .cell-extend .m-table-view .cell { | ||
696 | + padding: 0; | ||
697 | +} | ||
698 | +.m-list-view .cell-extend .m-table-view .text { | ||
699 | + margin-left: 0; | ||
700 | +} | ||
701 | +.m-list-view .cell-pic { | ||
702 | + padding: 15px; | ||
703 | +} | ||
704 | +.m-list-view .cell-pic .pic { | ||
705 | + float: left; | ||
706 | +} | ||
707 | +.m-list-view .cell-pic .cont { | ||
708 | + margin-left: 90px; | ||
709 | +} | ||
710 | +.m-list-view .cell-pic h3 { | ||
711 | + font-size: 14px; | ||
712 | + font-weight: normal; | ||
713 | +} | ||
714 | +.m-list-view .cell-pic em { | ||
715 | + font-size: 16px; | ||
716 | + font-weight: normal; | ||
717 | +} | ||
718 | +.m-list-view .cell-pic p { | ||
719 | + color: #9b9b9b; | ||
720 | + font-size: 12px; | ||
721 | +} | ||
722 | +.m-list-view .acc-icon { | ||
723 | + position: relative; | ||
724 | + padding-right: 30px; | ||
725 | +} | ||
726 | +.m-list-view .acc-icon .acc { | ||
727 | + position: absolute; | ||
728 | + right: 0; | ||
729 | + top: 0; | ||
730 | + min-width: 30px; | ||
731 | + height: 100%; | ||
732 | + line-height: 44px; | ||
733 | + text-align: left; | ||
734 | + color: #999; | ||
735 | + text-align: right; | ||
736 | +} | ||
737 | +.m-list-view .acc-icon .acc .m-icon { | ||
738 | + margin-right: 4px; | ||
739 | +} | ||
740 | +.m-list-view .title { | ||
741 | + font-size: 15px; | ||
742 | + color: #999; | ||
743 | + float: left; | ||
744 | + font-weight: 400; | ||
745 | + line-height: 44px; | ||
746 | +} | ||
747 | +.m-list-view .text { | ||
748 | + display: block; | ||
749 | + font-size: 15px; | ||
750 | + color: #333; | ||
751 | + line-height: 44px; | ||
752 | + position: relative; | ||
753 | + white-space: nowrap; | ||
754 | + word-break: break-all; | ||
755 | + text-overflow: ellipsis; | ||
756 | + overflow: hidden; | ||
757 | +} | ||
758 | +.m-list-view .text .m-input { | ||
759 | + font-size: 15px; | ||
760 | +} | ||
761 | +.m-goods-items { | ||
762 | + padding: 0 5px 5px; | ||
763 | + overflow-x: scroll; | ||
764 | + overflow-y: hidden; | ||
765 | + -webkit-overflow-scrolling: touch; | ||
766 | +} | ||
767 | +.m-goods-items li { | ||
768 | + float: left; | ||
769 | + width: 110px; | ||
770 | + padding: 0 5px 10px; | ||
771 | + box-sizing: border-box; | ||
772 | +} | ||
773 | +.m-goods-items a { | ||
774 | + display: block; | ||
775 | + background-color: #fff; | ||
776 | + padding-bottom: 5px; | ||
777 | + position: relative; | ||
778 | +} | ||
779 | +.m-goods-items .hot { | ||
780 | + position: absolute; | ||
781 | + top: -1px; | ||
782 | + right: 10px; | ||
783 | + width: 20px; | ||
784 | + height: 56px; | ||
785 | + background: url(../images/icon_mark.png) 0 0 no-repeat; | ||
786 | + background-size: 100%; | ||
787 | + font-size: 0; | ||
788 | + overflow: hidden; | ||
789 | +} | ||
790 | +.m-goods-items .pic { | ||
791 | + display: block; | ||
792 | + width: 100%; | ||
793 | + height: 110px; | ||
794 | + margin: 0 auto 5px; | ||
795 | + background-position: center center; | ||
796 | + background-repeat: no-repeat; | ||
797 | + background-size: cover; | ||
798 | +} | ||
799 | +.m-goods-items h3 { | ||
800 | + font-size: 13px; | ||
801 | + padding: 0 5px; | ||
802 | + font-weight: 700; | ||
803 | + color: #333; | ||
804 | + text-align: left; | ||
805 | + line-height: 16px; | ||
806 | + height: 32px; | ||
807 | + overflow: hidden; | ||
808 | +} | ||
809 | +.m-goods-items em { | ||
810 | + text-align: left; | ||
811 | + display: block; | ||
812 | + padding: 0 5px; | ||
813 | + font-size: 13px; | ||
814 | + font-weight: 700; | ||
815 | + font-style: normal; | ||
816 | + color: #FA4535; | ||
817 | +} | ||
818 | +.m-goods-items .origin-price { | ||
819 | + font-size: 12px; | ||
820 | + color: #bbb; | ||
821 | + text-decoration: line-through; | ||
822 | +} | ||
823 | +.photo-wall { | ||
824 | + width: 100%; | ||
825 | + padding-left: 5px; | ||
826 | + box-sizing: border-box; | ||
827 | +} | ||
828 | +.photo-wall .photo-item { | ||
829 | + float: left; | ||
830 | + box-sizing: border-box; | ||
831 | + padding: 0 5px 5px 0; | ||
832 | + height: 105px; | ||
833 | +} | ||
834 | +.photo-wall .photo-item img { | ||
835 | + width: 100%; | ||
836 | + height: 100%; | ||
837 | + max-width: 100%; | ||
838 | + max-height: 100%; | ||
839 | +} | ||
840 | +.photo-wall .photo-1p { | ||
841 | + width: 33.33%; | ||
842 | +} | ||
843 | +.photo-wall .photo-2p { | ||
844 | + width: 66.66%; | ||
845 | +} | ||
846 | +.m-nav { | ||
847 | + width: 100%; | ||
848 | + background-color: #444; | ||
849 | + font-size: 14px; | ||
850 | + color: #999; | ||
851 | + overflow: hidden; | ||
852 | + box-sizing: border-box; | ||
853 | +} | ||
854 | +.m-nav a { | ||
855 | + color: #999; | ||
856 | + padding: 0 10px; | ||
857 | + min-width: 70px; | ||
858 | +} | ||
859 | +.m-nav li { | ||
860 | + float: left; | ||
861 | + line-height: 40px; | ||
862 | + text-align: center; | ||
863 | + position: relative; | ||
864 | +} | ||
865 | +.m-nav li:last-child { | ||
866 | + padding-right: 0; | ||
867 | +} | ||
868 | +.m-nav .on a { | ||
869 | + color: #FFF; | ||
870 | + background-color: #23ac38; | ||
871 | + display: block; | ||
872 | + position: relative; | ||
873 | +} | ||
874 | +.m-tab { | ||
875 | + width: 100%; | ||
876 | + background-color: #FFF; | ||
877 | + font-size: 14px; | ||
878 | + color: #999; | ||
879 | + border-width: 1px 0; | ||
880 | + overflow: hidden; | ||
881 | + box-sizing: border-box; | ||
882 | + margin-bottom: 10px; | ||
883 | +} | ||
884 | +.m-tab a { | ||
885 | + color: #999; | ||
886 | +} | ||
887 | +.m-tab li { | ||
888 | + float: left; | ||
889 | + min-width: 32px; | ||
890 | + padding-right: 18px; | ||
891 | + line-height: 40px; | ||
892 | + text-align: center; | ||
893 | + position: relative; | ||
894 | +} | ||
895 | +.m-tab li:last-child { | ||
896 | + padding-right: 0; | ||
897 | +} | ||
898 | +.m-tab .on a { | ||
899 | + color: #23ac38; | ||
900 | + display: block; | ||
901 | + position: relative; | ||
902 | +} | ||
903 | +.m-tab .on a:after { | ||
904 | + content: ''; | ||
905 | + position: absolute; | ||
906 | + bottom: 0; | ||
907 | + left: 0; | ||
908 | + right: 0; | ||
909 | + height: 2px; | ||
910 | + background-color: #23ac38; | ||
911 | +} | ||
912 | +.m-tab.tab-col-2 li { | ||
913 | + width: 50% !important; | ||
914 | +} | ||
915 | +.m-tab.tab-col-3 li { | ||
916 | + width: 33.33% !important; | ||
917 | + padding-right: 0 ; | ||
918 | +} | ||
919 | +.m-tab.tab-col-4 li { | ||
920 | + padding-right: 0; | ||
921 | + width: 25% !important; | ||
922 | +} | ||
923 | +.m-tab.tab-col-5 li { | ||
924 | + padding-right: 0; | ||
925 | + width: 20% !important; | ||
926 | +} | ||
927 | +/*************************************************** | ||
928 | +* feature : 工具类class,提供浮动清除、文本对齐、显示隐藏等; | ||
929 | +* update : 2015/02/03; | ||
930 | +* use : 按需使用对应class即可; | ||
931 | +* desc : ; | ||
932 | +* feedback : 此处填入 issue, 并请附带以下信息[os_version, browser_version, page_path, issue_description] | ||
933 | +* - demo => [windows 7, IE 8, http://diligrp.com/icon.html, 在不定height下未能垂直居中]; | ||
934 | +****************************************************/ | ||
935 | +.text-left { | ||
936 | + text-align: left !important; | ||
937 | +} | ||
938 | +.text-center { | ||
939 | + text-align: center !important; | ||
940 | +} | ||
941 | +.text-right { | ||
942 | + text-align: right !important; | ||
943 | +} | ||
944 | +.text-nowrap { | ||
945 | + white-space: nowrap !important; | ||
946 | +} | ||
947 | +.text-overflow { | ||
948 | + overflow: hidden; | ||
949 | + text-overflow: ellipsis; | ||
950 | +} | ||
951 | +.text-lowercase { | ||
952 | + text-transform: lowercase; | ||
953 | +} | ||
954 | +.text-uppercase { | ||
955 | + text-transform: uppercase; | ||
956 | +} | ||
957 | +.text-capitalize { | ||
958 | + text-transform: capitalize; | ||
959 | +} | ||
960 | +.text-indent { | ||
961 | + text-indent: -999em; | ||
962 | +} | ||
963 | +.float-left { | ||
964 | + float: left !important; | ||
965 | +} | ||
966 | +.float-right { | ||
967 | + float: right !important; | ||
968 | +} | ||
969 | +.float-none { | ||
970 | + float: none !important; | ||
971 | +} | ||
972 | +.display-block { | ||
973 | + display: block !important; | ||
974 | +} | ||
975 | +.clearfix:after { | ||
976 | + content: ''; | ||
977 | + display: block; | ||
978 | + height: 0; | ||
979 | + overflow: hidden; | ||
980 | + font-size: 0; | ||
981 | + clear: both; | ||
982 | +} | ||
983 | +.m-hide { | ||
984 | + display: none !important; | ||
985 | + visibility: hidden; | ||
986 | + opacity: 0; | ||
987 | + z-index: -1; | ||
988 | +} | ||
989 | +.m-hidden { | ||
990 | + visibility: hidden; | ||
991 | + opacity: 0; | ||
992 | + z-index: -1; | ||
993 | +} | ||
994 | +.m-show { | ||
995 | + display: block !important; | ||
996 | + visibility: visible; | ||
997 | +} | ||
998 | +.m-separate { | ||
999 | + position: relative; | ||
1000 | + width: 100%; | ||
1001 | + line-height: 50px; | ||
1002 | + text-align: center; | ||
1003 | + font-size: 12px; | ||
1004 | + color: #666; | ||
1005 | + overflow: visible; | ||
1006 | +} | ||
1007 | +.m-more, | ||
1008 | +a.m-more { | ||
1009 | + display: block; | ||
1010 | + font-size: 12px; | ||
1011 | + text-align: center; | ||
1012 | + color: #999; | ||
1013 | + line-height: 45px; | ||
1014 | + background-color: #FFF; | ||
1015 | +} | ||
1016 | +.m-animate-hide { | ||
1017 | + -webkit-transform: translate(0, 100%) translateZ(0) !important; | ||
1018 | + -ms-transform: translate(0, 100%) translateZ(0) !important; | ||
1019 | + -o-transform: translate(0, 100%) translateZ(0) !important; | ||
1020 | + transform: translate(0, 100%) translateZ(0) !important; | ||
1021 | +} | ||
1022 | +.m-animate-show { | ||
1023 | + -webkit-transform: translate(0, 0) translateZ(0) !important; | ||
1024 | + -ms-transform: translate(0, 0) translateZ(0) !important; | ||
1025 | + -o-transform: translate(0, 0) translateZ(0) !important; | ||
1026 | + transform: translate(0, 0) translateZ(0) !important; | ||
1027 | +} | ||
1028 | +.hidden { | ||
1029 | + opacity: 0; | ||
1030 | + z-index: -1; | ||
1031 | +} | ||
1032 | +.mask-hidden { | ||
1033 | + opacity: 0; | ||
1034 | +} | ||
1035 | +.font-white { | ||
1036 | + color: #FFF !important; | ||
1037 | +} | ||
1038 | +.font-white-opacity { | ||
1039 | + color: rgba(255, 255, 255, 0.8) !important; | ||
1040 | +} | ||
1041 | +.font-deep { | ||
1042 | + color: #333 !important; | ||
1043 | +} | ||
1044 | +.font-gray { | ||
1045 | + color: #666 !important; | ||
1046 | +} | ||
1047 | +.font-light { | ||
1048 | + color: #999 !important; | ||
1049 | +} | ||
1050 | +.font-yellow { | ||
1051 | + color: #FF9D2C !important; | ||
1052 | +} | ||
1053 | +.font-orange { | ||
1054 | + color: #FF6B00 !important; | ||
1055 | +} | ||
1056 | +.font-red { | ||
1057 | + color: #fa4535 !important; | ||
1058 | +} | ||
1059 | +.font-green { | ||
1060 | + color: #23ac38 !important; | ||
1061 | +} | ||
1062 | +.background-gray { | ||
1063 | + background-color: #666 !important; | ||
1064 | +} | ||
1065 | +.background-yellow { | ||
1066 | + background-color: #FF9D2C !important; | ||
1067 | +} | ||
1068 | +.background-orange { | ||
1069 | + background-color: #FF6B00 !important; | ||
1070 | +} | ||
1071 | +.background-red { | ||
1072 | + background-color: #fa4535 !important; | ||
1073 | +} | ||
1074 | +.background-green { | ||
1075 | + background-color: #23ac38 !important; | ||
1076 | +} | ||
1077 | +.position-relative { | ||
1078 | + position: relative; | ||
1079 | +} | ||
1080 | +.z-index2 { | ||
1081 | + z-index: 2; | ||
1082 | +} | ||
1083 | +.width-auto { | ||
1084 | + width: auto !important; | ||
1085 | +} | ||
1086 | +.width-200p { | ||
1087 | + width: 200%; | ||
1088 | +} | ||
1089 | +.m-col-1 { | ||
1090 | + width: 100% !important; | ||
1091 | +} | ||
1092 | +.m-col-2 { | ||
1093 | + width: 50% !important; | ||
1094 | +} | ||
1095 | +.m-col-3 { | ||
1096 | + width: 33.33% !important; | ||
1097 | +} | ||
1098 | +.m-col-4 { | ||
1099 | + width: 25% !important; | ||
1100 | +} | ||
1101 | +/* | ||
1102 | +LESS variables are information about icon's compiled state, stored under its original file name | ||
1103 | + | ||
1104 | +.icon-home { | ||
1105 | + width: @icon-home-width; | ||
1106 | +} | ||
1107 | + | ||
1108 | +The large array-like variables contain all information about a single icon | ||
1109 | +@icon-home: x y offset_x offset_y width height total_width total_height image_path name; | ||
1110 | + | ||
1111 | +At the bottom of this section, we provide information about the spritesheet itself | ||
1112 | +@spritesheet: width height image @spritesheet-sprites; | ||
1113 | +*/ | ||
1114 | +/* | ||
1115 | +The provided classes are intended to be used with the array-like variables | ||
1116 | + | ||
1117 | +.icon-home { | ||
1118 | + .sprite-width(@icon-home); | ||
1119 | +} | ||
1120 | +.icon-email { | ||
1121 | + .sprite(@icon-email); | ||
1122 | +} | ||
1123 | +*/ | ||
1124 | +/* | ||
1125 | +The `.sprites` mixin generates identical output to the CSS template | ||
1126 | + but can be overridden inside of LESS | ||
1127 | + | ||
1128 | +This must be run when you have at least 2 sprites. | ||
1129 | + If run with a single sprite, then there will be reference errors. | ||
1130 | + | ||
1131 | +.sprites(@spritesheet-sprites); | ||
1132 | +*/ | ||
1133 | +.m-icon { | ||
1134 | + display: inline-block; | ||
1135 | + vertical-align: middle; | ||
1136 | +} | ||
1137 | +.icon-back-to { | ||
1138 | + background-image: url(../images/dist/sprite.png); | ||
1139 | + background-position: 0px 0px; | ||
1140 | + width: 22px; | ||
1141 | + width: 11px; | ||
1142 | + height: 38px; | ||
1143 | + height: 19px; | ||
1144 | + background-size: 25px; | ||
1145 | +} | ||
1146 | +.icon-back { | ||
1147 | + background-image: url(../images/dist/sprite.png); | ||
1148 | + background-position: -28px 0px; | ||
1149 | + background-position: -14px 0px; | ||
1150 | + width: 22px; | ||
1151 | + width: 11px; | ||
1152 | + height: 38px; | ||
1153 | + height: 19px; | ||
1154 | + background-size: 25px; | ||
1155 | +} |
css/common.less
0 → 100644
css/goods-items.css
0 → 100644
1 | +.m-goods-items { | ||
2 | + padding: 0 5px 10px; | ||
3 | +} | ||
4 | +.m-goods-items li { | ||
5 | + float: left; | ||
6 | + width: 50%; | ||
7 | + padding: 0 5px 10px; | ||
8 | + box-sizing: border-box; | ||
9 | +} | ||
10 | +.m-goods-items a { | ||
11 | + display: block; | ||
12 | + background-color: #fff; | ||
13 | + padding-bottom: 5px; | ||
14 | + position: relative; | ||
15 | +} | ||
16 | +.m-goods-items .hot { | ||
17 | + position: absolute; | ||
18 | + top: -1px; | ||
19 | + right: 10px; | ||
20 | + width: 20px; | ||
21 | + height: 56px; | ||
22 | + background: url(../images/icon_mark.png) 0 0 no-repeat; | ||
23 | + background-size: 100%; | ||
24 | + font-size: 0; | ||
25 | + overflow: hidden; | ||
26 | +} | ||
27 | +.m-goods-items img { | ||
28 | + display: block; | ||
29 | + width: 100%; | ||
30 | + height: 90px; | ||
31 | + margin: 0 auto 5px; | ||
32 | +} | ||
33 | +.m-goods-items .pic { | ||
34 | + display: block; | ||
35 | + width: 100%; | ||
36 | + height: 90px; | ||
37 | + margin: 0 auto 5px; | ||
38 | + background: url(../images/upload/p_1.jpg) center center no-repeat; | ||
39 | + background-size: cover; | ||
40 | +} | ||
41 | +.m-goods-items h3 { | ||
42 | + font-size: 12px; | ||
43 | + padding: 0 5px; | ||
44 | + font-weight: 700; | ||
45 | + color: #5d6065; | ||
46 | + text-align: left; | ||
47 | + line-height: 16px; | ||
48 | + height: 32px; | ||
49 | + overflow: hidden; | ||
50 | +} | ||
51 | +.m-goods-items em { | ||
52 | + text-align: left; | ||
53 | + display: block; | ||
54 | + padding: 0 5px; | ||
55 | + font-size: 14px; | ||
56 | + font-weight: 700; | ||
57 | + font-style: normal; | ||
58 | + color: #fe4442; | ||
59 | +} | ||
60 | +.m-goods-items .origin-price { | ||
61 | + font-size: 12px; | ||
62 | + text-align: center; | ||
63 | + color: #9c9c9c; | ||
64 | + text-decoration: line-through; | ||
65 | +} |
css/goods-items.less
0 → 100644
1 | +.m-goods-items { | ||
2 | + padding: 0 5px 5px; | ||
3 | + overflow-x: scroll; | ||
4 | + overflow-y: hidden; | ||
5 | + -webkit-overflow-scrolling: touch; | ||
6 | + li { | ||
7 | + float: left; | ||
8 | + width: 110px; | ||
9 | + padding: 0 5px 10px; | ||
10 | + box-sizing: border-box; | ||
11 | + } | ||
12 | + a { | ||
13 | + display: block; | ||
14 | + background-color: #fff; | ||
15 | + padding-bottom: 5px; | ||
16 | + position: relative; | ||
17 | + } | ||
18 | + .hot { | ||
19 | + position: absolute; | ||
20 | + top: -1px; | ||
21 | + right: 10px; | ||
22 | + width: 20px; | ||
23 | + height: 56px; | ||
24 | + background: url(../images/icon_mark.png) 0 0 no-repeat; | ||
25 | + background-size: 100%; | ||
26 | + font-size: 0; | ||
27 | + overflow: hidden; | ||
28 | + } | ||
29 | + .pic { | ||
30 | + display: block; | ||
31 | + width: 100%; | ||
32 | + height: 110px; | ||
33 | + margin: 0 auto 5px; | ||
34 | + background-position: center center; | ||
35 | + background-repeat: no-repeat; | ||
36 | + background-size: cover; | ||
37 | + } | ||
38 | + h3 { | ||
39 | + font-size: 13px; | ||
40 | + padding: 0 5px; | ||
41 | + font-weight: 700; | ||
42 | + color: #333; | ||
43 | + text-align: left; | ||
44 | + line-height: 16px; | ||
45 | + height: 32px; | ||
46 | + overflow: hidden; | ||
47 | + } | ||
48 | + em { | ||
49 | + text-align: left; | ||
50 | + display: block; | ||
51 | + padding: 0 5px; | ||
52 | + font-size: 13px; | ||
53 | + font-weight: 700; | ||
54 | + font-style: normal; | ||
55 | + color: #FA4535; | ||
56 | + } | ||
57 | + .origin-price { | ||
58 | + font-size: 12px; | ||
59 | + color: #bbb; | ||
60 | + text-decoration: line-through; | ||
61 | + } | ||
62 | +} |
css/header.css
0 → 100644
1 | +.m-header{z-index:5;color:#FFF;color:#fff;background-color:#23AC38;position:relative}.m-header .head{padding:0 50px;box-sizing:border-box;height:44px;text-align:center}.m-header .head h1{display:inline-block;vertical-align:middle;line-height:44px;font-weight:400;font-size:18px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.m-header .lt-bar,.m-header .rt-bar{position:absolute;left:0;top:0;bottom:0;min-width:44px;line-height:44px;height:100%;text-align:center;cursor:pointer;z-index:1}.m-header .lt-bar{float:left}.m-header .lt-bar.text{padding-left:10px;text-align:left}.m-header .rt-bar{float:right;left:auto;right:0}.m-header .rt-bar.text{padding-right:10px;text-align:right}.m-header .text{text-align:center;line-height:44px;font-size:15px;color:#FFF}.m-header.header-light{background-color:#FFF;color:#666}.m-header.header-light .text{color:#666}.m-header.header-light .m-input{color:#333}.m-header.header-light .m-input::-webkit-input-placeholder{color:#999} | ||
0 | \ No newline at end of file | 2 | \ No newline at end of file |
css/header.less
0 → 100644
1 | +/*************************************************** | ||
2 | +* feature : 全局头部,提供默认 深色(绿底白字) & 浅色(白底黑字)主题; | ||
3 | +* update : 2015/02/03; | ||
4 | +* use : .m-header; | ||
5 | +* extend : .header-*; | ||
6 | +* example : <header class="m-header header-light"></header>; | ||
7 | +* desc : 默认为深色主题, 通过 .header-light 来引用浅色主题; | ||
8 | +* feedback : 此处填入 issue, 并请附带以下信息[os_version, browser_version, page_path, issue_description] | ||
9 | +* - demo => [windows 7, IE 8, http://diligrp.com/icon.html, 在不定height下未能垂直居中]; | ||
10 | +****************************************************/ | ||
11 | +.m-header { | ||
12 | + // position: absolute; | ||
13 | + // position: fixed; //fixed header 到顶部 | ||
14 | + z-index: 5; | ||
15 | + color: #FFF; | ||
16 | + color: rgba(255, 255, 255, 80); | ||
17 | + background-color: #23AC38; //默认是绿底白字 | ||
18 | + position: relative; | ||
19 | + .head { | ||
20 | + padding: 0 50px; | ||
21 | + box-sizing: border-box; | ||
22 | + height: 44px; | ||
23 | + text-align: center; | ||
24 | + h1 { | ||
25 | + display: inline-block; | ||
26 | + vertical-align: middle; | ||
27 | + line-height: 44px; | ||
28 | + font-weight: normal; | ||
29 | + font-size: 18px; | ||
30 | + white-space: nowrap; | ||
31 | + text-overflow: ellipsis; | ||
32 | + overflow: hidden; | ||
33 | + } | ||
34 | + } | ||
35 | + .lt-bar, | ||
36 | + .rt-bar { | ||
37 | + //左右两端区域,用于放置 icon | text | ||
38 | + position: absolute; | ||
39 | + left: 0; | ||
40 | + top: 0; | ||
41 | + bottom: 0; | ||
42 | + min-width: 44px; | ||
43 | + line-height: 44px; | ||
44 | + height: 100%; | ||
45 | + text-align: center; | ||
46 | + cursor: pointer; | ||
47 | + z-index: 1; | ||
48 | + } | ||
49 | + .lt-bar { | ||
50 | + float: left; | ||
51 | + &.text { | ||
52 | + padding-left: 10px; | ||
53 | + text-align: left; | ||
54 | + } | ||
55 | + } | ||
56 | + .rt-bar { | ||
57 | + float: right; | ||
58 | + left: auto; | ||
59 | + right: 0; | ||
60 | + &.text { | ||
61 | + padding-right: 10px; | ||
62 | + text-align: right; | ||
63 | + } | ||
64 | + } | ||
65 | + .text { | ||
66 | + text-align: center; | ||
67 | + line-height: 44px; | ||
68 | + font-size: 15px; | ||
69 | + color: #FFF; | ||
70 | + } | ||
71 | + &.header-light { | ||
72 | + //浅色模式 | ||
73 | + background-color: #FFF; | ||
74 | + color: #666; | ||
75 | + .text { | ||
76 | + color: #666; | ||
77 | + } | ||
78 | + .m-input { | ||
79 | + color: #333; | ||
80 | + &::-webkit-input-placeholder { | ||
81 | + color: #999; | ||
82 | + } | ||
83 | + } | ||
84 | + } | ||
85 | +} |
css/icon.css
0 → 100644
1 | +/* | ||
2 | +LESS variables are information about icon's compiled state, stored under its original file name | ||
3 | + | ||
4 | +.icon-home { | ||
5 | + width: @icon-home-width; | ||
6 | +} | ||
7 | + | ||
8 | +The large array-like variables contain all information about a single icon | ||
9 | +@icon-home: x y offset_x offset_y width height total_width total_height image_path name; | ||
10 | + | ||
11 | +At the bottom of this section, we provide information about the spritesheet itself | ||
12 | +@spritesheet: width height image @spritesheet-sprites; | ||
13 | +*/ | ||
14 | +/* | ||
15 | +The provided classes are intended to be used with the array-like variables | ||
16 | + | ||
17 | +.icon-home { | ||
18 | + .sprite-width(@icon-home); | ||
19 | +} | ||
20 | +.icon-email { | ||
21 | + .sprite(@icon-email); | ||
22 | +} | ||
23 | +*/ | ||
24 | +/* | ||
25 | +The `.sprites` mixin generates identical output to the CSS template | ||
26 | + but can be overridden inside of LESS | ||
27 | + | ||
28 | +This must be run when you have at least 2 sprites. | ||
29 | + If run with a single sprite, then there will be reference errors. | ||
30 | + | ||
31 | +.sprites(@spritesheet-sprites); | ||
32 | +*/ | ||
33 | +.m-icon { | ||
34 | + display: inline-block; | ||
35 | + vertical-align: middle; | ||
36 | +} | ||
37 | +.icon-back-to { | ||
38 | + background-image: url(../images/dist/sprite.png); | ||
39 | + background-position: 0px 0px; | ||
40 | + width: 22px; | ||
41 | + width: 11px; | ||
42 | + height: 38px; | ||
43 | + height: 19px; | ||
44 | + background-size: 25px; | ||
45 | +} | ||
46 | +.icon-back { | ||
47 | + background-image: url(../images/dist/sprite.png); | ||
48 | + background-position: -28px 0px; | ||
49 | + background-position: -14px 0px; | ||
50 | + width: 22px; | ||
51 | + width: 11px; | ||
52 | + height: 38px; | ||
53 | + height: 19px; | ||
54 | + background-size: 25px; | ||
55 | +} |
css/icon.less
0 → 100644
1 | +@import "sprite"; | ||
2 | +//retina @2x | ||
3 | +.sprite-width(@sprite) { | ||
4 | + width: extract(@sprite, 5)/2; | ||
5 | +} | ||
6 | + | ||
7 | +.sprite-height(@sprite) { | ||
8 | + height: extract(@sprite, 6)/2; | ||
9 | +} | ||
10 | + | ||
11 | +.sprite-position(@sprite) { | ||
12 | + @sprite-offset-x: extract(@sprite, 3)/2; | ||
13 | + @sprite-offset-y: extract(@sprite, 4)/2; | ||
14 | + background-position: @sprite-offset-x @sprite-offset-y; | ||
15 | +} | ||
16 | + | ||
17 | +.sprite-background-size(@spritesheet-width) { | ||
18 | + background-size: @spritesheet-width/2; | ||
19 | +} | ||
20 | + | ||
21 | +.sprite-image(@sprite) { | ||
22 | + @sprite-image: extract(@sprite, 9); | ||
23 | + @sprite-image-bare: ~`"@{sprite-image}".slice(1, -1)`; | ||
24 | + background-image: url(@sprite-image-bare); | ||
25 | +} | ||
26 | + | ||
27 | +.sprite(@sprite) { | ||
28 | + .sprite-image(@sprite); | ||
29 | + .sprite-position(@sprite); | ||
30 | + .sprite-width(@sprite); | ||
31 | + .sprite-height(@sprite); | ||
32 | + .sprite-background-size(@spritesheet-width); | ||
33 | +} | ||
34 | + | ||
35 | +//合并图 | ||
36 | +.m-icon { | ||
37 | + display: inline-block; | ||
38 | + vertical-align: middle; | ||
39 | +} | ||
40 | + | ||
41 | +.sprites(@spritesheet-sprites); | ||
42 | +//自定义 非合并图 |
css/list-view.less
0 → 100644
1 | +.m-list-view{ | ||
2 | + margin-bottom: 10px; | ||
3 | + .cell{ | ||
4 | + font-size: 14px; | ||
5 | + padding: 0 0 0 15px; | ||
6 | + // border-bottom: 1px solid #ddd; | ||
7 | + background-color: #FFF; | ||
8 | + overflow: hidden; | ||
9 | + position: relative; | ||
10 | + text-align: left; | ||
11 | + } | ||
12 | + .cell-header{ | ||
13 | + background-color: #f8f8f8; | ||
14 | + padding: 0 10px; | ||
15 | + .title{ | ||
16 | + font-size: 13px; | ||
17 | + color: #333; | ||
18 | + line-height: 35px; | ||
19 | + width: auto; | ||
20 | + } | ||
21 | + .text{ | ||
22 | + font-size: 13px; | ||
23 | + line-height: 35px; | ||
24 | + float: right; | ||
25 | + color: #9e9e9e; | ||
26 | + text-align: right; | ||
27 | + margin: 0; | ||
28 | + } | ||
29 | + } | ||
30 | + .cell-basic{ | ||
31 | + padding: 11px 10px; | ||
32 | + .title, .text{ | ||
33 | + float: none; | ||
34 | + display: inline-block; | ||
35 | + vertical-align: middle; | ||
36 | + margin: 0 10px 0 0; | ||
37 | + line-height: 1.5; | ||
38 | + } | ||
39 | + .sub-title{ | ||
40 | + padding-top: 10px; | ||
41 | + font-size: 13px; | ||
42 | + color: #999; | ||
43 | + } | ||
44 | + } | ||
45 | + .cell-radio{ | ||
46 | + text-align: right; | ||
47 | + padding: 0 10px; | ||
48 | + margin-bottom: 10px; | ||
49 | + background-color: #eee; | ||
50 | + .title{ | ||
51 | + color: #333; | ||
52 | + width: auto; | ||
53 | + text-align: left; | ||
54 | + } | ||
55 | + .text{ | ||
56 | + float: none; | ||
57 | + text-align: right; | ||
58 | + } | ||
59 | + .m-radio{ | ||
60 | + margin-left: 8px; | ||
61 | + } | ||
62 | + .m-table-view{ | ||
63 | + margin: 0 -10px; | ||
64 | + .cell-radio{ | ||
65 | + margin: 0; | ||
66 | + background-color: #FFF; | ||
67 | + } | ||
68 | + } | ||
69 | + } | ||
70 | + | ||
71 | + .cell-block{ | ||
72 | + padding: 8px 10px; | ||
73 | + h3{ | ||
74 | + font-size: 16px; | ||
75 | + font-weight: normal; | ||
76 | + padding-right: 60px; | ||
77 | + white-space: nowrap; | ||
78 | + text-overflow: ellipsis; | ||
79 | + overflow: hidden; | ||
80 | + } | ||
81 | + p{ | ||
82 | + font-size: 14px; | ||
83 | + color: #666; | ||
84 | + } | ||
85 | + .bottom{ | ||
86 | + margin-top: 10px; | ||
87 | + padding-top: 8px; | ||
88 | + line-height: 30px; | ||
89 | + } | ||
90 | + } | ||
91 | + | ||
92 | + .cell-extend{ | ||
93 | + .m-table-view{ | ||
94 | + margin:0 0 0 45px; | ||
95 | + .cell{ | ||
96 | + padding: 0; | ||
97 | + } | ||
98 | + .text{ | ||
99 | + margin-left: 0; | ||
100 | + } | ||
101 | + } | ||
102 | + } | ||
103 | + | ||
104 | + .cell-pic{ | ||
105 | + padding: 15px; | ||
106 | + .pic{ | ||
107 | + float: left; | ||
108 | + } | ||
109 | + .cont{ | ||
110 | + margin-left: 90px; | ||
111 | + } | ||
112 | + h3{ | ||
113 | + font-size: 14px; | ||
114 | + font-weight: normal; | ||
115 | + } | ||
116 | + em{ | ||
117 | + font-size: 16px; | ||
118 | + font-weight: normal; | ||
119 | + } | ||
120 | + p{ | ||
121 | + color: #9b9b9b; | ||
122 | + font-size: 12px; | ||
123 | + } | ||
124 | + } | ||
125 | + | ||
126 | + .acc-icon{ | ||
127 | + position: relative; | ||
128 | + padding-right: 30px; | ||
129 | + .acc{ | ||
130 | + text-align: right; | ||
131 | + position: absolute; | ||
132 | + right: 0; | ||
133 | + top: 0; | ||
134 | + min-width: 30px; | ||
135 | + height: 100%; | ||
136 | + line-height: 44px; | ||
137 | + text-align: left; | ||
138 | + color: #999; | ||
139 | + text-align: right; | ||
140 | + .m-icon{ | ||
141 | + margin-right: 4px; | ||
142 | + } | ||
143 | + } | ||
144 | + } | ||
145 | + .title{ | ||
146 | + font-size: 15px; | ||
147 | + color: #999; | ||
148 | + float: left; | ||
149 | + font-weight: 400; | ||
150 | + line-height: 44px; | ||
151 | + // width: 75px; | ||
152 | + } | ||
153 | + .text{ | ||
154 | + // margin-left: 75px; | ||
155 | + display: block; | ||
156 | + font-size: 15px; | ||
157 | + color: #333; | ||
158 | + line-height: 44px; | ||
159 | + position: relative; | ||
160 | + white-space: nowrap; | ||
161 | + word-break:break-all; | ||
162 | + text-overflow: ellipsis; | ||
163 | + overflow: hidden; | ||
164 | + .m-input{ | ||
165 | + font-size: 15px; | ||
166 | + } | ||
167 | + } | ||
168 | +} |
css/one-border.less
0 → 100644
1 | +.border-1px{ | ||
2 | + position: relative; | ||
3 | + &:before, &:after{ | ||
4 | + border-top: 1px solid #e2e2e2; | ||
5 | + content: ''; | ||
6 | + display: block; | ||
7 | + width: 100%; | ||
8 | + position: absolute; | ||
9 | + left: 0; | ||
10 | + z-index: 1; | ||
11 | + } | ||
12 | + &:before{ | ||
13 | + top: 0; | ||
14 | + } | ||
15 | + &:after{ | ||
16 | + bottom: 0; | ||
17 | + } | ||
18 | + &.border-top{ | ||
19 | + &:after{ | ||
20 | + display: none; | ||
21 | + } | ||
22 | + } | ||
23 | + &.border-bottom{ | ||
24 | + &:before{ | ||
25 | + display: none; | ||
26 | + } | ||
27 | + } | ||
28 | + | ||
29 | + // &.border-right{ | ||
30 | + // &:before{ | ||
31 | + // display: block; | ||
32 | + // border-right: 1px solid #e2e2e2; | ||
33 | + // height: 100%; | ||
34 | + // top: 0; | ||
35 | + // left: auto; | ||
36 | + // width: 0; | ||
37 | + // right: 0; | ||
38 | + // } | ||
39 | + // } | ||
40 | +} | ||
41 | + | ||
42 | +.border-1px-full{ | ||
43 | + position: relative; | ||
44 | + &:after { | ||
45 | + content: ''; | ||
46 | + position: absolute; | ||
47 | + top: 0; | ||
48 | + left: 0; | ||
49 | + z-index: 1; | ||
50 | + border: 1px solid #e2e2e2; | ||
51 | + -webkit-box-sizing: border-box; | ||
52 | + box-sizing: border-box; | ||
53 | + width: 200%; | ||
54 | + height: 200%; | ||
55 | + -webkit-transform: scale(0.5); | ||
56 | + transform: scale(0.5); | ||
57 | + -webkit-transform-origin: left top; | ||
58 | + transform-origin: left top; | ||
59 | + // border-radius: 3px; | ||
60 | + // -webkit-border-radius: 3px; | ||
61 | + // -moz-border-radius: 3px; | ||
62 | + } | ||
63 | +} | ||
64 | +// .border-1px-x{ | ||
65 | +// position: relative; | ||
66 | +// &:before, &:after{ | ||
67 | +// border-left: 1px solid #aaa; | ||
68 | +// content: ' '; | ||
69 | +// display: block; | ||
70 | +// height: 100%; | ||
71 | +// position: absolute; | ||
72 | +// top: 0; | ||
73 | +// z-index: 1; | ||
74 | +// } | ||
75 | +// &:before{ | ||
76 | +// left: 0; | ||
77 | +// } | ||
78 | +// &:after{ | ||
79 | +// right: -1px; | ||
80 | +// } | ||
81 | +// &.border-left{ | ||
82 | +// &:after{ | ||
83 | +// display: none; | ||
84 | +// } | ||
85 | +// } | ||
86 | +// &.border-right{ | ||
87 | +// &:before{ | ||
88 | +// display: none; | ||
89 | +// } | ||
90 | +// } | ||
91 | +// } | ||
92 | + | ||
93 | +@media (-webkit-min-device-pixel-ratio:1.5), (min-device-pixel-ratio: 1.5){ | ||
94 | + .border-1px{ | ||
95 | + &::after, &::before{ | ||
96 | + -webkit-transform: scaleY(.7); | ||
97 | + -webkit-transform-origin: 0 0; | ||
98 | + transform: scaleY(.7); | ||
99 | + } | ||
100 | + &::after{ | ||
101 | + -webkit-transform-origin: left bottom; | ||
102 | + } | ||
103 | + } | ||
104 | + | ||
105 | + // .border-1px-x{ | ||
106 | + // &::after, &::before{ | ||
107 | + // -webkit-transform: scaleX(.7); | ||
108 | + // -webkit-transform-origin: 0 0; | ||
109 | + // transform: scaleX(.7); | ||
110 | + // } | ||
111 | + // &::after{ | ||
112 | + // -webkit-transform-origin: left bottom; | ||
113 | + // } | ||
114 | + // } | ||
115 | +} | ||
116 | + | ||
117 | +@media (-webkit-min-device-pixel-ratio:2), (min-device-pixel-ratio: 2){ | ||
118 | + .border-1px{ | ||
119 | + &::after, &::before{ | ||
120 | + -webkit-transform: scaleY(.5); | ||
121 | + transform: scaleY(.5); | ||
122 | + } | ||
123 | + } | ||
124 | + | ||
125 | + // .border-1px-x{ | ||
126 | + // &::after, &::before{ | ||
127 | + // -webkit-transform: scaleX(.5); | ||
128 | + // transform: scaleX(.5); | ||
129 | + // } | ||
130 | + // } | ||
131 | +} |
css/photo-wall.css
0 → 100644
1 | +.photo-wall { | ||
2 | + width: 100%; | ||
3 | +} | ||
4 | +.photo-wall .photo-item { | ||
5 | + float: left; | ||
6 | + box-sizing: border-box; | ||
7 | + padding: 0 5px 5px; | ||
8 | + height: 105px; | ||
9 | +} | ||
10 | +.photo-wall .photo-item img { | ||
11 | + width: 100%; | ||
12 | + max-width: 100%; | ||
13 | +} | ||
14 | +.photo-wall .photo-1p { | ||
15 | + width: 33.33%; | ||
16 | +} | ||
17 | +.photo-wall .photo-2p { | ||
18 | + width: 66.66%; | ||
19 | +} |
css/photo-wall.less
0 → 100644
1 | +.photo-wall{ | ||
2 | + width: 100%; | ||
3 | + padding-left: 5px; | ||
4 | + box-sizing: border-box; | ||
5 | + .photo-item{ | ||
6 | + float: left; | ||
7 | + box-sizing: border-box; | ||
8 | + padding: 0 5px 5px 0; | ||
9 | + height: 105px; | ||
10 | + img{ | ||
11 | + width: 100%; | ||
12 | + height: 100%; | ||
13 | + max-width: 100%; | ||
14 | + max-height: 100%; | ||
15 | + } | ||
16 | + } | ||
17 | + .photo-1p{ | ||
18 | + width: 33.33%; | ||
19 | + } | ||
20 | + .photo-2p{ | ||
21 | + width: 66.66%; | ||
22 | + } | ||
23 | +} |
css/reset.css
0 → 100644
1 | +*{-moz-tap-highlight-color:transparent;-o-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}html{height:100%}abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;border:0;outline:0;vertical-align:baseline;background:0 0}body{font:12px/1.5 sans-serif;background-color:#F5F5F5;position:relative;color:#333;min-height:100%;overflow-x:hidden}article,aside,details,figcaption,figure,footer,header,menu,nav,section{display:block}nav ul{list-style:none}li{list-style:none}em{font-style:normal}ins{background-color:#ff9;color:#000;text-decoration:none}mark{background-color:#ff9;color:#000;font-style:italic;font-weight:700}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:0;padding:0}input,select{vertical-align:middle}button:focus,input:focus{outline:0}a{color:#333;text-decoration:none;margin:0;padding:0;vertical-align:baseline;background:0 0}a:active,a:visited{color:#333}img,input{border:0;vertical-align:middle}a,input,textarea{-webkit-tap-highlight-color:transparent}.clear,.clearfix{display:inline-table;zoom:1}* html .clear,* html .clearfix{height:1%}* html .clear,* html .clearfix{zoom:1}.clear,.clearfix{display:block}.clear{clear:both}.clear:after,.clearfix:after{content:" ";display:block;height:0;clear:both;visibility:hidden;line-height:0} | ||
0 | \ No newline at end of file | 2 | \ No newline at end of file |
css/reset.less
0 → 100644
1 | +*{ | ||
2 | + -moz-tap-highlight-color: rgba(0,0,0,0); | ||
3 | + -o-tap-highlight-color: rgba(0,0,0,0); | ||
4 | + -webkit-tap-highlight-color: rgba(0,0,0,0); | ||
5 | +} | ||
6 | +html{ | ||
7 | + height: 100%; | ||
8 | +} | ||
9 | +html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, menu, nav, section, summary, time, mark, audio, video { | ||
10 | + margin: 0; | ||
11 | + padding: 0; | ||
12 | + border: 0; | ||
13 | + outline: 0; | ||
14 | + vertical-align: baseline; | ||
15 | + background: transparent; | ||
16 | +} | ||
17 | +body { | ||
18 | + // font: 13px/18px "SimHei", "Microsoft YaHei", "Simson"; | ||
19 | + font: 12px/1.5 sans-serif; | ||
20 | + background-color: #F5F5F5; | ||
21 | + position: relative; | ||
22 | + color: #333; | ||
23 | + min-height: 100%; | ||
24 | + overflow-x: hidden; | ||
25 | +} | ||
26 | +article, aside, details, figcaption, figure, footer, header, menu, nav, section { | ||
27 | + display: block; | ||
28 | +} | ||
29 | +nav ul { | ||
30 | + list-style: none; | ||
31 | +} | ||
32 | +li { | ||
33 | + list-style: none; | ||
34 | +} | ||
35 | +em{ | ||
36 | + font-style: normal; | ||
37 | +} | ||
38 | +ins { | ||
39 | + background-color: #ff9; | ||
40 | + color: #000; | ||
41 | + text-decoration: none; | ||
42 | +} | ||
43 | +mark { | ||
44 | + background-color: #ff9; | ||
45 | + color: #000; | ||
46 | + font-style: italic; | ||
47 | + font-weight: bold; | ||
48 | +} | ||
49 | +table { | ||
50 | + border-collapse: collapse; | ||
51 | + border-spacing: 0; | ||
52 | +} | ||
53 | +hr { | ||
54 | + display: block; | ||
55 | + height: 1px; | ||
56 | + border: 0; | ||
57 | + border-top: 1px solid #cccccc; | ||
58 | + margin: 0; | ||
59 | + padding: 0; | ||
60 | +} | ||
61 | +input, select { | ||
62 | + vertical-align: middle; | ||
63 | +} | ||
64 | +input:focus, button:focus { | ||
65 | + outline: none; | ||
66 | +} | ||
67 | +a { | ||
68 | + color: #333; | ||
69 | + text-decoration: none; | ||
70 | + margin: 0; | ||
71 | + padding: 0; | ||
72 | + vertical-align: baseline; | ||
73 | + background: transparent; | ||
74 | +} | ||
75 | +a:active, a:visited { | ||
76 | + color: #333; | ||
77 | +} | ||
78 | +input, img { | ||
79 | + border: 0; | ||
80 | + vertical-align: middle; | ||
81 | +} | ||
82 | + | ||
83 | +textarea, input, a{ | ||
84 | + -webkit-tap-highlight-color: transparent; | ||
85 | +} | ||
86 | +/* 清除浮动 */ | ||
87 | + | ||
88 | +.clearfix, .clear { | ||
89 | + display: inline-table; | ||
90 | + zoom: 1; | ||
91 | +} | ||
92 | +* html .clearfix, * html .clear { | ||
93 | + height: 1%; | ||
94 | +} | ||
95 | +* html .clearfix, * html .clear { | ||
96 | + zoom: 1; | ||
97 | +} | ||
98 | +.clearfix, .clear { | ||
99 | + display: block; | ||
100 | +} | ||
101 | +.clear { | ||
102 | + clear: both; | ||
103 | +} | ||
104 | +.clearfix:after, .clear:after { | ||
105 | + content: " "; | ||
106 | + display: block; | ||
107 | + height: 0; | ||
108 | + clear: both; | ||
109 | + visibility: hidden; | ||
110 | + line-height: 0px; | ||
111 | +} |
css/section.css
0 → 100644
css/section.less
0 → 100644
1 | +.m-section { | ||
2 | + .section-head { | ||
3 | + line-height: 45px; | ||
4 | + padding: 0 10px; | ||
5 | + background-color: #fff; | ||
6 | + font-size: 14px; | ||
7 | + color: #666; | ||
8 | + text-align: left; | ||
9 | + font-weight: bold; | ||
10 | + margin-bottom: 10px; | ||
11 | + &:first-letter { | ||
12 | + font-size: 18px; | ||
13 | + color: #23ac38; | ||
14 | + } | ||
15 | + } | ||
16 | +} | ||
17 | +.section-items { | ||
18 | + margin-bottom: 10px; | ||
19 | + .section-item { | ||
20 | + display: block; | ||
21 | + margin-bottom: 5px; | ||
22 | + width: 100%; | ||
23 | + img { | ||
24 | + width: 100%; | ||
25 | + max-width: 100%; | ||
26 | + } | ||
27 | + } | ||
28 | +} | ||
29 | +.product-items { | ||
30 | + background-color: #FFF; | ||
31 | + margin-bottom: 10px; | ||
32 | + .items { | ||
33 | + .item { | ||
34 | + width: 33.33%; | ||
35 | + float: left; | ||
36 | + font-size: 13px; | ||
37 | + text-align: center; | ||
38 | + padding: 8px 0; | ||
39 | + a { | ||
40 | + display: block; | ||
41 | + position: relative; | ||
42 | + z-index: 2; | ||
43 | + } | ||
44 | + h3 { | ||
45 | + font-size: 13px; | ||
46 | + padding: 0 5px; | ||
47 | + font-weight: 700; | ||
48 | + color: #333; | ||
49 | + text-align: left; | ||
50 | + line-height: 16px; | ||
51 | + overflow: hidden; | ||
52 | + padding: 0 10px; | ||
53 | + text-align: left; | ||
54 | + text-overflow: ellipsis; | ||
55 | + overflow: hidden; | ||
56 | + white-space: nowrap; | ||
57 | + } | ||
58 | + p{ | ||
59 | + padding: 0 10px; | ||
60 | + text-align: left; | ||
61 | + } | ||
62 | + em { | ||
63 | + text-align: left; | ||
64 | + display: block; | ||
65 | + font-size: 13px; | ||
66 | + font-weight: 700; | ||
67 | + font-style: normal; | ||
68 | + color: #FA4535; | ||
69 | + text-overflow: ellipsis; | ||
70 | + overflow: hidden; | ||
71 | + white-space: nowrap; | ||
72 | + } | ||
73 | + span { | ||
74 | + display: block; | ||
75 | + text-align: center; | ||
76 | + overflow: hidden; | ||
77 | + white-space: nowrap; | ||
78 | + text-overflow: ellipsis; | ||
79 | + } | ||
80 | + .pic { | ||
81 | + max-width: 100%; | ||
82 | + height: 60px; | ||
83 | + display: inline-block; | ||
84 | + vertical-align: middle; | ||
85 | + } | ||
86 | + &:after { | ||
87 | + border-left: none; | ||
88 | + border-top: none; | ||
89 | + } | ||
90 | + } | ||
91 | + } | ||
92 | +} |
css/slider.css
0 → 100644
css/slider.less
0 → 100644
1 | +/* | ||
2 | + * Swiper 2.7.0 | ||
3 | + * Mobile touch slider and framework with hardware accelerated transitions | ||
4 | + * | ||
5 | + * http://www.idangero.us/sliders/swiper/ | ||
6 | + * | ||
7 | + * Copyright 2010-2014, Vladimir Kharlampidi | ||
8 | + * The iDangero.us | ||
9 | + * http://www.idangero.us/ | ||
10 | + * | ||
11 | + * Licensed under GPL & MIT | ||
12 | + * | ||
13 | + * Released on: August 30, 2014 | ||
14 | +*/ | ||
15 | +/* =============================================================== | ||
16 | +Basic Swiper Styles | ||
17 | +================================================================*/ | ||
18 | +.swiper-container { | ||
19 | + margin: 0 auto; | ||
20 | + position: relative; | ||
21 | + overflow: hidden; | ||
22 | + -webkit-backface-visibility: hidden; | ||
23 | + -moz-backface-visibility: hidden; | ||
24 | + -ms-backface-visibility: hidden; | ||
25 | + -o-backface-visibility: hidden; | ||
26 | + backface-visibility: hidden; | ||
27 | + /* Fix of Webkit flickering */ | ||
28 | + z-index: 1; | ||
29 | +} | ||
30 | +.swiper-wrapper { | ||
31 | + position: relative; | ||
32 | + width: 100%; | ||
33 | + -webkit-transition-property: -webkit-transform, left, top; | ||
34 | + -webkit-transition-duration: 0s; | ||
35 | + -webkit-transform: translate3d(0px,0,0); | ||
36 | + -webkit-transition-timing-function: ease; | ||
37 | + -moz-transition-property: -moz-transform, left, top; | ||
38 | + -moz-transition-duration: 0s; | ||
39 | + -moz-transform: translate3d(0px,0,0); | ||
40 | + -moz-transition-timing-function: ease; | ||
41 | + -o-transition-property: -o-transform, left, top; | ||
42 | + -o-transition-duration: 0s; | ||
43 | + -o-transform: translate3d(0px,0,0); | ||
44 | + -o-transition-timing-function: ease; | ||
45 | + -o-transform: translate(0px,0px); | ||
46 | + -ms-transition-property: -ms-transform, left, top; | ||
47 | + -ms-transition-duration: 0s; | ||
48 | + -ms-transform: translate3d(0px,0,0); | ||
49 | + -ms-transition-timing-function: ease; | ||
50 | + transition-property: transform, left, top; | ||
51 | + transition-duration: 0s; | ||
52 | + transform: translate3d(0px,0,0); | ||
53 | + transition-timing-function: ease; | ||
54 | + -webkit-box-sizing: content-box; | ||
55 | + -moz-box-sizing: content-box; | ||
56 | + box-sizing: content-box; | ||
57 | +} | ||
58 | +.swiper-free-mode > .swiper-wrapper { | ||
59 | + -webkit-transition-timing-function: ease-out; | ||
60 | + -moz-transition-timing-function: ease-out; | ||
61 | + -ms-transition-timing-function: ease-out; | ||
62 | + -o-transition-timing-function: ease-out; | ||
63 | + transition-timing-function: ease-out; | ||
64 | + margin: 0 auto; | ||
65 | +} | ||
66 | +.swiper-slide { | ||
67 | + float: left; | ||
68 | + -webkit-box-sizing: content-box; | ||
69 | + -moz-box-sizing: content-box; | ||
70 | + box-sizing: content-box; | ||
71 | +} | ||
72 | +/* IE10 Windows Phone 8 Fixes */ | ||
73 | +.swiper-wp8-horizontal { | ||
74 | + -ms-touch-action: pan-y; | ||
75 | +} | ||
76 | +.swiper-wp8-vertical { | ||
77 | + -ms-touch-action: pan-x; | ||
78 | +} | ||
79 | +/* =============================================================== | ||
80 | +Your custom styles, here you need to specify container's and slide's | ||
81 | +sizes, pagination, etc. | ||
82 | +================================================================*/ | ||
83 | +.swiper-container { | ||
84 | + /* Specify Swiper's Size: */ | ||
85 | + /*width:200px; | ||
86 | + height: 100px;*/ | ||
87 | +} | ||
88 | +.swiper-slide { | ||
89 | + /* Specify Slides's Size: */ | ||
90 | + /*width: 100%; | ||
91 | + height: 100%;*/ | ||
92 | +} | ||
93 | +.swiper-slide-active { | ||
94 | + /* Specific active slide styling: */ | ||
95 | +} | ||
96 | +.swiper-slide-visible { | ||
97 | + /* Specific visible slide styling: */ | ||
98 | +} | ||
99 | +/* =============================================================== | ||
100 | +Pagination Styles | ||
101 | +================================================================*/ | ||
102 | +.swiper-pagination-switch { | ||
103 | + /* Stylize pagination button: */ | ||
104 | +} | ||
105 | +.swiper-active-switch { | ||
106 | + /* Specific active button style: */ | ||
107 | +} | ||
108 | +.swiper-visible-switch { | ||
109 | + /* Specific visible button style: */ | ||
110 | +} | ||
111 | +.swiper-pagination { | ||
112 | + position: absolute; | ||
113 | + text-align: center; | ||
114 | + -webkit-transition: 300ms; | ||
115 | + -moz-transition: 300ms; | ||
116 | + -o-transition: 300ms; | ||
117 | + transition: 300ms; | ||
118 | + -webkit-transform: translate3d(0, 0, 0); | ||
119 | + -ms-transform: translate3d(0, 0, 0); | ||
120 | + -o-transform: translate3d(0, 0, 0); | ||
121 | + transform: translate3d(0, 0, 0); | ||
122 | + z-index: 10; | ||
123 | +} | ||
124 | +.swiper-pagination { | ||
125 | + bottom: 10px; | ||
126 | + left: 0; | ||
127 | + width: 100%; | ||
128 | +} | ||
129 | +.swiper-pagination .swiper-pagination-switch { | ||
130 | + margin: 0 5px; | ||
131 | +} | ||
132 | +.swiper-pagination-switch { | ||
133 | + width: 8px; | ||
134 | + height: 8px; | ||
135 | + display: inline-block; | ||
136 | + /*background: #FFF;*/ | ||
137 | + background: none; | ||
138 | + -webkit-box-shadow: inset 0 0 0 2px #ddd; | ||
139 | + box-shadow: inset 0 0 0 2px #ddd; | ||
140 | + -webkit-box-shadow: inset hoff voff blur color; | ||
141 | + box-shadow: inset hoff voff blur color; | ||
142 | + border-radius: 100%; | ||
143 | + /* -webkit-transition: all ease-in-out .15s; | ||
144 | + -o-transition: all ease-in-out .15s; | ||
145 | + transition: all ease-in-out .15s;*/ | ||
146 | +} | ||
147 | +.swiper-active-switch { | ||
148 | + opacity: 1; | ||
149 | + -webkit-box-shadow: inset 0 0 0 4px #23AC38; | ||
150 | + box-shadow: inset 0 0 0 4px #23AC38; | ||
151 | + /*background: #23AC38;*/ | ||
152 | + /*-webkit-box-shadow: none;*/ | ||
153 | + /*box-shadow: none;*/ | ||
154 | +} | ||
155 | +.m-slider { | ||
156 | + height: 120px; | ||
157 | + position: relative; | ||
158 | + overflow: hidden; | ||
159 | + font-size: 0; | ||
160 | + a { | ||
161 | + display: block; | ||
162 | + width: 100%; | ||
163 | + height: 100%; | ||
164 | + } | ||
165 | + img { | ||
166 | + display: inline-block; | ||
167 | + width: 100%; | ||
168 | + height: 100%; | ||
169 | + float: left; | ||
170 | + } | ||
171 | + .swiper-container { | ||
172 | + height: 100%; | ||
173 | + } | ||
174 | + .swiper-wrapper { | ||
175 | + height: 100%; | ||
176 | + } | ||
177 | +} |
css/sprite.css
0 → 100644
1 | +/* | ||
2 | +LESS variables are information about icon's compiled state, stored under its original file name | ||
3 | + | ||
4 | +.icon-home { | ||
5 | + width: @icon-home-width; | ||
6 | +} | ||
7 | + | ||
8 | +The large array-like variables contain all information about a single icon | ||
9 | +@icon-home: x y offset_x offset_y width height total_width total_height image_path name; | ||
10 | + | ||
11 | +At the bottom of this section, we provide information about the spritesheet itself | ||
12 | +@spritesheet: width height image @spritesheet-sprites; | ||
13 | +*/ | ||
14 | +/* | ||
15 | +The provided classes are intended to be used with the array-like variables | ||
16 | + | ||
17 | +.icon-home { | ||
18 | + .sprite-width(@icon-home); | ||
19 | +} | ||
20 | +.icon-email { | ||
21 | + .sprite(@icon-email); | ||
22 | +} | ||
23 | +*/ | ||
24 | +/* | ||
25 | +The `.sprites` mixin generates identical output to the CSS template | ||
26 | + but can be overridden inside of LESS | ||
27 | + | ||
28 | +This must be run when you have at least 2 sprites. | ||
29 | + If run with a single sprite, then there will be reference errors. | ||
30 | + | ||
31 | +.sprites(@spritesheet-sprites); | ||
32 | +*/ |
css/sprite.less
0 → 100644
1 | +/* | ||
2 | +LESS variables are information about icon's compiled state, stored under its original file name | ||
3 | + | ||
4 | +.icon-home { | ||
5 | + width: @icon-home-width; | ||
6 | +} | ||
7 | + | ||
8 | +The large array-like variables contain all information about a single icon | ||
9 | +@icon-home: x y offset_x offset_y width height total_width total_height image_path name; | ||
10 | + | ||
11 | +At the bottom of this section, we provide information about the spritesheet itself | ||
12 | +@spritesheet: width height image @spritesheet-sprites; | ||
13 | +*/ | ||
14 | +@icon-back-to-name: icon-back-to; | ||
15 | +@icon-back-to-x: 0px; | ||
16 | +@icon-back-to-y: 0px; | ||
17 | +@icon-back-to-offset-x: 0px; | ||
18 | +@icon-back-to-offset-y: 0px; | ||
19 | +@icon-back-to-width: 22px; | ||
20 | +@icon-back-to-height: 38px; | ||
21 | +@icon-back-to-total-width: 50px; | ||
22 | +@icon-back-to-total-height: 38px; | ||
23 | +@icon-back-to-image: '../images/dist/sprite.png'; | ||
24 | +@icon-back-to: 0px 0px 0px 0px 22px 38px 50px 38px '../images/dist/sprite.png' icon-back-to; | ||
25 | +@icon-back-name: icon-back; | ||
26 | +@icon-back-x: 28px; | ||
27 | +@icon-back-y: 0px; | ||
28 | +@icon-back-offset-x: -28px; | ||
29 | +@icon-back-offset-y: 0px; | ||
30 | +@icon-back-width: 22px; | ||
31 | +@icon-back-height: 38px; | ||
32 | +@icon-back-total-width: 50px; | ||
33 | +@icon-back-total-height: 38px; | ||
34 | +@icon-back-image: '../images/dist/sprite.png'; | ||
35 | +@icon-back: 28px 0px -28px 0px 22px 38px 50px 38px '../images/dist/sprite.png' icon-back; | ||
36 | +@spritesheet-width: 50px; | ||
37 | +@spritesheet-height: 38px; | ||
38 | +@spritesheet-image: '../images/dist/sprite.png'; | ||
39 | +@spritesheet-sprites: @icon-back-to @icon-back; | ||
40 | +@spritesheet: 50px 38px '../images/dist/sprite.png' @spritesheet-sprites; | ||
41 | + | ||
42 | +/* | ||
43 | +The provided classes are intended to be used with the array-like variables | ||
44 | + | ||
45 | +.icon-home { | ||
46 | + .sprite-width(@icon-home); | ||
47 | +} | ||
48 | +.icon-email { | ||
49 | + .sprite(@icon-email); | ||
50 | +} | ||
51 | +*/ | ||
52 | +.sprite-width(@sprite) { | ||
53 | + width: extract(@sprite, 5); | ||
54 | +} | ||
55 | + | ||
56 | +.sprite-height(@sprite) { | ||
57 | + height: extract(@sprite, 6); | ||
58 | +} | ||
59 | + | ||
60 | +.sprite-position(@sprite) { | ||
61 | + @sprite-offset-x: extract(@sprite, 3); | ||
62 | + @sprite-offset-y: extract(@sprite, 4); | ||
63 | + background-position: @sprite-offset-x @sprite-offset-y; | ||
64 | +} | ||
65 | + | ||
66 | +.sprite-image(@sprite) { | ||
67 | + @sprite-image: extract(@sprite, 9); | ||
68 | + @sprite-image-bare: ~`"@{sprite-image}".slice(1, -1)`; | ||
69 | + background-image: url(@sprite-image-bare); | ||
70 | +} | ||
71 | + | ||
72 | +.sprite(@sprite) { | ||
73 | + .sprite-image(@sprite); | ||
74 | + .sprite-position(@sprite); | ||
75 | + .sprite-width(@sprite); | ||
76 | + .sprite-height(@sprite); | ||
77 | +} | ||
78 | + | ||
79 | +/* | ||
80 | +The `.sprites` mixin generates identical output to the CSS template | ||
81 | + but can be overridden inside of LESS | ||
82 | + | ||
83 | +This must be run when you have at least 2 sprites. | ||
84 | + If run with a single sprite, then there will be reference errors. | ||
85 | + | ||
86 | +.sprites(@spritesheet-sprites); | ||
87 | +*/ | ||
88 | +.sprites(@sprites, @i: 1) when (@i <= length(@sprites)) { | ||
89 | + @sprite: extract(@sprites, @i); | ||
90 | + @sprite-name: extract(@sprite, 10); | ||
91 | + .@{sprite-name} { | ||
92 | + .sprite(@sprite); | ||
93 | + } | ||
94 | + .sprites(@sprites, @i + 1); | ||
95 | +} |
css/tab.css
0 → 100644
1 | +.m-tab { | ||
2 | + width: 100%; | ||
3 | + background-color: #FFF; | ||
4 | + font-size: 14px; | ||
5 | + color: #999; | ||
6 | + border-width: 1px 0; | ||
7 | + overflow: hidden; | ||
8 | + box-sizing: border-box; | ||
9 | + padding: 0 15px; | ||
10 | +} | ||
11 | +.m-tab a { | ||
12 | + color: #999; | ||
13 | +} | ||
14 | +.m-tab li { | ||
15 | + float: left; | ||
16 | + min-width: 32px; | ||
17 | + padding-right: 18px; | ||
18 | + line-height: 40px; | ||
19 | + text-align: center; | ||
20 | + position: relative; | ||
21 | +} | ||
22 | +.m-tab li:last-child { | ||
23 | + padding-right: 0; | ||
24 | +} | ||
25 | +.m-tab .on a { | ||
26 | + color: #2caa3f; | ||
27 | + display: block; | ||
28 | + position: relative; | ||
29 | +} | ||
30 | +.m-tab .on a:after { | ||
31 | + content: ''; | ||
32 | + position: absolute; | ||
33 | + bottom: 0; | ||
34 | + left: 0; | ||
35 | + right: 0; | ||
36 | + height: 2px; | ||
37 | + background-color: #23AC38; | ||
38 | +} | ||
39 | +.m-tab.tab-col-2 li { | ||
40 | + width: 50% !important; | ||
41 | +} | ||
42 | +.m-tab.tab-col-3 li { | ||
43 | + width: 33.33% !important; | ||
44 | + padding-right: 0 ; | ||
45 | +} | ||
46 | +.m-tab.tab-col-4 li { | ||
47 | + padding-right: 0; | ||
48 | + width: 25% !important; | ||
49 | +} | ||
50 | +.m-tab.tab-col-5 li { | ||
51 | + padding-right: 0; | ||
52 | + width: 20% !important; | ||
53 | +} |
css/tab.less
0 → 100644
1 | +.m-nav{ | ||
2 | + width: 100%; | ||
3 | + background-color: #444; | ||
4 | + font-size: 14px; | ||
5 | + color: #999; | ||
6 | + overflow: hidden; | ||
7 | + box-sizing: border-box; | ||
8 | + a{ | ||
9 | + color: #999; | ||
10 | + padding: 0 10px; | ||
11 | + min-width: 70px; | ||
12 | + } | ||
13 | + li{ | ||
14 | + float: left; | ||
15 | + line-height: 40px; | ||
16 | + text-align: center; | ||
17 | + position: relative; | ||
18 | + &:last-child{ | ||
19 | + padding-right: 0; | ||
20 | + } | ||
21 | + } | ||
22 | + .on{ | ||
23 | + a{ | ||
24 | + color: #FFF; | ||
25 | + background-color: #23ac38; | ||
26 | + display: block; | ||
27 | + position: relative; | ||
28 | + } | ||
29 | + } | ||
30 | +} | ||
31 | + | ||
32 | + | ||
33 | +.m-tab{ | ||
34 | + width: 100%; | ||
35 | + background-color: #FFF; | ||
36 | + font-size: 14px; | ||
37 | + color: #999; | ||
38 | + // border: 1px solid #ddd; | ||
39 | + border-width: 1px 0; | ||
40 | + overflow: hidden; | ||
41 | + box-sizing: border-box; | ||
42 | + margin-bottom: 10px; | ||
43 | + a{ | ||
44 | + color: #999; | ||
45 | + } | ||
46 | + li{ | ||
47 | + float: left; | ||
48 | + min-width: 32px; | ||
49 | + padding-right: 18px; | ||
50 | + line-height: 40px; | ||
51 | + text-align: center; | ||
52 | + position: relative; | ||
53 | + &:last-child{ | ||
54 | + padding-right: 0; | ||
55 | + } | ||
56 | + } | ||
57 | + .on{ | ||
58 | + a{ | ||
59 | + color: #23ac38; | ||
60 | + display: block; | ||
61 | + position: relative; | ||
62 | + &:after{ | ||
63 | + content: ''; | ||
64 | + position: absolute; | ||
65 | + bottom: 0; | ||
66 | + left: 0; | ||
67 | + right: 0; | ||
68 | + height: 2px; | ||
69 | + background-color: #23ac38; | ||
70 | + } | ||
71 | + } | ||
72 | + } | ||
73 | + &.tab-col-2{ | ||
74 | + li{ | ||
75 | + width: 50% !important; | ||
76 | + } | ||
77 | + } | ||
78 | + &.tab-col-3{ | ||
79 | + li{ | ||
80 | + width: 33.33% !important; | ||
81 | + padding-right:0 ; | ||
82 | + } | ||
83 | + } | ||
84 | + &.tab-col-4{ | ||
85 | + li{ | ||
86 | + padding-right: 0; | ||
87 | + width: 25% !important; | ||
88 | + } | ||
89 | + } | ||
90 | + &.tab-col-5{ | ||
91 | + li{ | ||
92 | + padding-right: 0; | ||
93 | + width: 20% !important; | ||
94 | + } | ||
95 | + } | ||
96 | +} |
css/util.css
0 → 100644
1 | +/*************************************************** | ||
2 | +* feature : 工具类class,提供浮动清除、文本对齐、显示隐藏等; | ||
3 | +* update : 2015/02/03; | ||
4 | +* use : 按需使用对应class即可; | ||
5 | +* desc : ; | ||
6 | +* feedback : 此处填入 issue, 并请附带以下信息[os_version, browser_version, page_path, issue_description] | ||
7 | +* - demo => [windows 7, IE 8, http://diligrp.com/icon.html, 在不定height下未能垂直居中]; | ||
8 | +****************************************************/ | ||
9 | +.text-left { | ||
10 | + text-align: left !important; | ||
11 | +} | ||
12 | +.text-center { | ||
13 | + text-align: center !important; | ||
14 | +} | ||
15 | +.text-right { | ||
16 | + text-align: right !important; | ||
17 | +} | ||
18 | +.text-nowrap { | ||
19 | + white-space: nowrap !important; | ||
20 | +} | ||
21 | +.text-overflow { | ||
22 | + overflow: hidden; | ||
23 | + text-overflow: ellipsis; | ||
24 | +} | ||
25 | +.text-lowercase { | ||
26 | + text-transform: lowercase; | ||
27 | +} | ||
28 | +.text-uppercase { | ||
29 | + text-transform: uppercase; | ||
30 | +} | ||
31 | +.text-capitalize { | ||
32 | + text-transform: capitalize; | ||
33 | +} | ||
34 | +.text-indent { | ||
35 | + text-indent: -999em; | ||
36 | +} | ||
37 | +.float-left { | ||
38 | + float: left !important; | ||
39 | +} | ||
40 | +.float-right { | ||
41 | + float: right !important; | ||
42 | +} | ||
43 | +.float-none { | ||
44 | + float: none !important; | ||
45 | +} | ||
46 | +.display-block { | ||
47 | + display: block !important; | ||
48 | +} | ||
49 | +.clearfix:after { | ||
50 | + content: ''; | ||
51 | + display: block; | ||
52 | + height: 0; | ||
53 | + overflow: hidden; | ||
54 | + font-size: 0; | ||
55 | + clear: both; | ||
56 | +} | ||
57 | +.m-hide { | ||
58 | + display: none !important; | ||
59 | + visibility: hidden; | ||
60 | + opacity: 0; | ||
61 | + z-index: -1; | ||
62 | +} | ||
63 | +.m-hidden { | ||
64 | + visibility: hidden; | ||
65 | + opacity: 0; | ||
66 | + z-index: -1; | ||
67 | +} | ||
68 | +.m-show { | ||
69 | + display: block !important; | ||
70 | + visibility: visible; | ||
71 | +} | ||
72 | +.m-separate { | ||
73 | + position: relative; | ||
74 | + width: 100%; | ||
75 | + line-height: 50px; | ||
76 | + text-align: center; | ||
77 | + font-size: 12px; | ||
78 | + color: #666; | ||
79 | + overflow: visible; | ||
80 | +} | ||
81 | +.m-more, | ||
82 | +a.m-more { | ||
83 | + display: block; | ||
84 | + font-size: 12px; | ||
85 | + text-align: center; | ||
86 | + color: #999; | ||
87 | + line-height: 45px; | ||
88 | + background-color: #FFF; | ||
89 | +} | ||
90 | +.m-animate-hide { | ||
91 | + -webkit-transform: translate(0, 100%) translateZ(0) !important; | ||
92 | + -ms-transform: translate(0, 100%) translateZ(0) !important; | ||
93 | + -o-transform: translate(0, 100%) translateZ(0) !important; | ||
94 | + transform: translate(0, 100%) translateZ(0) !important; | ||
95 | +} | ||
96 | +.m-animate-show { | ||
97 | + -webkit-transform: translate(0, 0) translateZ(0) !important; | ||
98 | + -ms-transform: translate(0, 0) translateZ(0) !important; | ||
99 | + -o-transform: translate(0, 0) translateZ(0) !important; | ||
100 | + transform: translate(0, 0) translateZ(0) !important; | ||
101 | +} | ||
102 | +.hidden { | ||
103 | + opacity: 0; | ||
104 | + z-index: -1; | ||
105 | +} | ||
106 | +.mask-hidden { | ||
107 | + opacity: 0; | ||
108 | +} | ||
109 | +.font-white { | ||
110 | + color: #FFF !important; | ||
111 | +} | ||
112 | +.font-white-opacity { | ||
113 | + color: rgba(255, 255, 255, 0.8) !important; | ||
114 | +} | ||
115 | +.font-deep { | ||
116 | + color: #333 !important; | ||
117 | +} | ||
118 | +.font-gray { | ||
119 | + color: #666 !important; | ||
120 | +} | ||
121 | +.font-light { | ||
122 | + color: #999 !important; | ||
123 | +} | ||
124 | +.font-yellow { | ||
125 | + color: #FF9D2C !important; | ||
126 | +} | ||
127 | +.font-orange { | ||
128 | + color: #FF6B00 !important; | ||
129 | +} | ||
130 | +.font-red { | ||
131 | + color: #fa4535 !important; | ||
132 | +} | ||
133 | +.font-green { | ||
134 | + color: #23ac38 !important; | ||
135 | +} | ||
136 | +.background-gray { | ||
137 | + background-color: #666 !important; | ||
138 | +} | ||
139 | +.background-yellow { | ||
140 | + background-color: #FF9D2C !important; | ||
141 | +} | ||
142 | +.background-orange { | ||
143 | + background-color: #FF6B00 !important; | ||
144 | +} | ||
145 | +.background-red { | ||
146 | + background-color: #fa4535 !important; | ||
147 | +} | ||
148 | +.background-green { | ||
149 | + background-color: #23ac38 !important; | ||
150 | +} | ||
151 | +.position-relative { | ||
152 | + position: relative; | ||
153 | +} | ||
154 | +.z-index2 { | ||
155 | + z-index: 2; | ||
156 | +} | ||
157 | +.width-auto { | ||
158 | + width: auto !important; | ||
159 | +} | ||
160 | +.width-200p { | ||
161 | + width: 200%; | ||
162 | +} | ||
163 | +.m-col-1 { | ||
164 | + width: 100% !important; | ||
165 | +} | ||
166 | +.m-col-2 { | ||
167 | + width: 50% !important; | ||
168 | +} | ||
169 | +.m-col-3 { | ||
170 | + width: 33.33% !important; | ||
171 | +} | ||
172 | +.m-col-4 { | ||
173 | + width: 25% !important; | ||
174 | +} |
css/util.less
0 → 100644
1 | +/*************************************************** | ||
2 | +* feature : 工具类class,提供浮动清除、文本对齐、显示隐藏等; | ||
3 | +* update : 2015/02/03; | ||
4 | +* use : 按需使用对应class即可; | ||
5 | +* desc : ; | ||
6 | +* feedback : 此处填入 issue, 并请附带以下信息[os_version, browser_version, page_path, issue_description] | ||
7 | +* - demo => [windows 7, IE 8, http://diligrp.com/icon.html, 在不定height下未能垂直居中]; | ||
8 | +****************************************************/ | ||
9 | + | ||
10 | +//文本 | ||
11 | +.text-left{ | ||
12 | + text-align: left !important; | ||
13 | +} | ||
14 | + | ||
15 | +.text-center{ | ||
16 | + text-align: center !important; | ||
17 | +} | ||
18 | + | ||
19 | +.text-right{ | ||
20 | + text-align: right !important; | ||
21 | +} | ||
22 | + | ||
23 | +.text-nowrap{ | ||
24 | + white-space: nowrap !important; | ||
25 | +} | ||
26 | +.text-overflow{ | ||
27 | + overflow: hidden; | ||
28 | + text-overflow: ellipsis; | ||
29 | +} | ||
30 | + | ||
31 | +//改变大小写 | ||
32 | +.text-lowercase{ | ||
33 | + text-transform: lowercase; | ||
34 | +} | ||
35 | + | ||
36 | +.text-uppercase{ | ||
37 | + text-transform: uppercase; | ||
38 | +} | ||
39 | + | ||
40 | +.text-capitalize{ | ||
41 | + text-transform: capitalize; | ||
42 | +} | ||
43 | + | ||
44 | +//缩进 | ||
45 | +.text-indent{ | ||
46 | + text-indent: -999em; | ||
47 | +} | ||
48 | + | ||
49 | +//浮动 | ||
50 | +.float-left{ | ||
51 | + float: left !important; | ||
52 | +} | ||
53 | + | ||
54 | +.float-right{ | ||
55 | + float: right !important; | ||
56 | +} | ||
57 | + | ||
58 | +.float-none{ | ||
59 | + float: none !important; | ||
60 | +} | ||
61 | + | ||
62 | +.display-block{ | ||
63 | + display: block !important; | ||
64 | +} | ||
65 | + | ||
66 | +//浮动清除 | ||
67 | +.clearfix:after{ | ||
68 | + content: ''; | ||
69 | + display: block; | ||
70 | + height: 0; | ||
71 | + overflow: hidden; | ||
72 | + font-size: 0; | ||
73 | + clear: both; | ||
74 | +} | ||
75 | + | ||
76 | +//可见性 | ||
77 | +.m-hide{ | ||
78 | + display: none !important; | ||
79 | + visibility: hidden; | ||
80 | + opacity: 0; | ||
81 | + z-index: -1; | ||
82 | +} | ||
83 | + | ||
84 | +.m-hidden{ | ||
85 | + visibility: hidden; | ||
86 | + opacity: 0; | ||
87 | + z-index: -1; | ||
88 | +} | ||
89 | + | ||
90 | +.m-show{ | ||
91 | + display: block !important; | ||
92 | + visibility: visible; | ||
93 | +} | ||
94 | + | ||
95 | + | ||
96 | +//分割线 | ||
97 | +.m-separate{ | ||
98 | + position: relative; | ||
99 | + width: 100%; | ||
100 | + line-height: 50px; | ||
101 | + text-align: center; | ||
102 | + font-size: 12px; | ||
103 | + color: #666; | ||
104 | + overflow: visible; | ||
105 | +} | ||
106 | + | ||
107 | +//more text | ||
108 | +.m-more, a.m-more{ | ||
109 | + display: block; | ||
110 | + font-size: 12px; | ||
111 | + text-align: center; | ||
112 | + color: #999; | ||
113 | + line-height: 45px; | ||
114 | + background-color: #FFF; | ||
115 | +} | ||
116 | + | ||
117 | +.m-animate-hide { | ||
118 | + // -webkit-transform: translate3d(0, 100%, 0); | ||
119 | + // -ms-transform: translate3d(0, 100%, 0); | ||
120 | + // -o-transform: translate3d(0, 100%, 0); | ||
121 | + // transform: translate3d(0, 100%, 0); | ||
122 | + -webkit-transform: translate(0, 100%) translateZ(0) !important; | ||
123 | + -ms-transform: translate(0, 100%) translateZ(0) !important; | ||
124 | + -o-transform: translate(0, 100%) translateZ(0) !important; | ||
125 | + transform: translate(0, 100%) translateZ(0) !important; | ||
126 | + // visibility: hidden; | ||
127 | +} | ||
128 | + | ||
129 | +.m-animate-show { | ||
130 | + -webkit-transform: translate(0, 0) translateZ(0) !important; | ||
131 | + -ms-transform: translate(0, 0) translateZ(0) !important; | ||
132 | + -o-transform: translate(0, 0) translateZ(0) !important; | ||
133 | + transform: translate(0, 0) translateZ(0) !important; | ||
134 | + | ||
135 | + // visibility: hidden; | ||
136 | +} | ||
137 | + | ||
138 | +.hidden{ | ||
139 | + // visibility: hidden; | ||
140 | + opacity: 0; | ||
141 | + z-index: -1; | ||
142 | +} | ||
143 | +.mask-hidden{ | ||
144 | + opacity: 0; | ||
145 | +} | ||
146 | + | ||
147 | +.font-white{ | ||
148 | + color: #FFF !important; | ||
149 | +} | ||
150 | + | ||
151 | +.font-white-opacity{ | ||
152 | + color: rgba(255, 255, 255, .8) !important; | ||
153 | +} | ||
154 | +.font-deep{ | ||
155 | + color: #333 !important; | ||
156 | +} | ||
157 | +.font-gray{ | ||
158 | + color: #666 !important; | ||
159 | +} | ||
160 | +.font-light{ | ||
161 | + color: #999 !important; | ||
162 | +} | ||
163 | +.font-yellow{ | ||
164 | + color: #FF9D2C !important; | ||
165 | +} | ||
166 | +.font-orange{ | ||
167 | + color: #FF6B00 !important; | ||
168 | +} | ||
169 | +.font-red{ | ||
170 | + color: #fa4535 !important; | ||
171 | +} | ||
172 | +.font-green{ | ||
173 | + color: #23ac38 !important; | ||
174 | +} | ||
175 | + | ||
176 | +.background-gray{ | ||
177 | + background-color: #666 !important; | ||
178 | +} | ||
179 | +.background-yellow{ | ||
180 | + background-color: #FF9D2C !important; | ||
181 | +} | ||
182 | +.background-orange{ | ||
183 | + background-color: #FF6B00 !important; | ||
184 | +} | ||
185 | +.background-red{ | ||
186 | + background-color: #fa4535 !important; | ||
187 | +} | ||
188 | +.background-green{ | ||
189 | + background-color: #23ac38 !important; | ||
190 | +} | ||
191 | +.position-relative{ | ||
192 | + position: relative; | ||
193 | +} | ||
194 | +.z-index2{ | ||
195 | + z-index: 2; | ||
196 | +} | ||
197 | +.width-auto{ | ||
198 | + width: auto !important; | ||
199 | +} | ||
200 | +.width-200p{ | ||
201 | + width: 200%; | ||
202 | +} | ||
203 | + | ||
204 | +.m-col-1{ | ||
205 | + width: 100% !important; | ||
206 | +} | ||
207 | +.m-col-2{ | ||
208 | + width: 50% !important; | ||
209 | +} | ||
210 | +.m-col-3{ | ||
211 | + width: 33.33% !important; | ||
212 | +} | ||
213 | +.m-col-4{ | ||
214 | + width: 25% !important; | ||
215 | +} |
html/index.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html lang="en"> | ||
3 | + | ||
4 | +<head> | ||
5 | + <meta name="viewport" content="user-scalable=0, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"> | ||
6 | + <meta content="telephone=no" name="format-detection" /> | ||
7 | + <meta content="black" name="apple-mobile-web-app-status-bar-style" /> | ||
8 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
9 | + <title>七巧板</title> | ||
10 | + <link rel="stylesheet" href="../css/common.css"> | ||
11 | +</head> | ||
12 | + | ||
13 | +<body> | ||
14 | + | ||
15 | + <!-- header for wap --> | ||
16 | + <header class="m-header header-light"> | ||
17 | + <div class="head"> | ||
18 | + <a href="#" class="lt-bar"><i class="m-icon icon-back"></i></a> | ||
19 | + <h1 class="font-deep">名古屋的美食店</h1> | ||
20 | + </div> | ||
21 | + </header> | ||
22 | + | ||
23 | + | ||
24 | + <!-- tab --> | ||
25 | + <ul class="m-nav border-1px border-bottom"> | ||
26 | + <li class="on"><a href="#">秒杀专区</a></li> | ||
27 | + <li><a href="#">活动专区</a></li> | ||
28 | + <li><a href="#">最低专区</a></li> | ||
29 | + <li><a href="#">精品专区</a></li> | ||
30 | + </ul> | ||
31 | + | ||
32 | + | ||
33 | + <!-- slider --> | ||
34 | + <div class="m-slider"> | ||
35 | + <!-- Swiper --> | ||
36 | + <div class="swiper-container"> | ||
37 | + <div class="swiper-wrapper"> | ||
38 | + <a class="swiper-slide" href="#" style="background:url(../temp/pic_320.png) center center no-repeat; background-size:100% 100%;"></a> | ||
39 | + </div> | ||
40 | + <!-- Add Pagination --> | ||
41 | + <div class="swiper-pagination"></div> | ||
42 | + </div> | ||
43 | + </div> | ||
44 | + | ||
45 | + <!-- section --> | ||
46 | + <div class="m-section"> | ||
47 | + <h3 class="section-head">秒杀专区</h3> | ||
48 | + </div> | ||
49 | + | ||
50 | + <!-- goods --> | ||
51 | + | ||
52 | + <ul class="m-goods-items width-200p clearfix"> | ||
53 | + <li> | ||
54 | + <a href="#"> | ||
55 | + <div class="pic" style="background-image:url(../temp/pic_220.png); background-size:cover;"></div> | ||
56 | + <h3> 丝瓜 产地山东潍坊市 产地山东潍坊市</h3> | ||
57 | + <p> | ||
58 | + <em>0.8-0.9元/斤</em> | ||
59 | + </p> | ||
60 | + <p> | ||
61 | + <em class="origin-price">1.5元/斤</em> | ||
62 | + </p> | ||
63 | + </a> | ||
64 | + </li> | ||
65 | + <li> | ||
66 | + <a href="#"> | ||
67 | + <div class="pic" style="background-image:url(../temp/pic_220.png); background-size:cover;"></div> | ||
68 | + <h3> 丝瓜 产地山东潍坊市 产地山东潍坊市</h3> | ||
69 | + <p> | ||
70 | + <em>0.8-0.9元/斤</em> | ||
71 | + </p> | ||
72 | + <p> | ||
73 | + <em class="origin-price">1.5元/斤</em> | ||
74 | + </p> | ||
75 | + </a> | ||
76 | + </li> | ||
77 | + <li> | ||
78 | + <a href="#"> | ||
79 | + <div class="pic" style="background-image:url(../temp/pic_220.png); background-size:cover;"></div> | ||
80 | + <h3> 丝瓜 产地山东潍坊市 产地山东潍坊市</h3> | ||
81 | + <p> | ||
82 | + <em>0.8-0.9元/斤</em> | ||
83 | + </p> | ||
84 | + <p> | ||
85 | + <em class="origin-price">1.5元/斤</em> | ||
86 | + </p> | ||
87 | + </a> | ||
88 | + </li> | ||
89 | + </ul> | ||
90 | + | ||
91 | + | ||
92 | + <!-- section --> | ||
93 | + <div class="m-section"> | ||
94 | + <h3 class="section-head">活动专区</h3> | ||
95 | + </div> | ||
96 | + <div class="section-items"> | ||
97 | + <a href="#" class="section-item"> | ||
98 | + <img src="../temp/p_1.jpg" alt=""> | ||
99 | + </a> | ||
100 | + <a href="#" class="section-item"> | ||
101 | + <img src="../temp/p_2.jpg" alt=""> | ||
102 | + </a> | ||
103 | + <a href="#" class="section-item"> | ||
104 | + <img src="../temp/p_3.jpg" alt=""> | ||
105 | + </a> | ||
106 | + </div> | ||
107 | + | ||
108 | + <!-- section --> | ||
109 | + <div class="m-section"> | ||
110 | + <h3 class="section-head">最低专区</h3> | ||
111 | + </div> | ||
112 | + <div class="product-items clearfix"> | ||
113 | + <ul class="items border-1px border-top"> | ||
114 | + <li class="item border-1px-full"> | ||
115 | + <a href="#"> | ||
116 | + <h3>新鲜花菜</h3> | ||
117 | + <p> | ||
118 | + <em>0.8-0.9元/斤</em> | ||
119 | + </p> | ||
120 | + <img src="../temp/pic_220.png" class="pic" alt=""> | ||
121 | + </a> | ||
122 | + </li> | ||
123 | + <li class="item border-1px-full"> | ||
124 | + <a href="#"> | ||
125 | + <h3>新鲜花菜</h3> | ||
126 | + <p> | ||
127 | + <em>0.8-0.9元/斤</em> | ||
128 | + </p> | ||
129 | + <img src="../temp/pic_220.png" class="pic" alt=""> | ||
130 | + </a> | ||
131 | + </li> | ||
132 | + <li class="item border-1px-full"> | ||
133 | + <a href="#"> | ||
134 | + <h3>新鲜花菜</h3> | ||
135 | + <p> | ||
136 | + <em>0.8-0.9元/斤</em> | ||
137 | + </p> | ||
138 | + <img src="../temp/pic_220.png" class="pic" alt=""> | ||
139 | + </a> | ||
140 | + </li> | ||
141 | + <li class="item border-1px-full"> | ||
142 | + <a href="#"> | ||
143 | + <h3>新鲜花菜</h3> | ||
144 | + <p> | ||
145 | + <em>0.8-0.9元/斤</em> | ||
146 | + </p> | ||
147 | + <img src="../temp/pic_220.png" class="pic" alt=""> | ||
148 | + </a> | ||
149 | + </li> | ||
150 | + <li class="item border-1px-full"> | ||
151 | + <a href="#"> | ||
152 | + <h3>新鲜花菜</h3> | ||
153 | + <p> | ||
154 | + <em>0.8-0.9元/斤</em> | ||
155 | + </p> | ||
156 | + <img src="../temp/pic_220.png" class="pic" alt=""> | ||
157 | + </a> | ||
158 | + </li> | ||
159 | + <li class="item border-1px-full"> | ||
160 | + <a href="#"> | ||
161 | + <h3>新鲜花菜</h3> | ||
162 | + <p> | ||
163 | + <em>0.8-0.9元/斤</em> | ||
164 | + </p> | ||
165 | + <img src="../temp/pic_220.png" class="pic" alt=""> | ||
166 | + </a> | ||
167 | + </li> | ||
168 | + <li class="item border-1px-full"> | ||
169 | + <a href="#"> | ||
170 | + <h3>新鲜花菜</h3> | ||
171 | + <p> | ||
172 | + <em>0.8-0.9元/斤</em> | ||
173 | + </p> | ||
174 | + <img src="../temp/pic_220.png" class="pic" alt=""> | ||
175 | + </a> | ||
176 | + </li> | ||
177 | + <li class="item border-1px-full"> | ||
178 | + <a href="#"> | ||
179 | + <h3>新鲜花菜</h3> | ||
180 | + <p> | ||
181 | + <em>0.8-0.9元/斤</em> | ||
182 | + </p> | ||
183 | + <img src="../temp/pic_220.png" class="pic" alt=""> | ||
184 | + </a> | ||
185 | + </li> | ||
186 | + <li class="item border-1px-full"> | ||
187 | + <a href="#"> | ||
188 | + <h3>新鲜花菜</h3> | ||
189 | + <p> | ||
190 | + <em>0.8-0.9元/斤</em> | ||
191 | + </p> | ||
192 | + <img src="../temp/pic_220.png" class="pic" alt=""> | ||
193 | + </a> | ||
194 | + </li> | ||
195 | + </ul> | ||
196 | + </div> | ||
197 | + | ||
198 | + | ||
199 | + <!-- section --> | ||
200 | + <div class="m-section"> | ||
201 | + <h3 class="section-head">精品专区</h3> | ||
202 | + </div> | ||
203 | + | ||
204 | + <div class="photo-wall clearfix"> | ||
205 | + <a href="#" class="photo-item photo-2p"> | ||
206 | + <img src="../temp/wall_1.jpg" alt=""> | ||
207 | + </a> | ||
208 | + <a href="#" class="photo-item photo-1p"> | ||
209 | + <img src="../temp/wall_2.jpg" alt=""> | ||
210 | + </a> | ||
211 | + <a href="#" class="photo-item photo-1p"> | ||
212 | + <img src="../temp/wall_3.jpg" alt=""> | ||
213 | + </a> | ||
214 | + <a href="#" class="photo-item photo-1p"> | ||
215 | + <img src="../temp/wall_4.jpg" alt=""> | ||
216 | + </a> | ||
217 | + <a href="#" class="photo-item photo-1p"> | ||
218 | + <img src="../temp/wall_5.jpg" alt=""> | ||
219 | + </a> | ||
220 | + </div> | ||
221 | + | ||
222 | + | ||
223 | + <!-- section --> | ||
224 | + <div class="m-section"> | ||
225 | + <h3 class="section-head">推荐专区</h3> | ||
226 | + </div> | ||
227 | + | ||
228 | + | ||
229 | + <ul class="m-list-view border-1px border-top"> | ||
230 | + <li class="cell cell-pic border-1px border-bottom"> | ||
231 | + <a href="#"> | ||
232 | + <img src="../temp/pic_80.png" width="80" height="80" alt="" class="pic"> | ||
233 | + <div class="cont"> | ||
234 | + <h3>白石榴 产地韩国</h3> | ||
235 | + | ||
236 | + <em class="font-red">0.8~0.9元/斤</em> | ||
237 | + | ||
238 | + <p class="desc"> | ||
239 | + <span class="name font-gray">王大大大大</span> | ||
240 | + <span class="float-right category font-gray">主营:根茎类</span> | ||
241 | + </p> | ||
242 | + <p>广西柳州市城中区第三方斯蒂芬是</p> | ||
243 | + </div> | ||
244 | + </a> | ||
245 | + </li> | ||
246 | + | ||
247 | + <li class="cell cell-pic border-1px border-bottom"> | ||
248 | + <a href="#"> | ||
249 | + <img src="../temp/pic_80.png" width="80" height="80" alt="" class="pic"> | ||
250 | + <div class="cont"> | ||
251 | + <h3>白石榴 产地韩国</h3> | ||
252 | + | ||
253 | + <em class="font-red">0.8~0.9元/斤</em> | ||
254 | + | ||
255 | + <p class="desc"> | ||
256 | + <span class="name font-gray">王大大大大</span> | ||
257 | + <span class="float-right category font-gray">主营:根茎类</span> | ||
258 | + </p> | ||
259 | + <p>广西柳州市城中区第三方斯蒂芬是</p> | ||
260 | + </div> | ||
261 | + </a> | ||
262 | + </li> | ||
263 | + | ||
264 | + <li class="cell cell-pic border-1px border-bottom"> | ||
265 | + <a href="#"> | ||
266 | + <img src="../temp/pic_80.png" width="80" height="80" alt="" class="pic"> | ||
267 | + <div class="cont"> | ||
268 | + <h3>白石榴 产地韩国</h3> | ||
269 | + | ||
270 | + <em class="font-red">0.8~0.9元/斤</em> | ||
271 | + | ||
272 | + <p class="desc"> | ||
273 | + <span class="name font-gray">王大大大大</span> | ||
274 | + <span class="float-right category font-gray">主营:根茎类</span> | ||
275 | + </p> | ||
276 | + <p>广西柳州市城中区第三方斯蒂芬是</p> | ||
277 | + </div> | ||
278 | + </a> | ||
279 | + </li> | ||
280 | + </ul> | ||
281 | + | ||
282 | + <!-- tab --> | ||
283 | + <ul class="m-tab tab-col-4 border-1px border-bottom"> | ||
284 | + <li class="on"><a href="#">今日必抢</a></li> | ||
285 | + <li><a href="#">名古屋</a></li> | ||
286 | + <li><a href="#">我是吃货</a></li> | ||
287 | + <li><a href="#">我是吃货</a></li> | ||
288 | + </ul> | ||
289 | + | ||
290 | + <ul class="m-goods-items clearfix"> | ||
291 | + <li class="m-col-2"> | ||
292 | + <a href="#"> | ||
293 | + <div class="pic" style="background-image:url(../temp/pic_220.png); background-size:cover;"></div> | ||
294 | + <h3> 丝瓜 产地山东潍坊市 产地山东潍坊市</h3> | ||
295 | + <p> | ||
296 | + <em>0.8-0.9元/斤</em> | ||
297 | + </p> | ||
298 | + </a> | ||
299 | + </li> | ||
300 | + <li class="m-col-2"> | ||
301 | + <a href="#"> | ||
302 | + <div class="pic" style="background-image:url(../temp/pic_220.png); background-size:cover;"></div> | ||
303 | + <h3> 丝瓜 产地山东潍坊市 产地山东潍坊市</h3> | ||
304 | + <p> | ||
305 | + <em>0.8-0.9元/斤</em> | ||
306 | + </p> | ||
307 | + </a> | ||
308 | + </li> | ||
309 | + <li class="m-col-2"> | ||
310 | + <a href="#"> | ||
311 | + <div class="pic" style="background-image:url(../temp/pic_220.png); background-size:cover;"></div> | ||
312 | + <h3> 丝瓜 产地山东潍坊市 产地山东潍坊市</h3> | ||
313 | + <p> | ||
314 | + <em>0.8-0.9元/斤</em> | ||
315 | + </p> | ||
316 | + </a> | ||
317 | + </li> | ||
318 | + <li class="m-col-2"> | ||
319 | + <a href="#"> | ||
320 | + <div class="pic" style="background-image:url(../temp/pic_220.png); background-size:cover;"></div> | ||
321 | + <h3> 丝瓜 产地山东潍坊市 产地山东潍坊市</h3> | ||
322 | + <p> | ||
323 | + <em>0.8-0.9元/斤</em> | ||
324 | + </p> | ||
325 | + </a> | ||
326 | + </li> | ||
327 | + </ul> | ||
328 | + | ||
329 | +</body> | ||
330 | + | ||
331 | +</html> |
images/Gruntfile.js
0 → 100644
1 | +'use strict'; | ||
2 | + | ||
3 | +module.exports = function(grunt) { | ||
4 | + grunt.initConfig({ | ||
5 | + pkg: grunt.file.readJSON('package.json'), | ||
6 | + sprite: { | ||
7 | + all: { | ||
8 | + // 待合并的文件 | ||
9 | + src: 'src/*.png', | ||
10 | + // 合并后输出的文件 | ||
11 | + dest: 'dist/sprite.png', | ||
12 | + // 输出对应雪碧图的样式 | ||
13 | + destCss: '../css/sprite.less', | ||
14 | + // 可选: 手动指定样式里引用图片的路径 | ||
15 | + imgPath: '../images/dist/sprite.png', | ||
16 | + cssVarMap: function(sprite) { | ||
17 | + sprite.name = sprite.name.replace(/^\s{1}/, ''); //去除文件名前空白 | ||
18 | + //sprite.name = sprite.name.replace('@2x', ''); | ||
19 | + sprite.name = 'icon-' + sprite.name; | ||
20 | + sprite.name = sprite.name; | ||
21 | + }, | ||
22 | + padding: 6, | ||
23 | + // 可选: 指定算法 (top-down, left-right, diagonal,alt-diagonal, binary-tree )等 | ||
24 | + // 默认是top-down,二叉树合并出来的图体积最小 | ||
25 | + algorithm: 'binary-tree', | ||
26 | + // 可选: 指定CSS格式 (默认根据destCSS中的后缀设置格式) | ||
27 | + // (stylus, scss, scss_maps, sass, less, json, json_array, css) | ||
28 | + cssFormat: 'less' | ||
29 | + } | ||
30 | + } | ||
31 | + }); | ||
32 | + | ||
33 | + grunt.loadNpmTasks('grunt-spritesmith'); | ||
34 | + grunt.registerTask('default', [ | ||
35 | + 'sprite' | ||
36 | + ]); | ||
37 | +}; |
images/dist/sprite.png
0 → 100644
1.23 KB
images/gulpfile.js
0 → 100644
1 | +var gulp = require('gulp'); | ||
2 | +var spritesmith = require('gulp.spritesmith'); | ||
3 | + | ||
4 | +gulp.task('sprite', function() { | ||
5 | + var spriteData = gulp.src('src/*.png').pipe(spritesmith({ | ||
6 | + imgName: 'sprite.png', | ||
7 | + // cssName: 'sprite.less', | ||
8 | + // 输出对应雪碧图的样式 | ||
9 | + destCss: '../../2.3.0/sp-sprite.less', | ||
10 | + imgPath: '../images/2.3.0/dist/sprite.png', | ||
11 | + cssVarMap: function(sprite) { | ||
12 | + sprite.name = sprite.name.replace(/^\s{1}/, ''); //去除文件名前空白 | ||
13 | + //sprite.name = sprite.name.replace('@2x', ''); | ||
14 | + sprite.name = 'icon-' + sprite.name; | ||
15 | + sprite.name = sprite.name; | ||
16 | + }, | ||
17 | + padding: 6, | ||
18 | + // 可选: 指定算法 (top-down, left-right, diagonal,alt-diagonal, binary-tree )等 | ||
19 | + // 默认是top-down,二叉树合并出来的图体积最小 | ||
20 | + algorithm: 'binary-tree', | ||
21 | + // 可选: 指定CSS格式 (默认根据destCSS中的后缀设置格式) | ||
22 | + // (stylus, scss, scss_maps, sass, less, json, json_array, css) | ||
23 | + cssFormat: 'less' | ||
24 | + })); | ||
25 | + return spriteData.pipe(gulp.dest('dest')); | ||
26 | +}); |
images/node_modules/.bin/cake
0 → 120000
images/node_modules/.bin/coffee
0 → 120000
images/node_modules/.bin/esparse
0 → 120000
images/node_modules/.bin/esvalidate
0 → 120000
images/node_modules/.bin/grunt-glue
0 → 120000
images/node_modules/.bin/gulp
0 → 120000
images/node_modules/.bin/js-yaml
0 → 120000
images/node_modules/.bin/mkdirp
0 → 120000
images/node_modules/.bin/nopt
0 → 120000
images/node_modules/.bin/rimraf
0 → 120000
images/node_modules/.bin/semver
0 → 120000
images/node_modules/.bin/strip-indent
0 → 120000
images/node_modules/.bin/user-home
0 → 120000
images/node_modules/.bin/which
0 → 120000
images/node_modules/abbrev/.npmignore
0 → 100644
images/node_modules/abbrev/.travis.yml
0 → 100644
images/node_modules/abbrev/CONTRIBUTING.md
0 → 100644
images/node_modules/abbrev/LICENSE
0 → 100644
1 | +The ISC License | ||
2 | + | ||
3 | +Copyright (c) Isaac Z. Schlueter and Contributors | ||
4 | + | ||
5 | +Permission to use, copy, modify, and/or distribute this software for any | ||
6 | +purpose with or without fee is hereby granted, provided that the above | ||
7 | +copyright notice and this permission notice appear in all copies. | ||
8 | + | ||
9 | +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR | ||
15 | +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
images/node_modules/abbrev/README.md
0 → 100644
1 | +# abbrev-js | ||
2 | + | ||
3 | +Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev). | ||
4 | + | ||
5 | +Usage: | ||
6 | + | ||
7 | + var abbrev = require("abbrev"); | ||
8 | + abbrev("foo", "fool", "folding", "flop"); | ||
9 | + | ||
10 | + // returns: | ||
11 | + { fl: 'flop' | ||
12 | + , flo: 'flop' | ||
13 | + , flop: 'flop' | ||
14 | + , fol: 'folding' | ||
15 | + , fold: 'folding' | ||
16 | + , foldi: 'folding' | ||
17 | + , foldin: 'folding' | ||
18 | + , folding: 'folding' | ||
19 | + , foo: 'foo' | ||
20 | + , fool: 'fool' | ||
21 | + } | ||
22 | + | ||
23 | +This is handy for command-line scripts, or other cases where you want to be able to accept shorthands. |
images/node_modules/abbrev/abbrev.js
0 → 100644
1 | + | ||
2 | +module.exports = exports = abbrev.abbrev = abbrev | ||
3 | + | ||
4 | +abbrev.monkeyPatch = monkeyPatch | ||
5 | + | ||
6 | +function monkeyPatch () { | ||
7 | + Object.defineProperty(Array.prototype, 'abbrev', { | ||
8 | + value: function () { return abbrev(this) }, | ||
9 | + enumerable: false, configurable: true, writable: true | ||
10 | + }) | ||
11 | + | ||
12 | + Object.defineProperty(Object.prototype, 'abbrev', { | ||
13 | + value: function () { return abbrev(Object.keys(this)) }, | ||
14 | + enumerable: false, configurable: true, writable: true | ||
15 | + }) | ||
16 | +} | ||
17 | + | ||
18 | +function abbrev (list) { | ||
19 | + if (arguments.length !== 1 || !Array.isArray(list)) { | ||
20 | + list = Array.prototype.slice.call(arguments, 0) | ||
21 | + } | ||
22 | + for (var i = 0, l = list.length, args = [] ; i < l ; i ++) { | ||
23 | + args[i] = typeof list[i] === "string" ? list[i] : String(list[i]) | ||
24 | + } | ||
25 | + | ||
26 | + // sort them lexicographically, so that they're next to their nearest kin | ||
27 | + args = args.sort(lexSort) | ||
28 | + | ||
29 | + // walk through each, seeing how much it has in common with the next and previous | ||
30 | + var abbrevs = {} | ||
31 | + , prev = "" | ||
32 | + for (var i = 0, l = args.length ; i < l ; i ++) { | ||
33 | + var current = args[i] | ||
34 | + , next = args[i + 1] || "" | ||
35 | + , nextMatches = true | ||
36 | + , prevMatches = true | ||
37 | + if (current === next) continue | ||
38 | + for (var j = 0, cl = current.length ; j < cl ; j ++) { | ||
39 | + var curChar = current.charAt(j) | ||
40 | + nextMatches = nextMatches && curChar === next.charAt(j) | ||
41 | + prevMatches = prevMatches && curChar === prev.charAt(j) | ||
42 | + if (!nextMatches && !prevMatches) { | ||
43 | + j ++ | ||
44 | + break | ||
45 | + } | ||
46 | + } | ||
47 | + prev = current | ||
48 | + if (j === cl) { | ||
49 | + abbrevs[current] = current | ||
50 | + continue | ||
51 | + } | ||
52 | + for (var a = current.substr(0, j) ; j <= cl ; j ++) { | ||
53 | + abbrevs[a] = current | ||
54 | + a += current.charAt(j) | ||
55 | + } | ||
56 | + } | ||
57 | + return abbrevs | ||
58 | +} | ||
59 | + | ||
60 | +function lexSort (a, b) { | ||
61 | + return a === b ? 0 : a > b ? 1 : -1 | ||
62 | +} |
images/node_modules/abbrev/package.json
0 → 100644
1 | +{ | ||
2 | + "_args": [ | ||
3 | + [ | ||
4 | + "abbrev@1", | ||
5 | + "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/nopt" | ||
6 | + ] | ||
7 | + ], | ||
8 | + "_from": "abbrev@>=1.0.0 <2.0.0", | ||
9 | + "_id": "abbrev@1.0.7", | ||
10 | + "_inCache": true, | ||
11 | + "_installable": true, | ||
12 | + "_location": "/abbrev", | ||
13 | + "_nodeVersion": "2.0.1", | ||
14 | + "_npmUser": { | ||
15 | + "email": "isaacs@npmjs.com", | ||
16 | + "name": "isaacs" | ||
17 | + }, | ||
18 | + "_npmVersion": "2.10.1", | ||
19 | + "_phantomChildren": {}, | ||
20 | + "_requested": { | ||
21 | + "name": "abbrev", | ||
22 | + "raw": "abbrev@1", | ||
23 | + "rawSpec": "1", | ||
24 | + "scope": null, | ||
25 | + "spec": ">=1.0.0 <2.0.0", | ||
26 | + "type": "range" | ||
27 | + }, | ||
28 | + "_requiredBy": [ | ||
29 | + "/nopt" | ||
30 | + ], | ||
31 | + "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz", | ||
32 | + "_shasum": "5b6035b2ee9d4fb5cf859f08a9be81b208491843", | ||
33 | + "_shrinkwrap": null, | ||
34 | + "_spec": "abbrev@1", | ||
35 | + "_where": "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/nopt", | ||
36 | + "author": { | ||
37 | + "email": "i@izs.me", | ||
38 | + "name": "Isaac Z. Schlueter" | ||
39 | + }, | ||
40 | + "bugs": { | ||
41 | + "url": "https://github.com/isaacs/abbrev-js/issues" | ||
42 | + }, | ||
43 | + "dependencies": {}, | ||
44 | + "description": "Like ruby's abbrev module, but in js", | ||
45 | + "devDependencies": { | ||
46 | + "tap": "^1.2.0" | ||
47 | + }, | ||
48 | + "directories": {}, | ||
49 | + "dist": { | ||
50 | + "shasum": "5b6035b2ee9d4fb5cf859f08a9be81b208491843", | ||
51 | + "tarball": "http://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" | ||
52 | + }, | ||
53 | + "gitHead": "821d09ce7da33627f91bbd8ed631497ed6f760c2", | ||
54 | + "homepage": "https://github.com/isaacs/abbrev-js#readme", | ||
55 | + "license": "ISC", | ||
56 | + "main": "abbrev.js", | ||
57 | + "maintainers": [ | ||
58 | + { | ||
59 | + "name": "isaacs", | ||
60 | + "email": "i@izs.me" | ||
61 | + } | ||
62 | + ], | ||
63 | + "name": "abbrev", | ||
64 | + "optionalDependencies": {}, | ||
65 | + "readme": "ERROR: No README data found!", | ||
66 | + "repository": { | ||
67 | + "type": "git", | ||
68 | + "url": "git+ssh://git@github.com/isaacs/abbrev-js.git" | ||
69 | + }, | ||
70 | + "scripts": { | ||
71 | + "test": "tap test.js --cov" | ||
72 | + }, | ||
73 | + "version": "1.0.7" | ||
74 | +} |
images/node_modules/abbrev/test.js
0 → 100644
1 | +var abbrev = require('./abbrev.js') | ||
2 | +var assert = require("assert") | ||
3 | +var util = require("util") | ||
4 | + | ||
5 | +console.log("TAP version 13") | ||
6 | +var count = 0 | ||
7 | + | ||
8 | +function test (list, expect) { | ||
9 | + count++ | ||
10 | + var actual = abbrev(list) | ||
11 | + assert.deepEqual(actual, expect, | ||
12 | + "abbrev("+util.inspect(list)+") === " + util.inspect(expect) + "\n"+ | ||
13 | + "actual: "+util.inspect(actual)) | ||
14 | + actual = abbrev.apply(exports, list) | ||
15 | + assert.deepEqual(abbrev.apply(exports, list), expect, | ||
16 | + "abbrev("+list.map(JSON.stringify).join(",")+") === " + util.inspect(expect) + "\n"+ | ||
17 | + "actual: "+util.inspect(actual)) | ||
18 | + console.log('ok - ' + list.join(' ')) | ||
19 | +} | ||
20 | + | ||
21 | +test([ "ruby", "ruby", "rules", "rules", "rules" ], | ||
22 | +{ rub: 'ruby' | ||
23 | +, ruby: 'ruby' | ||
24 | +, rul: 'rules' | ||
25 | +, rule: 'rules' | ||
26 | +, rules: 'rules' | ||
27 | +}) | ||
28 | +test(["fool", "foom", "pool", "pope"], | ||
29 | +{ fool: 'fool' | ||
30 | +, foom: 'foom' | ||
31 | +, poo: 'pool' | ||
32 | +, pool: 'pool' | ||
33 | +, pop: 'pope' | ||
34 | +, pope: 'pope' | ||
35 | +}) | ||
36 | +test(["a", "ab", "abc", "abcd", "abcde", "acde"], | ||
37 | +{ a: 'a' | ||
38 | +, ab: 'ab' | ||
39 | +, abc: 'abc' | ||
40 | +, abcd: 'abcd' | ||
41 | +, abcde: 'abcde' | ||
42 | +, ac: 'acde' | ||
43 | +, acd: 'acde' | ||
44 | +, acde: 'acde' | ||
45 | +}) | ||
46 | + | ||
47 | +console.log("1..%d", count) |
images/node_modules/ansi-regex/index.js
0 → 100644
images/node_modules/ansi-regex/license
0 → 100644
1 | +The MIT License (MIT) | ||
2 | + | ||
3 | +Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | ||
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 | ||
13 | +all 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 | ||
21 | +THE SOFTWARE. |
images/node_modules/ansi-regex/package.json
0 → 100644
1 | +{ | ||
2 | + "_args": [ | ||
3 | + [ | ||
4 | + "ansi-regex@^2.0.0", | ||
5 | + "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/has-ansi" | ||
6 | + ] | ||
7 | + ], | ||
8 | + "_from": "ansi-regex@>=2.0.0 <3.0.0", | ||
9 | + "_id": "ansi-regex@2.0.0", | ||
10 | + "_inCache": true, | ||
11 | + "_installable": true, | ||
12 | + "_location": "/ansi-regex", | ||
13 | + "_nodeVersion": "0.12.5", | ||
14 | + "_npmUser": { | ||
15 | + "email": "sindresorhus@gmail.com", | ||
16 | + "name": "sindresorhus" | ||
17 | + }, | ||
18 | + "_npmVersion": "2.11.2", | ||
19 | + "_phantomChildren": {}, | ||
20 | + "_requested": { | ||
21 | + "name": "ansi-regex", | ||
22 | + "raw": "ansi-regex@^2.0.0", | ||
23 | + "rawSpec": "^2.0.0", | ||
24 | + "scope": null, | ||
25 | + "spec": ">=2.0.0 <3.0.0", | ||
26 | + "type": "range" | ||
27 | + }, | ||
28 | + "_requiredBy": [ | ||
29 | + "/has-ansi", | ||
30 | + "/strip-ansi" | ||
31 | + ], | ||
32 | + "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", | ||
33 | + "_shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", | ||
34 | + "_shrinkwrap": null, | ||
35 | + "_spec": "ansi-regex@^2.0.0", | ||
36 | + "_where": "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/has-ansi", | ||
37 | + "author": { | ||
38 | + "email": "sindresorhus@gmail.com", | ||
39 | + "name": "Sindre Sorhus", | ||
40 | + "url": "sindresorhus.com" | ||
41 | + }, | ||
42 | + "bugs": { | ||
43 | + "url": "https://github.com/sindresorhus/ansi-regex/issues" | ||
44 | + }, | ||
45 | + "dependencies": {}, | ||
46 | + "description": "Regular expression for matching ANSI escape codes", | ||
47 | + "devDependencies": { | ||
48 | + "mocha": "*" | ||
49 | + }, | ||
50 | + "directories": {}, | ||
51 | + "dist": { | ||
52 | + "shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", | ||
53 | + "tarball": "http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" | ||
54 | + }, | ||
55 | + "engines": { | ||
56 | + "node": ">=0.10.0" | ||
57 | + }, | ||
58 | + "files": [ | ||
59 | + "index.js" | ||
60 | + ], | ||
61 | + "gitHead": "57c3f2941a73079fa8b081e02a522e3d29913e2f", | ||
62 | + "homepage": "https://github.com/sindresorhus/ansi-regex", | ||
63 | + "keywords": [ | ||
64 | + "256", | ||
65 | + "ansi", | ||
66 | + "cli", | ||
67 | + "color", | ||
68 | + "colors", | ||
69 | + "colour", | ||
70 | + "command-line", | ||
71 | + "console", | ||
72 | + "escape", | ||
73 | + "find", | ||
74 | + "formatting", | ||
75 | + "match", | ||
76 | + "pattern", | ||
77 | + "re", | ||
78 | + "regex", | ||
79 | + "regexp", | ||
80 | + "rgb", | ||
81 | + "shell", | ||
82 | + "string", | ||
83 | + "styles", | ||
84 | + "terminal", | ||
85 | + "test", | ||
86 | + "text", | ||
87 | + "tty", | ||
88 | + "xterm" | ||
89 | + ], | ||
90 | + "license": "MIT", | ||
91 | + "maintainers": [ | ||
92 | + { | ||
93 | + "name": "sindresorhus", | ||
94 | + "email": "sindresorhus@gmail.com" | ||
95 | + }, | ||
96 | + { | ||
97 | + "name": "jbnicolai", | ||
98 | + "email": "jappelman@xebia.com" | ||
99 | + } | ||
100 | + ], | ||
101 | + "name": "ansi-regex", | ||
102 | + "optionalDependencies": {}, | ||
103 | + "readme": "ERROR: No README data found!", | ||
104 | + "repository": { | ||
105 | + "type": "git", | ||
106 | + "url": "git+https://github.com/sindresorhus/ansi-regex.git" | ||
107 | + }, | ||
108 | + "scripts": { | ||
109 | + "test": "mocha test/test.js", | ||
110 | + "view-supported": "node test/viewCodes.js" | ||
111 | + }, | ||
112 | + "version": "2.0.0" | ||
113 | +} |
images/node_modules/ansi-regex/readme.md
0 → 100644
1 | +# ansi-regex [![Build Status](https://travis-ci.org/sindresorhus/ansi-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-regex) | ||
2 | + | ||
3 | +> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) | ||
4 | + | ||
5 | + | ||
6 | +## Install | ||
7 | + | ||
8 | +``` | ||
9 | +$ npm install --save ansi-regex | ||
10 | +``` | ||
11 | + | ||
12 | + | ||
13 | +## Usage | ||
14 | + | ||
15 | +```js | ||
16 | +var ansiRegex = require('ansi-regex'); | ||
17 | + | ||
18 | +ansiRegex().test('\u001b[4mcake\u001b[0m'); | ||
19 | +//=> true | ||
20 | + | ||
21 | +ansiRegex().test('cake'); | ||
22 | +//=> false | ||
23 | + | ||
24 | +'\u001b[4mcake\u001b[0m'.match(ansiRegex()); | ||
25 | +//=> ['\u001b[4m', '\u001b[0m'] | ||
26 | +``` | ||
27 | + | ||
28 | + | ||
29 | +## License | ||
30 | + | ||
31 | +MIT © [Sindre Sorhus](http://sindresorhus.com) |
images/node_modules/ansi-styles/index.js
0 → 100644
1 | +'use strict'; | ||
2 | + | ||
3 | +function assembleStyles () { | ||
4 | + var styles = { | ||
5 | + modifiers: { | ||
6 | + reset: [0, 0], | ||
7 | + bold: [1, 22], // 21 isn't widely supported and 22 does the same thing | ||
8 | + dim: [2, 22], | ||
9 | + italic: [3, 23], | ||
10 | + underline: [4, 24], | ||
11 | + inverse: [7, 27], | ||
12 | + hidden: [8, 28], | ||
13 | + strikethrough: [9, 29] | ||
14 | + }, | ||
15 | + colors: { | ||
16 | + black: [30, 39], | ||
17 | + red: [31, 39], | ||
18 | + green: [32, 39], | ||
19 | + yellow: [33, 39], | ||
20 | + blue: [34, 39], | ||
21 | + magenta: [35, 39], | ||
22 | + cyan: [36, 39], | ||
23 | + white: [37, 39], | ||
24 | + gray: [90, 39] | ||
25 | + }, | ||
26 | + bgColors: { | ||
27 | + bgBlack: [40, 49], | ||
28 | + bgRed: [41, 49], | ||
29 | + bgGreen: [42, 49], | ||
30 | + bgYellow: [43, 49], | ||
31 | + bgBlue: [44, 49], | ||
32 | + bgMagenta: [45, 49], | ||
33 | + bgCyan: [46, 49], | ||
34 | + bgWhite: [47, 49] | ||
35 | + } | ||
36 | + }; | ||
37 | + | ||
38 | + // fix humans | ||
39 | + styles.colors.grey = styles.colors.gray; | ||
40 | + | ||
41 | + Object.keys(styles).forEach(function (groupName) { | ||
42 | + var group = styles[groupName]; | ||
43 | + | ||
44 | + Object.keys(group).forEach(function (styleName) { | ||
45 | + var style = group[styleName]; | ||
46 | + | ||
47 | + styles[styleName] = group[styleName] = { | ||
48 | + open: '\u001b[' + style[0] + 'm', | ||
49 | + close: '\u001b[' + style[1] + 'm' | ||
50 | + }; | ||
51 | + }); | ||
52 | + | ||
53 | + Object.defineProperty(styles, groupName, { | ||
54 | + value: group, | ||
55 | + enumerable: false | ||
56 | + }); | ||
57 | + }); | ||
58 | + | ||
59 | + return styles; | ||
60 | +} | ||
61 | + | ||
62 | +Object.defineProperty(module, 'exports', { | ||
63 | + enumerable: true, | ||
64 | + get: assembleStyles | ||
65 | +}); |
images/node_modules/ansi-styles/license
0 → 100644
1 | +The MIT License (MIT) | ||
2 | + | ||
3 | +Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | ||
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 | ||
13 | +all 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 | ||
21 | +THE SOFTWARE. |
images/node_modules/ansi-styles/package.json
0 → 100644
1 | +{ | ||
2 | + "_args": [ | ||
3 | + [ | ||
4 | + "ansi-styles@^2.1.0", | ||
5 | + "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/chalk" | ||
6 | + ] | ||
7 | + ], | ||
8 | + "_from": "ansi-styles@>=2.1.0 <3.0.0", | ||
9 | + "_id": "ansi-styles@2.1.0", | ||
10 | + "_inCache": true, | ||
11 | + "_installable": true, | ||
12 | + "_location": "/ansi-styles", | ||
13 | + "_nodeVersion": "0.12.4", | ||
14 | + "_npmUser": { | ||
15 | + "email": "jappelman@xebia.com", | ||
16 | + "name": "jbnicolai" | ||
17 | + }, | ||
18 | + "_npmVersion": "2.10.1", | ||
19 | + "_phantomChildren": {}, | ||
20 | + "_requested": { | ||
21 | + "name": "ansi-styles", | ||
22 | + "raw": "ansi-styles@^2.1.0", | ||
23 | + "rawSpec": "^2.1.0", | ||
24 | + "scope": null, | ||
25 | + "spec": ">=2.1.0 <3.0.0", | ||
26 | + "type": "range" | ||
27 | + }, | ||
28 | + "_requiredBy": [ | ||
29 | + "/chalk" | ||
30 | + ], | ||
31 | + "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz", | ||
32 | + "_shasum": "990f747146927b559a932bf92959163d60c0d0e2", | ||
33 | + "_shrinkwrap": null, | ||
34 | + "_spec": "ansi-styles@^2.1.0", | ||
35 | + "_where": "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/chalk", | ||
36 | + "author": { | ||
37 | + "email": "sindresorhus@gmail.com", | ||
38 | + "name": "Sindre Sorhus", | ||
39 | + "url": "sindresorhus.com" | ||
40 | + }, | ||
41 | + "bugs": { | ||
42 | + "url": "https://github.com/chalk/ansi-styles/issues" | ||
43 | + }, | ||
44 | + "dependencies": {}, | ||
45 | + "description": "ANSI escape codes for styling strings in the terminal", | ||
46 | + "devDependencies": { | ||
47 | + "mocha": "*" | ||
48 | + }, | ||
49 | + "directories": {}, | ||
50 | + "dist": { | ||
51 | + "shasum": "990f747146927b559a932bf92959163d60c0d0e2", | ||
52 | + "tarball": "http://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" | ||
53 | + }, | ||
54 | + "engines": { | ||
55 | + "node": ">=0.10.0" | ||
56 | + }, | ||
57 | + "files": [ | ||
58 | + "index.js" | ||
59 | + ], | ||
60 | + "gitHead": "18421cbe4a2d93359ec2599a894f704be126d066", | ||
61 | + "homepage": "https://github.com/chalk/ansi-styles", | ||
62 | + "keywords": [ | ||
63 | + "256", | ||
64 | + "ansi", | ||
65 | + "cli", | ||
66 | + "color", | ||
67 | + "colors", | ||
68 | + "colour", | ||
69 | + "command-line", | ||
70 | + "console", | ||
71 | + "escape", | ||
72 | + "formatting", | ||
73 | + "log", | ||
74 | + "logging", | ||
75 | + "rgb", | ||
76 | + "shell", | ||
77 | + "string", | ||
78 | + "styles", | ||
79 | + "terminal", | ||
80 | + "text", | ||
81 | + "tty", | ||
82 | + "xterm" | ||
83 | + ], | ||
84 | + "license": "MIT", | ||
85 | + "maintainers": [ | ||
86 | + { | ||
87 | + "name": "sindresorhus", | ||
88 | + "email": "sindresorhus@gmail.com" | ||
89 | + }, | ||
90 | + { | ||
91 | + "name": "jbnicolai", | ||
92 | + "email": "jappelman@xebia.com" | ||
93 | + } | ||
94 | + ], | ||
95 | + "name": "ansi-styles", | ||
96 | + "optionalDependencies": {}, | ||
97 | + "readme": "ERROR: No README data found!", | ||
98 | + "repository": { | ||
99 | + "type": "git", | ||
100 | + "url": "git+https://github.com/chalk/ansi-styles.git" | ||
101 | + }, | ||
102 | + "scripts": { | ||
103 | + "test": "mocha" | ||
104 | + }, | ||
105 | + "version": "2.1.0" | ||
106 | +} |
images/node_modules/ansi-styles/readme.md
0 → 100644
1 | +# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles) | ||
2 | + | ||
3 | +> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal | ||
4 | + | ||
5 | +You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings. | ||
6 | + | ||
7 | +![](screenshot.png) | ||
8 | + | ||
9 | + | ||
10 | +## Install | ||
11 | + | ||
12 | +``` | ||
13 | +$ npm install --save ansi-styles | ||
14 | +``` | ||
15 | + | ||
16 | + | ||
17 | +## Usage | ||
18 | + | ||
19 | +```js | ||
20 | +var ansi = require('ansi-styles'); | ||
21 | + | ||
22 | +console.log(ansi.green.open + 'Hello world!' + ansi.green.close); | ||
23 | +``` | ||
24 | + | ||
25 | + | ||
26 | +## API | ||
27 | + | ||
28 | +Each style has an `open` and `close` property. | ||
29 | + | ||
30 | + | ||
31 | +## Styles | ||
32 | + | ||
33 | +### Modifiers | ||
34 | + | ||
35 | +- `reset` | ||
36 | +- `bold` | ||
37 | +- `dim` | ||
38 | +- `italic` *(not widely supported)* | ||
39 | +- `underline` | ||
40 | +- `inverse` | ||
41 | +- `hidden` | ||
42 | +- `strikethrough` *(not widely supported)* | ||
43 | + | ||
44 | +### Colors | ||
45 | + | ||
46 | +- `black` | ||
47 | +- `red` | ||
48 | +- `green` | ||
49 | +- `yellow` | ||
50 | +- `blue` | ||
51 | +- `magenta` | ||
52 | +- `cyan` | ||
53 | +- `white` | ||
54 | +- `gray` | ||
55 | + | ||
56 | +### Background colors | ||
57 | + | ||
58 | +- `bgBlack` | ||
59 | +- `bgRed` | ||
60 | +- `bgGreen` | ||
61 | +- `bgYellow` | ||
62 | +- `bgBlue` | ||
63 | +- `bgMagenta` | ||
64 | +- `bgCyan` | ||
65 | +- `bgWhite` | ||
66 | + | ||
67 | + | ||
68 | +## Advanced usage | ||
69 | + | ||
70 | +By default you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module. | ||
71 | + | ||
72 | +- `ansi.modifiers` | ||
73 | +- `ansi.colors` | ||
74 | +- `ansi.bgColors` | ||
75 | + | ||
76 | + | ||
77 | +###### Example | ||
78 | + | ||
79 | +```js | ||
80 | +console.log(ansi.colors.green.open); | ||
81 | +``` | ||
82 | + | ||
83 | + | ||
84 | +## License | ||
85 | + | ||
86 | +MIT © [Sindre Sorhus](http://sindresorhus.com) |
images/node_modules/archy/.travis.yml
0 → 100644
images/node_modules/archy/LICENSE
0 → 100644
1 | +This software is released under the MIT license: | ||
2 | + | ||
3 | +Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
4 | +this software and associated documentation files (the "Software"), to deal in | ||
5 | +the Software without restriction, including without limitation the rights to | ||
6 | +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
7 | +the Software, and to permit persons to whom the Software is furnished to do so, | ||
8 | +subject to the following conditions: | ||
9 | + | ||
10 | +The above copyright notice and this permission notice shall be included in all | ||
11 | +copies or substantial portions of the Software. | ||
12 | + | ||
13 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
14 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
15 | +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
16 | +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
17 | +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
18 | +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
images/node_modules/archy/examples/beep.js
0 → 100644
1 | +var archy = require('../'); | ||
2 | +var s = archy({ | ||
3 | + label : 'beep', | ||
4 | + nodes : [ | ||
5 | + 'ity', | ||
6 | + { | ||
7 | + label : 'boop', | ||
8 | + nodes : [ | ||
9 | + { | ||
10 | + label : 'o_O', | ||
11 | + nodes : [ | ||
12 | + { | ||
13 | + label : 'oh', | ||
14 | + nodes : [ 'hello', 'puny' ] | ||
15 | + }, | ||
16 | + 'human' | ||
17 | + ] | ||
18 | + }, | ||
19 | + 'party\ntime!' | ||
20 | + ] | ||
21 | + } | ||
22 | + ] | ||
23 | +}); | ||
24 | +console.log(s); |
images/node_modules/archy/examples/multi_line.js
0 → 100644
1 | +var archy = require('../'); | ||
2 | + | ||
3 | +var s = archy({ | ||
4 | + label : 'beep\none\ntwo', | ||
5 | + nodes : [ | ||
6 | + 'ity', | ||
7 | + { | ||
8 | + label : 'boop', | ||
9 | + nodes : [ | ||
10 | + { | ||
11 | + label : 'o_O\nwheee', | ||
12 | + nodes : [ | ||
13 | + { | ||
14 | + label : 'oh', | ||
15 | + nodes : [ 'hello', 'puny\nmeat' ] | ||
16 | + }, | ||
17 | + 'creature' | ||
18 | + ] | ||
19 | + }, | ||
20 | + 'party\ntime!' | ||
21 | + ] | ||
22 | + } | ||
23 | + ] | ||
24 | +}); | ||
25 | +console.log(s); |
images/node_modules/archy/index.js
0 → 100644
1 | +module.exports = function archy (obj, prefix, opts) { | ||
2 | + if (prefix === undefined) prefix = ''; | ||
3 | + if (!opts) opts = {}; | ||
4 | + var chr = function (s) { | ||
5 | + var chars = { | ||
6 | + '│' : '|', | ||
7 | + '└' : '`', | ||
8 | + '├' : '+', | ||
9 | + '─' : '-', | ||
10 | + '┬' : '-' | ||
11 | + }; | ||
12 | + return opts.unicode === false ? chars[s] : s; | ||
13 | + }; | ||
14 | + | ||
15 | + if (typeof obj === 'string') obj = { label : obj }; | ||
16 | + | ||
17 | + var nodes = obj.nodes || []; | ||
18 | + var lines = (obj.label || '').split('\n'); | ||
19 | + var splitter = '\n' + prefix + (nodes.length ? chr('│') : ' ') + ' '; | ||
20 | + | ||
21 | + return prefix | ||
22 | + + lines.join(splitter) + '\n' | ||
23 | + + nodes.map(function (node, ix) { | ||
24 | + var last = ix === nodes.length - 1; | ||
25 | + var more = node.nodes && node.nodes.length; | ||
26 | + var prefix_ = prefix + (last ? ' ' : chr('│')) + ' '; | ||
27 | + | ||
28 | + return prefix | ||
29 | + + (last ? chr('└') : chr('├')) + chr('─') | ||
30 | + + (more ? chr('┬') : chr('─')) + ' ' | ||
31 | + + archy(node, prefix_, opts).slice(prefix.length + 2) | ||
32 | + ; | ||
33 | + }).join('') | ||
34 | + ; | ||
35 | +}; |
images/node_modules/archy/package.json
0 → 100644
1 | +{ | ||
2 | + "_args": [ | ||
3 | + [ | ||
4 | + "archy@^1.0.0", | ||
5 | + "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/gulp" | ||
6 | + ] | ||
7 | + ], | ||
8 | + "_from": "archy@>=1.0.0 <2.0.0", | ||
9 | + "_id": "archy@1.0.0", | ||
10 | + "_inCache": true, | ||
11 | + "_installable": true, | ||
12 | + "_location": "/archy", | ||
13 | + "_npmUser": { | ||
14 | + "email": "mail@substack.net", | ||
15 | + "name": "substack" | ||
16 | + }, | ||
17 | + "_npmVersion": "1.4.25", | ||
18 | + "_phantomChildren": {}, | ||
19 | + "_requested": { | ||
20 | + "name": "archy", | ||
21 | + "raw": "archy@^1.0.0", | ||
22 | + "rawSpec": "^1.0.0", | ||
23 | + "scope": null, | ||
24 | + "spec": ">=1.0.0 <2.0.0", | ||
25 | + "type": "range" | ||
26 | + }, | ||
27 | + "_requiredBy": [ | ||
28 | + "/gulp" | ||
29 | + ], | ||
30 | + "_resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", | ||
31 | + "_shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40", | ||
32 | + "_shrinkwrap": null, | ||
33 | + "_spec": "archy@^1.0.0", | ||
34 | + "_where": "/Users/sam/Documents/dili_git_project/static-pnr/images/2.3.0/node_modules/gulp", | ||
35 | + "author": { | ||
36 | + "email": "mail@substack.net", | ||
37 | + "name": "James Halliday", | ||
38 | + "url": "http://substack.net" | ||
39 | + }, | ||
40 | + "bugs": { | ||
41 | + "url": "https://github.com/substack/node-archy/issues" | ||
42 | + }, | ||
43 | + "dependencies": {}, | ||
44 | + "description": "render nested hierarchies `npm ls` style with unicode pipes", | ||
45 | + "devDependencies": { | ||
46 | + "tap": "~0.3.3", | ||
47 | + "tape": "~0.1.1" | ||
48 | + }, | ||
49 | + "directories": {}, | ||
50 | + "dist": { | ||
51 | + "shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40", | ||
52 | + "tarball": "http://registry.npmjs.org/archy/-/archy-1.0.0.tgz" | ||
53 | + }, | ||
54 | + "gitHead": "30223c16191e877bf027b15b12daf077b9b55b84", | ||
55 | + "homepage": "https://github.com/substack/node-archy", | ||
56 | + "keywords": [ | ||
57 | + "hierarchy", | ||
58 | + "npm ls", | ||
59 | + "pretty", | ||
60 | + "print", | ||
61 | + "unicode" | ||
62 | + ], | ||
63 | + "license": "MIT", | ||
64 | + "main": "index.js", | ||
65 | + "maintainers": [ | ||
66 | + { | ||
67 | + "name": "substack", | ||
68 | + "email": "mail@substack.net" | ||
69 | + } | ||
70 | + ], | ||
71 | + "name": "archy", | ||
72 | + "optionalDependencies": {}, | ||
73 | + "readme": "ERROR: No README data found!", | ||
74 | + "repository": { | ||
75 | + "type": "git", | ||
76 | + "url": "git+ssh://git@github.com/substack/node-archy.git" | ||
77 | + }, | ||
78 | + "scripts": { | ||
79 | + "test": "tap test" | ||
80 | + }, | ||
81 | + "testling": { | ||
82 | + "browsers": { | ||
83 | + "chrome": [ | ||
84 | + "20.0" | ||
85 | + ], | ||
86 | + "firefox": [ | ||
87 | + "10.0", | ||
88 | + "15.0" | ||
89 | + ], | ||
90 | + "iexplore": [ | ||
91 | + "6.0", | ||
92 | + "7.0", | ||
93 | + "8.0", | ||
94 | + "9.0" | ||
95 | + ], | ||
96 | + "opera": [ | ||
97 | + "12.0" | ||
98 | + ], | ||
99 | + "safari": [ | ||
100 | + "5.1" | ||
101 | + ] | ||
102 | + }, | ||
103 | + "files": "test/*.js" | ||
104 | + }, | ||
105 | + "version": "1.0.0" | ||
106 | +} |
images/node_modules/archy/readme.markdown
0 → 100644
1 | +# archy | ||
2 | + | ||
3 | +Render nested hierarchies `npm ls` style with unicode pipes. | ||
4 | + | ||
5 | +[![browser support](http://ci.testling.com/substack/node-archy.png)](http://ci.testling.com/substack/node-archy) | ||
6 | + | ||
7 | +[![build status](https://secure.travis-ci.org/substack/node-archy.png)](http://travis-ci.org/substack/node-archy) | ||
8 | + | ||
9 | +# example | ||
10 | + | ||
11 | +``` js | ||
12 | +var archy = require('archy'); | ||
13 | +var s = archy({ | ||
14 | + label : 'beep', | ||
15 | + nodes : [ | ||
16 | + 'ity', | ||
17 | + { | ||
18 | + label : 'boop', | ||
19 | + nodes : [ | ||
20 | + { | ||
21 | + label : 'o_O', | ||
22 | + nodes : [ | ||
23 | + { | ||
24 | + label : 'oh', | ||
25 | + nodes : [ 'hello', 'puny' ] | ||
26 | + }, | ||
27 | + 'human' | ||
28 | + ] | ||
29 | + }, | ||
30 | + 'party\ntime!' | ||
31 | + ] | ||
32 | + } | ||
33 | + ] | ||
34 | +}); | ||
35 | +console.log(s); | ||
36 | +``` | ||
37 | + | ||
38 | +output | ||
39 | + | ||
40 | +``` | ||
41 | +beep | ||
42 | +├── ity | ||
43 | +└─┬ boop | ||
44 | + ├─┬ o_O | ||
45 | + │ ├─┬ oh | ||
46 | + │ │ ├── hello | ||
47 | + │ │ └── puny | ||
48 | + │ └── human | ||
49 | + └── party | ||
50 | + time! | ||
51 | +``` | ||
52 | + | ||
53 | +# methods | ||
54 | + | ||
55 | +var archy = require('archy') | ||
56 | + | ||
57 | +## archy(obj, prefix='', opts={}) | ||
58 | + | ||
59 | +Return a string representation of `obj` with unicode pipe characters like how | ||
60 | +`npm ls` looks. | ||
61 | + | ||
62 | +`obj` should be a tree of nested objects with `'label'` and `'nodes'` fields. | ||
63 | +`'label'` is a string of text to display at a node level and `'nodes'` is an | ||
64 | +array of the descendents of the current node. | ||
65 | + | ||
66 | +If a node is a string, that string will be used as the `'label'` and an empty | ||
67 | +array of `'nodes'` will be used. | ||
68 | + | ||
69 | +`prefix` gets prepended to all the lines and is used by the algorithm to | ||
70 | +recursively update. | ||
71 | + | ||
72 | +If `'label'` has newlines they will be indented at the present indentation level | ||
73 | +with the current prefix. | ||
74 | + | ||
75 | +To disable unicode results in favor of all-ansi output set `opts.unicode` to | ||
76 | +`false`. | ||
77 | + | ||
78 | +# install | ||
79 | + | ||
80 | +With [npm](http://npmjs.org) do: | ||
81 | + | ||
82 | +``` | ||
83 | +npm install archy | ||
84 | +``` | ||
85 | + | ||
86 | +# license | ||
87 | + | ||
88 | +MIT |
images/node_modules/archy/test/beep.js
0 → 100644
1 | +var test = require('tape'); | ||
2 | +var archy = require('../'); | ||
3 | + | ||
4 | +test('beep', function (t) { | ||
5 | + var s = archy({ | ||
6 | + label : 'beep', | ||
7 | + nodes : [ | ||
8 | + 'ity', | ||
9 | + { | ||
10 | + label : 'boop', | ||
11 | + nodes : [ | ||
12 | + { | ||
13 | + label : 'o_O', | ||
14 | + nodes : [ | ||
15 | + { | ||
16 | + label : 'oh', | ||
17 | + nodes : [ 'hello', 'puny' ] | ||
18 | + }, | ||
19 | + 'human' | ||
20 | + ] | ||
21 | + }, | ||
22 | + 'party!' | ||
23 | + ] | ||
24 | + } | ||
25 | + ] | ||
26 | + }); | ||
27 | + t.equal(s, [ | ||
28 | + 'beep', | ||
29 | + '├── ity', | ||
30 | + '└─┬ boop', | ||
31 | + ' ├─┬ o_O', | ||
32 | + ' │ ├─┬ oh', | ||
33 | + ' │ │ ├── hello', | ||
34 | + ' │ │ └── puny', | ||
35 | + ' │ └── human', | ||
36 | + ' └── party!', | ||
37 | + '' | ||
38 | + ].join('\n')); | ||
39 | + t.end(); | ||
40 | +}); |
images/node_modules/archy/test/multi_line.js
0 → 100644
1 | +var test = require('tape'); | ||
2 | +var archy = require('../'); | ||
3 | + | ||
4 | +test('multi-line', function (t) { | ||
5 | + var s = archy({ | ||
6 | + label : 'beep\none\ntwo', | ||
7 | + nodes : [ | ||
8 | + 'ity', | ||
9 | + { | ||
10 | + label : 'boop', | ||
11 | + nodes : [ | ||
12 | + { | ||
13 | + label : 'o_O\nwheee', | ||
14 | + nodes : [ | ||
15 | + { | ||
16 | + label : 'oh', | ||
17 | + nodes : [ 'hello', 'puny\nmeat' ] | ||
18 | + }, | ||
19 | + 'creature' | ||
20 | + ] | ||
21 | + }, | ||
22 | + 'party\ntime!' | ||
23 | + ] | ||
24 | + } | ||
25 | + ] | ||
26 | + }); | ||
27 | + t.equal(s, [ | ||
28 | + 'beep', | ||
29 | + '│ one', | ||
30 | + '│ two', | ||
31 | + '├── ity', | ||
32 | + '└─┬ boop', | ||
33 | + ' ├─┬ o_O', | ||
34 | + ' │ │ wheee', | ||
35 | + ' │ ├─┬ oh', | ||
36 | + ' │ │ ├── hello', | ||
37 | + ' │ │ └── puny', | ||
38 | + ' │ │ meat', | ||
39 | + ' │ └── creature', | ||
40 | + ' └── party', | ||
41 | + ' time!', | ||
42 | + '' | ||
43 | + ].join('\n')); | ||
44 | + t.end(); | ||
45 | +}); |
images/node_modules/archy/test/non_unicode.js
0 → 100644
1 | +var test = require('tape'); | ||
2 | +var archy = require('../'); | ||
3 | + | ||
4 | +test('beep', function (t) { | ||
5 | + var s = archy({ | ||
6 | + label : 'beep', | ||
7 | + nodes : [ | ||
8 | + 'ity', | ||
9 | + { | ||
10 | + label : 'boop', | ||
11 | + nodes : [ | ||
12 | + { | ||
13 | + label : 'o_O', | ||
14 | + nodes : [ | ||
15 | + { | ||
16 | + label : 'oh', | ||
17 | + nodes : [ 'hello', 'puny' ] | ||
18 | + }, | ||
19 | + 'human' | ||
20 | + ] | ||
21 | + }, | ||
22 | + 'party!' | ||
23 | + ] | ||
24 | + } | ||
25 | + ] | ||
26 | + }, '', { unicode : false }); | ||
27 | + t.equal(s, [ | ||
28 | + 'beep', | ||
29 | + '+-- ity', | ||
30 | + '`-- boop', | ||
31 | + ' +-- o_O', | ||
32 | + ' | +-- oh', | ||
33 | + ' | | +-- hello', | ||
34 | + ' | | `-- puny', | ||
35 | + ' | `-- human', | ||
36 | + ' `-- party!', | ||
37 | + '' | ||
38 | + ].join('\n')); | ||
39 | + t.end(); | ||
40 | +}); |
images/node_modules/argparse/HISTORY.md
0 → 100644
1 | +0.1.16 / 2013-12-01 | ||
2 | +------------------- | ||
3 | + | ||
4 | +* Maintenance release. Updated dependencies and docs. | ||
5 | + | ||
6 | + | ||
7 | +0.1.15 / 2013-05-13 | ||
8 | +------------------- | ||
9 | + | ||
10 | +* Fixed #55, @trebor89 | ||
11 | + | ||
12 | + | ||
13 | +0.1.14 / 2013-05-12 | ||
14 | +------------------- | ||
15 | + | ||
16 | +* Fixed #62, @maxtaco | ||
17 | + | ||
18 | + | ||
19 | +0.1.13 / 2013-04-08 | ||
20 | +------------------- | ||
21 | + | ||
22 | +* Added `.npmignore` to reduce package size | ||
23 | + | ||
24 | + | ||
25 | +0.1.12 / 2013-02-10 | ||
26 | +------------------- | ||
27 | + | ||
28 | +* Fixed conflictHandler (#46), @hpaulj | ||
29 | + | ||
30 | + | ||
31 | +0.1.11 / 2013-02-07 | ||
32 | +------------------- | ||
33 | + | ||
34 | +* Multiple bugfixes, @hpaulj | ||
35 | +* Added 70+ tests (ported from python), @hpaulj | ||
36 | +* Added conflictHandler, @applepicke | ||
37 | +* Added fromfilePrefixChar, @hpaulj | ||
38 | + | ||
39 | + | ||
40 | +0.1.10 / 2012-12-30 | ||
41 | +------------------- | ||
42 | + | ||
43 | +* Added [mutual exclusion](http://docs.python.org/dev/library/argparse.html#mutual-exclusion) | ||
44 | + support, thanks to @hpaulj | ||
45 | +* Fixed options check for `storeConst` & `appendConst` actions, thanks to @hpaulj | ||
46 | + | ||
47 | + | ||
48 | +0.1.9 / 2012-12-27 | ||
49 | +------------------ | ||
50 | + | ||
51 | +* Fixed option dest interferens with other options (issue #23), thanks to @hpaulj | ||
52 | +* Fixed default value behavior with `*` positionals, thanks to @hpaulj | ||
53 | +* Improve `getDefault()` behavior, thanks to @hpaulj | ||
54 | +* Imrove negative argument parsing, thanks to @hpaulj | ||
55 | + | ||
56 | + | ||
57 | +0.1.8 / 2012-12-01 | ||
58 | +------------------ | ||
59 | + | ||
60 | +* Fixed parser parents (issue #19), thanks to @hpaulj | ||
61 | +* Fixed negative argument parse (issue #20), thanks to @hpaulj | ||
62 | + | ||
63 | + | ||
64 | +0.1.7 / 2012-10-14 | ||
65 | +------------------ | ||
66 | + | ||
67 | +* Fixed 'choices' argument parse (issue #16) | ||
68 | +* Fixed stderr output (issue #15) | ||
69 | + | ||
70 | + | ||
71 | +0.1.6 / 2012-09-09 | ||
72 | +------------------ | ||
73 | + | ||
74 | +* Fixed check for conflict of options (thanks to @tomxtobin) | ||
75 | + | ||
76 | + | ||
77 | +0.1.5 / 2012-09-03 | ||
78 | +------------------ | ||
79 | + | ||
80 | +* Fix parser #setDefaults method (thanks to @tomxtobin) | ||
81 | + | ||
82 | + | ||
83 | +0.1.4 / 2012-07-30 | ||
84 | +------------------ | ||
85 | + | ||
86 | +* Fixed pseudo-argument support (thanks to @CGamesPlay) | ||
87 | +* Fixed addHelp default (should be true), if not set (thanks to @benblank) | ||
88 | + | ||
89 | + | ||
90 | +0.1.3 / 2012-06-27 | ||
91 | +------------------ | ||
92 | + | ||
93 | +* Fixed formatter api name: Formatter -> HelpFormatter | ||
94 | + | ||
95 | + | ||
96 | +0.1.2 / 2012-05-29 | ||
97 | +------------------ | ||
98 | + | ||
99 | +* Added basic tests | ||
100 | +* Removed excess whitespace in help | ||
101 | +* Fixed error reporting, when parcer with subcommands | ||
102 | + called with empty arguments | ||
103 | + | ||
104 | + | ||
105 | +0.1.1 / 2012-05-23 | ||
106 | +------------------ | ||
107 | + | ||
108 | +* Fixed line wrapping in help formatter | ||
109 | +* Added better error reporting on invalid arguments | ||
110 | + | ||
111 | + | ||
112 | +0.1.0 / 2012-05-16 | ||
113 | +------------------ | ||
114 | + | ||
115 | +* First release. |
images/node_modules/argparse/LICENSE
0 → 100644
1 | +(The MIT License) | ||
2 | + | ||
3 | +Copyright (C) 2012 by Vitaly Puzrin | ||
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 | ||
13 | +all 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 | ||
21 | +THE SOFTWARE. |
images/node_modules/argparse/README.md
0 → 100644
1 | +argparse | ||
2 | +======== | ||
3 | + | ||
4 | +[![Build Status](https://secure.travis-ci.org/nodeca/argparse.png?branch=master)](http://travis-ci.org/nodeca/argparse) | ||
5 | + | ||
6 | +CLI arguments parser for node.js. Javascript port of python's | ||
7 | +[argparse](http://docs.python.org/dev/library/argparse.html) module | ||
8 | +(original version 3.2). That's a full port, except some very rare options, | ||
9 | +recorded in issue tracker. | ||
10 | + | ||
11 | +**NB.** Method names changed to camelCase. See [generated docs](http://nodeca.github.com/argparse/). | ||
12 | + | ||
13 | + | ||
14 | +Example | ||
15 | +======= | ||
16 | + | ||
17 | +test.js file: | ||
18 | + | ||
19 | +```javascript | ||
20 | +#!/usr/bin/env node | ||
21 | +'use strict'; | ||
22 | + | ||
23 | +var ArgumentParser = require('../lib/argparse').ArgumentParser; | ||
24 | +var parser = new ArgumentParser({ | ||
25 | + version: '0.0.1', | ||
26 | + addHelp:true, | ||
27 | + description: 'Argparse example' | ||
28 | +}); | ||
29 | +parser.addArgument( | ||
30 | + [ '-f', '--foo' ], | ||
31 | + { | ||
32 | + help: 'foo bar' | ||
33 | + } | ||
34 | +); | ||
35 | +parser.addArgument( | ||
36 | + [ '-b', '--bar' ], | ||
37 | + { | ||
38 | + help: 'bar foo' | ||
39 | + } | ||
40 | +); | ||
41 | +var args = parser.parseArgs(); | ||
42 | +console.dir(args); | ||
43 | +``` | ||
44 | + | ||
45 | +Display help: | ||
46 | + | ||
47 | +``` | ||
48 | +$ ./test.js -h | ||
49 | +usage: example.js [-h] [-v] [-f FOO] [-b BAR] | ||
50 | + | ||
51 | +Argparse example | ||
52 | + | ||
53 | +Optional arguments: | ||
54 | + -h, --help Show this help message and exit. | ||
55 | + -v, --version Show program's version number and exit. | ||
56 | + -f FOO, --foo FOO foo bar | ||
57 | + -b BAR, --bar BAR bar foo | ||
58 | +``` | ||
59 | + | ||
60 | +Parse arguments: | ||
61 | + | ||
62 | +``` | ||
63 | +$ ./test.js -f=3 --bar=4 | ||
64 | +{ foo: '3', bar: '4' } | ||
65 | +``` | ||
66 | + | ||
67 | +More [examples](https://github.com/nodeca/argparse/tree/master/examples). | ||
68 | + | ||
69 | + | ||
70 | +ArgumentParser objects | ||
71 | +====================== | ||
72 | + | ||
73 | +``` | ||
74 | +new ArgumentParser({paramters hash}); | ||
75 | +``` | ||
76 | + | ||
77 | +Creates a new ArgumentParser object. | ||
78 | + | ||
79 | +**Supported params:** | ||
80 | + | ||
81 | +- ```description``` - Text to display before the argument help. | ||
82 | +- ```epilog``` - Text to display after the argument help. | ||
83 | +- ```addHelp``` - Add a -h/–help option to the parser. (default: true) | ||
84 | +- ```argumentDefault``` - Set the global default value for arguments. (default: null) | ||
85 | +- ```parents``` - A list of ArgumentParser objects whose arguments should also be included. | ||
86 | +- ```prefixChars``` - The set of characters that prefix optional arguments. (default: ‘-‘) | ||
87 | +- ```formatterClass``` - A class for customizing the help output. | ||
88 | +- ```prog``` - The name of the program (default: `path.basename(process.argv[1])`) | ||
89 | +- ```usage``` - The string describing the program usage (default: generated) | ||
90 | +- ```conflictHandler``` - Usually unnecessary, defines strategy for resolving conflicting optionals. | ||
91 | + | ||
92 | +**Not supportied yet** | ||
93 | + | ||
94 | +- ```fromfilePrefixChars``` - The set of characters that prefix files from which additional arguments should be read. | ||
95 | + | ||
96 | + | ||
97 | +Details in [original ArgumentParser guide](http://docs.python.org/dev/library/argparse.html#argumentparser-objects) | ||
98 | + | ||
99 | + | ||
100 | +addArgument() method | ||
101 | +==================== | ||
102 | + | ||
103 | +``` | ||
104 | +ArgumentParser.addArgument([names or flags], {options}) | ||
105 | +``` | ||
106 | + | ||
107 | +Defines how a single command-line argument should be parsed. | ||
108 | + | ||
109 | +- ```name or flags``` - Either a name or a list of option strings, e.g. foo or -f, --foo. | ||
110 | + | ||
111 | +Options: | ||
112 | + | ||
113 | +- ```action``` - The basic type of action to be taken when this argument is encountered at the command line. | ||
114 | +- ```nargs```- The number of command-line arguments that should be consumed. | ||
115 | +- ```constant``` - A constant value required by some action and nargs selections. | ||
116 | +- ```defaultValue``` - The value produced if the argument is absent from the command line. | ||
117 | +- ```type``` - The type to which the command-line argument should be converted. | ||
118 | +- ```choices``` - A container of the allowable values for the argument. | ||
119 | +- ```required``` - Whether or not the command-line option may be omitted (optionals only). | ||
120 | +- ```help``` - A brief description of what the argument does. | ||
121 | +- ```metavar``` - A name for the argument in usage messages. | ||
122 | +- ```dest``` - The name of the attribute to be added to the object returned by parseArgs(). | ||
123 | + | ||
124 | +Details in [original add_argument guide](http://docs.python.org/dev/library/argparse.html#the-add-argument-method) | ||
125 | + | ||
126 | + | ||
127 | +Action (some details) | ||
128 | +================ | ||
129 | + | ||
130 | +ArgumentParser objects associate command-line arguments with actions. | ||
131 | +These actions can do just about anything with the command-line arguments associated | ||
132 | +with them, though most actions simply add an attribute to the object returned by | ||
133 | +parseArgs(). The action keyword argument specifies how the command-line arguments | ||
134 | +should be handled. The supported actions are: | ||
135 | + | ||
136 | +- ```store``` - Just stores the argument’s value. This is the default action. | ||
137 | +- ```storeConst``` - Stores value, specified by the const keyword argument. | ||
138 | + (Note that the const keyword argument defaults to the rather unhelpful None.) | ||
139 | + The 'storeConst' action is most commonly used with optional arguments, that | ||
140 | + specify some sort of flag. | ||
141 | +- ```storeTrue``` and ```storeFalse``` - Stores values True and False | ||
142 | + respectively. These are special cases of 'storeConst'. | ||
143 | +- ```append``` - Stores a list, and appends each argument value to the list. | ||
144 | + This is useful to allow an option to be specified multiple times. | ||
145 | +- ```appendConst``` - Stores a list, and appends value, specified by the | ||
146 | + const keyword argument to the list. (Note, that the const keyword argument defaults | ||
147 | + is None.) The 'appendConst' action is typically used when multiple arguments need | ||
148 | + to store constants to the same list. | ||
149 | +- ```count``` - Counts the number of times a keyword argument occurs. For example, | ||
150 | + used for increasing verbosity levels. | ||
151 | +- ```help``` - Prints a complete help message for all the options in the current | ||
152 | + parser and then exits. By default a help action is automatically added to the parser. | ||
153 | + See ArgumentParser for details of how the output is created. | ||
154 | +- ```version``` - Prints version information and exit. Expects a `version=` | ||
155 | + keyword argument in the addArgument() call. | ||
156 | + | ||
157 | +Details in [original action guide](http://docs.python.org/dev/library/argparse.html#action) | ||
158 | + | ||
159 | + | ||
160 | +Sub-commands | ||
161 | +============ | ||
162 | + | ||
163 | +ArgumentParser.addSubparsers() | ||
164 | + | ||
165 | +Many programs split their functionality into a number of sub-commands, for | ||
166 | +example, the svn program can invoke sub-commands like `svn checkout`, `svn update`, | ||
167 | +and `svn commit`. Splitting up functionality this way can be a particularly good | ||
168 | +idea when a program performs several different functions which require different | ||
169 | +kinds of command-line arguments. `ArgumentParser` supports creation of such | ||
170 | +sub-commands with `addSubparsers()` method. The `addSubparsers()` method is | ||
171 | +normally called with no arguments and returns an special action object. | ||
172 | +This object has a single method `addParser()`, which takes a command name and | ||
173 | +any `ArgumentParser` constructor arguments, and returns an `ArgumentParser` object | ||
174 | +that can be modified as usual. | ||
175 | + | ||
176 | +Example: | ||
177 | + | ||
178 | +sub_commands.js | ||
179 | +```javascript | ||
180 | +#!/usr/bin/env node | ||
181 | +'use strict'; | ||
182 | + | ||
183 | +var ArgumentParser = require('../lib/argparse').ArgumentParser; | ||
184 | +var parser = new ArgumentParser({ | ||
185 | + version: '0.0.1', | ||
186 | + addHelp:true, | ||
187 | + description: 'Argparse examples: sub-commands', | ||
188 | +}); | ||
189 | + | ||
190 | +var subparsers = parser.addSubparsers({ | ||
191 | + title:'subcommands', | ||
192 | + dest:"subcommand_name" | ||
193 | +}); | ||
194 | + | ||
195 | +var bar = subparsers.addParser('c1', {addHelp:true}); | ||
196 | +bar.addArgument( | ||
197 | + [ '-f', '--foo' ], | ||
198 | + { | ||
199 | + action: 'store', | ||
200 | + help: 'foo3 bar3' | ||
201 | + } | ||
202 | +); | ||
203 | +var bar = subparsers.addParser( | ||
204 | + 'c2', | ||
205 | + {aliases:['co'], addHelp:true} | ||
206 | +); | ||
207 | +bar.addArgument( | ||
208 | + [ '-b', '--bar' ], | ||
209 | + { | ||
210 | + action: 'store', | ||
211 | + type: 'int', | ||
212 | + help: 'foo3 bar3' | ||
213 | + } | ||
214 | +); | ||
215 | + | ||
216 | +var args = parser.parseArgs(); | ||
217 | +console.dir(args); | ||
218 | + | ||
219 | +``` | ||
220 | + | ||
221 | +Details in [original sub-commands guide](http://docs.python.org/dev/library/argparse.html#sub-commands) | ||
222 | + | ||
223 | + | ||
224 | +Contributors | ||
225 | +============ | ||
226 | + | ||
227 | +- [Eugene Shkuropat](https://github.com/shkuropat) | ||
228 | +- [Paul Jacobson](https://github.com/hpaulj) | ||
229 | + | ||
230 | +[others](https://github.com/nodeca/argparse/graphs/contributors) | ||
231 | + | ||
232 | +License | ||
233 | +======= | ||
234 | + | ||
235 | +Copyright (c) 2012 [Vitaly Puzrin](https://github.com/puzrin). | ||
236 | +Released under the MIT license. See | ||
237 | +[LICENSE](https://github.com/nodeca/argparse/blob/master/LICENSE) for details. | ||
238 | + | ||
239 | + |