parade 0.9.2 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/README.md +77 -53
- data/bin/parade +3 -2
- data/lib/parade/commands/html_output.rb +1 -0
- data/lib/parade/commands/static_html.rb +1 -1
- data/lib/parade/helpers/template_generator.rb +13 -12
- data/lib/parade/parsers/dsl.rb +8 -0
- data/lib/parade/renderers/update_image_paths.rb +20 -17
- data/lib/parade/section.rb +13 -2
- data/lib/parade/server.rb +24 -11
- data/lib/parade/slide.rb +2 -3
- data/lib/parade/slide_post_renderers.rb +2 -0
- data/lib/parade/version.rb +1 -1
- data/lib/public/css/960.css +1 -1
- data/lib/public/css/fg.menu.css +37 -11
- data/lib/public/css/{theme → jquery-ui}/images/ui-bg_diagonals-small_100_f0efea_40x40.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-bg_flat_35_f0f0f0_40x100.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-bg_glass_55_fcf0ba_1x400.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-bg_glow-ball_25_2e2e28_600x600.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-bg_highlight-soft_100_f0efea_1x100.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-bg_highlight-soft_25_327E04_1x100.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-bg_highlight-soft_25_5A9D1A_1x100.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-bg_highlight-soft_95_ffedad_1x100.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-bg_inset-soft_22_3b3b35_1x100.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-icons_808080_256x240.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-icons_8DC262_256x240.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-icons_e7e6e4_256x240.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-icons_eeeeee_256x240.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/images/ui-icons_ffffff_256x240.png +0 -0
- data/lib/public/css/{theme → jquery-ui}/ui.accordion.css +0 -0
- data/lib/public/css/{theme → jquery-ui}/ui.all.css +0 -0
- data/lib/public/css/{theme → jquery-ui}/ui.base.css +0 -0
- data/lib/public/css/{theme → jquery-ui}/ui.core.css +0 -0
- data/lib/public/css/{theme → jquery-ui}/ui.datepicker.css +0 -0
- data/lib/public/css/{theme → jquery-ui}/ui.dialog.css +0 -0
- data/lib/public/css/{theme → jquery-ui}/ui.progressbar.css +0 -0
- data/lib/public/css/{theme → jquery-ui}/ui.resizable.css +0 -0
- data/lib/public/css/{theme → jquery-ui}/ui.slider.css +0 -0
- data/lib/public/css/{theme → jquery-ui}/ui.tabs.css +0 -0
- data/lib/public/css/{theme → jquery-ui}/ui.theme.css +0 -0
- data/lib/public/css/mobile.css +179 -0
- data/lib/public/css/print.css +16 -0
- data/lib/public/css/slide_formats.css +188 -0
- data/lib/public/css/themes/archetect.css +19 -217
- data/lib/public/css/themes/default.css +86 -0
- data/lib/public/css/themes/hack.css +51 -277
- data/lib/public/css/themes/merlot.css +20 -375
- data/lib/public/css/themes/slate.css +19 -184
- data/lib/public/js/hammer.js +1330 -0
- data/lib/public/js/parade-mobile.js +4 -0
- data/lib/public/js/parade.js +32 -34
- data/lib/views/footer.erb +5 -0
- data/lib/views/header.erb +12 -10
- data/lib/views/help.erb +18 -0
- data/lib/views/index.erb +6 -33
- data/lib/views/navigation.erb +10 -0
- data/lib/views/pdf.erb +8 -2
- data/lib/views/{onepage.erb → print.erb} +8 -2
- metadata +67 -68
- data/lib/public/css/onepage.css +0 -62
- data/lib/public/css/parade.css +0 -448
data/lib/parade/section.rb
CHANGED
@@ -145,6 +145,17 @@ module Parade
|
|
145
145
|
""
|
146
146
|
end
|
147
147
|
|
148
|
+
attr_writer :footer
|
149
|
+
|
150
|
+
def footer
|
151
|
+
footer_erb = ERB.new File.read(@footer || default_footer)
|
152
|
+
footer_erb.result(binding)
|
153
|
+
end
|
154
|
+
|
155
|
+
def default_footer
|
156
|
+
File.join(File.dirname(__FILE__), "..", "views", "footer.erb")
|
157
|
+
end
|
158
|
+
|
148
159
|
def resources
|
149
160
|
@resources || []
|
150
161
|
end
|
@@ -183,10 +194,10 @@ module Parade
|
|
183
194
|
end
|
184
195
|
|
185
196
|
# @return [String] HTML representation of the section
|
186
|
-
def to_html
|
197
|
+
def to_html(options = {})
|
187
198
|
slides.map do |section_or_slide|
|
188
199
|
post_renderers.inject(section_or_slide.to_html) do |content,renderer|
|
189
|
-
renderer.render(content)
|
200
|
+
renderer.render(content,options)
|
190
201
|
end
|
191
202
|
end.join("\n")
|
192
203
|
end
|
data/lib/parade/server.rb
CHANGED
@@ -94,15 +94,19 @@ module Parade
|
|
94
94
|
#
|
95
95
|
# A shortcut to define a CSS resource file within a view template
|
96
96
|
#
|
97
|
-
def css(
|
98
|
-
|
97
|
+
def css(*filepaths)
|
98
|
+
filepaths.map do |filepath|
|
99
|
+
%{<link rel="stylesheet" href="#{File.join "css", filepath}" type="text/css"/>}
|
100
|
+
end.join("\n")
|
99
101
|
end
|
100
102
|
|
101
103
|
#
|
102
104
|
# A shortcut to define a Javascript resource file within a view template
|
103
105
|
#
|
104
|
-
def js(
|
105
|
-
|
106
|
+
def js(*filepaths)
|
107
|
+
filepaths.map do |filepath|
|
108
|
+
%{<script type="text/javascript" src="#{File.join "js", filepath}"></script>}
|
109
|
+
end.join("\n")
|
106
110
|
end
|
107
111
|
|
108
112
|
def custom_resource(resource_extension)
|
@@ -126,7 +130,8 @@ module Parade
|
|
126
130
|
|
127
131
|
def plugin_css_files
|
128
132
|
self.class.plugin_stylesheet_files.map do |path|
|
129
|
-
|
133
|
+
content = File.read(path)
|
134
|
+
erb :inline_css, locals: { content: content }
|
130
135
|
end.join("\n")
|
131
136
|
end
|
132
137
|
|
@@ -140,7 +145,8 @@ module Parade
|
|
140
145
|
|
141
146
|
def plugin_js_files
|
142
147
|
self.class.plugin_javascript_files.map do |path|
|
143
|
-
|
148
|
+
content = File.read(path)
|
149
|
+
erb :inline_js, locals: { content: content }
|
144
150
|
end.join("\n")
|
145
151
|
end
|
146
152
|
|
@@ -166,8 +172,12 @@ module Parade
|
|
166
172
|
presentation.title
|
167
173
|
end
|
168
174
|
|
169
|
-
def slides
|
170
|
-
presentation.to_html
|
175
|
+
def slides(options = {})
|
176
|
+
presentation.to_html(options)
|
177
|
+
end
|
178
|
+
|
179
|
+
def footer
|
180
|
+
presentation.footer
|
171
181
|
end
|
172
182
|
|
173
183
|
def pause_message
|
@@ -188,16 +198,19 @@ module Parade
|
|
188
198
|
# The request for slides is used by the client-side javascript presentation
|
189
199
|
# and returns all the slides HTML.
|
190
200
|
#
|
201
|
+
# A hash of params may contain:
|
202
|
+
# * height - the current height of the window
|
203
|
+
# * width - the current width of the window
|
191
204
|
get "/slides" do
|
192
|
-
slides
|
205
|
+
slides(params)
|
193
206
|
end
|
194
207
|
|
195
208
|
get "/" do
|
196
209
|
erb :index
|
197
210
|
end
|
198
211
|
|
199
|
-
get "/
|
200
|
-
erb :
|
212
|
+
get "/print" do
|
213
|
+
erb :print
|
201
214
|
end
|
202
215
|
|
203
216
|
end
|
data/lib/parade/slide.rb
CHANGED
@@ -54,10 +54,9 @@ module Parade
|
|
54
54
|
end
|
55
55
|
|
56
56
|
#
|
57
|
-
# @return [Boolean] true if the slide has no content and
|
58
|
-
# has content.
|
57
|
+
# @return [Boolean] true if the slide has no content and not intentionly marked blank.
|
59
58
|
def empty?
|
60
|
-
@content.to_s.strip == ""
|
59
|
+
@content.to_s.strip == "" && !content_classes.include?('blank')
|
61
60
|
end
|
62
61
|
|
63
62
|
#
|
@@ -20,5 +20,7 @@ module Parade
|
|
20
20
|
SlidePostRenderers.register Renderers::CommandLineRenderer
|
21
21
|
SlidePostRenderers.register Renderers::ColumnsRenderer.new(css_class: 'columns',
|
22
22
|
html_element: "h2", segments: 12)
|
23
|
+
SlidePostRenderers.register Renderers::ColumnsRenderer.new(css_class: 'comparison',
|
24
|
+
html_element: "h2", segments: 12)
|
23
25
|
|
24
26
|
end
|
data/lib/parade/version.rb
CHANGED
data/lib/public/css/960.css
CHANGED
@@ -16,7 +16,6 @@
|
|
16
16
|
body {
|
17
17
|
min-width: 960px;
|
18
18
|
}
|
19
|
-
|
20
19
|
/* `Container
|
21
20
|
----------------------------------------------------------------------------------------------------*/
|
22
21
|
|
@@ -27,6 +26,7 @@ body {
|
|
27
26
|
width: 960px;
|
28
27
|
}
|
29
28
|
|
29
|
+
|
30
30
|
/* `Grid >> Global
|
31
31
|
----------------------------------------------------------------------------------------------------*/
|
32
32
|
|
data/lib/public/css/fg.menu.css
CHANGED
@@ -3,10 +3,36 @@ Author: Maggie Wachs, maggie@filamentgroup.com
|
|
3
3
|
Date: September 2008
|
4
4
|
*/
|
5
5
|
|
6
|
+
/* REQUIRED STYLES - the menus will only render correctly with these rules */
|
6
7
|
|
7
|
-
|
8
|
+
.fg-button {
|
9
|
+
clear:left;
|
10
|
+
margin:0 4px 40px 20px;
|
11
|
+
padding: .4em 1em;
|
12
|
+
text-decoration:none !important;
|
13
|
+
cursor:pointer;
|
14
|
+
position: relative;
|
15
|
+
text-align: center;
|
16
|
+
zoom: 1;
|
17
|
+
}
|
8
18
|
|
9
|
-
.fg-
|
19
|
+
.fg-button .ui-icon {
|
20
|
+
position: absolute;
|
21
|
+
top: 50%;
|
22
|
+
margin-top: -8px;
|
23
|
+
left: 50%;
|
24
|
+
margin-left: -8px;
|
25
|
+
}
|
26
|
+
|
27
|
+
a.fg-button { float:left; }
|
28
|
+
|
29
|
+
.fg-button-icon-right { padding-right: 2.1em; }
|
30
|
+
|
31
|
+
.fg-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; }
|
32
|
+
|
33
|
+
.fg-button.ui-state-loading .ui-icon { background: url(spinner_bar.gif) no-repeat 0 0; }
|
34
|
+
|
35
|
+
.fg-menu-container { z-index: 2147483647; position: absolute; top:0; left:-999px; padding: .4em; overflow: hidden; }
|
10
36
|
.fg-menu-container.fg-menu-flyout { overflow: visible; }
|
11
37
|
|
12
38
|
.fg-menu, .fg-menu ul { list-style-type:none; padding: 0; margin:0; }
|
@@ -17,13 +43,13 @@ Date: September 2008
|
|
17
43
|
.fg-menu ul { position:absolute; top:0; }
|
18
44
|
.fg-menu ul ul { top:-1px; }
|
19
45
|
|
20
|
-
.fg-menu-container.fg-menu-ipod .fg-menu-content,
|
46
|
+
.fg-menu-container.fg-menu-ipod .fg-menu-content,
|
21
47
|
.fg-menu-container.fg-menu-ipod .fg-menu-content ul { background: none !important; }
|
22
48
|
|
23
49
|
.fg-menu.fg-menu-scroll,
|
24
50
|
.fg-menu ul.fg-menu-scroll { overflow: scroll; overflow-x: hidden; }
|
25
51
|
|
26
|
-
.fg-menu li { clear:both; float:left; width:100%; margin: 0; padding:0; border: 0; }
|
52
|
+
.fg-menu li { clear:both; float:left; width:100%; margin: 0; padding:0; border: 0; }
|
27
53
|
.fg-menu li li { font-size:1em; } /* inner li font size must be reset so that they don't blow up */
|
28
54
|
|
29
55
|
.fg-menu-flyout ul ul { padding: .4em; }
|
@@ -41,7 +67,7 @@ Date: September 2008
|
|
41
67
|
.fg-menu-breadcrumb li.fg-menu-current-crumb { clear: left; float: none; opacity: 1; }
|
42
68
|
.fg-menu-breadcrumb li.fg-menu-current-crumb { padding-top: .2em; }
|
43
69
|
|
44
|
-
.fg-menu-breadcrumb a,
|
70
|
+
.fg-menu-breadcrumb a,
|
45
71
|
.fg-menu-breadcrumb span { float: left; }
|
46
72
|
|
47
73
|
.fg-menu-footer a:link,
|
@@ -55,10 +81,10 @@ Date: September 2008
|
|
55
81
|
.fg-menu-breadcrumb .fg-menu-prev-list a:visited,
|
56
82
|
.fg-menu-breadcrumb .fg-menu-prev-list a:hover,
|
57
83
|
.fg-menu-breadcrumb .fg-menu-prev-list a:active { background-image: none; text-decoration:none; }
|
58
|
-
|
84
|
+
|
59
85
|
.fg-menu-breadcrumb .fg-menu-prev-list a { float: left; padding-right: .4em; }
|
60
86
|
.fg-menu-breadcrumb .fg-menu-prev-list a .ui-icon { float: left; }
|
61
|
-
|
87
|
+
|
62
88
|
.fg-menu-breadcrumb .fg-menu-current-crumb a:link,
|
63
89
|
.fg-menu-breadcrumb .fg-menu-current-crumb a:visited,
|
64
90
|
.fg-menu-breadcrumb .fg-menu-current-crumb a:hover,
|
@@ -66,7 +92,7 @@ Date: September 2008
|
|
66
92
|
|
67
93
|
|
68
94
|
|
69
|
-
/* REQUIRED LINK STYLES: links are "display:block" by default; if the menu options are split into
|
95
|
+
/* REQUIRED LINK STYLES: links are "display:block" by default; if the menu options are split into
|
70
96
|
selectable node links and 'next' links, the script floats the node links left and floats the 'next' links to the right */
|
71
97
|
|
72
98
|
.fg-menu a:link,
|
@@ -92,12 +118,12 @@ Date: September 2008
|
|
92
118
|
.fg-menu a span { display:block; cursor:pointer; }
|
93
119
|
|
94
120
|
|
95
|
-
/* SUGGESTED STYLES - for use with jQuery UI Themeroller CSS */
|
96
|
-
|
121
|
+
/* SUGGESTED STYLES - for use with jQuery UI Themeroller CSS */
|
122
|
+
|
97
123
|
.fg-menu-indicator span { float:left; }
|
98
124
|
.fg-menu-indicator span.ui-icon { float:right; }
|
99
125
|
|
100
|
-
.fg-menu-content.ui-widget-content,
|
126
|
+
.fg-menu-content.ui-widget-content,
|
101
127
|
.fg-menu-content ul.ui-widget-content { border:0; }
|
102
128
|
|
103
129
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,179 @@
|
|
1
|
+
|
2
|
+
/* iPad Landscape */
|
3
|
+
@media all and (device-width: 768px) and (device-height: 1024px) and (orientation:landscape) {
|
4
|
+
body { width: 1024px; height: 675px; }
|
5
|
+
#preso, .slide { width: 1024px; height: 675px; }
|
6
|
+
#footer { width: 1005px; }
|
7
|
+
|
8
|
+
pre.highlight pre, pre.highlight, pre {
|
9
|
+
font-size: 20px;
|
10
|
+
line-height: 20px;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
/* iPad Portrait */
|
15
|
+
@media all and (device-width: 768px) and (device-height: 1024px) and (orientation:portrait) {
|
16
|
+
body { min-width: 768px; }
|
17
|
+
#preso, .slide { height: 720px; width: 768px; }
|
18
|
+
#footer { width: 755px; }
|
19
|
+
h1 { font-size: 3em; }
|
20
|
+
h2 { font-size: 2em; }
|
21
|
+
h3 { font-size: 1em; }
|
22
|
+
|
23
|
+
.content > p { font-size: 1.4em; }
|
24
|
+
.content ol { font-size: 1.5em; }
|
25
|
+
.content > ul { font-size: 2em; }
|
26
|
+
.bullets > ul { font-size: 2em; }
|
27
|
+
.smbullets > ul { font-size: 1.5em; }
|
28
|
+
|
29
|
+
.content.columns .grid_12 p, .content.comparison .grid_12 p {
|
30
|
+
font-size: 125%;
|
31
|
+
}
|
32
|
+
|
33
|
+
.content.columns .grid_6 p, .content.comparison .grid_6 p {
|
34
|
+
font-size: 100%;
|
35
|
+
}
|
36
|
+
|
37
|
+
.content.columns .grid_4 p, .content.comparison .grid_4 p {
|
38
|
+
font-size: 75%;
|
39
|
+
}
|
40
|
+
|
41
|
+
pre.highlight pre, pre.highlight, pre {
|
42
|
+
font-size: 16px;
|
43
|
+
line-height: 16px;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
/* iPhone Portrait and Landscape */
|
48
|
+
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) {
|
49
|
+
h1 { font-size: 1em; }
|
50
|
+
h2 { font-size: 0.75em; }
|
51
|
+
h3 { font-size: 0.5em; }
|
52
|
+
|
53
|
+
.content > p { font-size: 0.7em; }
|
54
|
+
.content ol { font-size: 0.8em; }
|
55
|
+
.content > ul { font-size: 1em; }
|
56
|
+
.bullets > ul { font-size: 1em; }
|
57
|
+
.smbullets > ul { font-size: 0.8em; }
|
58
|
+
|
59
|
+
.title { padding-top: 5%; }
|
60
|
+
.section-header { padding-top: 12%; }
|
61
|
+
.content > blockquote { font-size: 100%; }
|
62
|
+
|
63
|
+
.content.columns .grid_12 p, .content.comparison .grid_12 p {
|
64
|
+
font-size: 100%;
|
65
|
+
}
|
66
|
+
|
67
|
+
.content.columns .grid_6 p, .content.comparison .grid_6 p {
|
68
|
+
font-size: 75%;
|
69
|
+
}
|
70
|
+
|
71
|
+
.content.columns .grid_4 p, .content.comparison .grid_4 p {
|
72
|
+
font-size: 50%;
|
73
|
+
}
|
74
|
+
|
75
|
+
.bullets > ul > li { padding: 5px; }
|
76
|
+
.smbullets > ul > li { padding: 5px; }
|
77
|
+
|
78
|
+
pre.highlight pre, pre.highlight, pre {
|
79
|
+
font-size: 12px;
|
80
|
+
line-height: 12px;
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
/* iPhone Portrait */
|
85
|
+
@media screen and (max-width: 320px) and (orientation:portrait) {
|
86
|
+
body { min-width: 320px; }
|
87
|
+
#preso, .slide { height: 300px; width: 320px; }
|
88
|
+
#preso {
|
89
|
+
margin: 0;
|
90
|
+
padding: 0;
|
91
|
+
width: 320px;
|
92
|
+
max-height: 356px;
|
93
|
+
margin-left:auto;
|
94
|
+
margin-right:auto;
|
95
|
+
}
|
96
|
+
|
97
|
+
#footer {
|
98
|
+
background: #eee;
|
99
|
+
margin: 0;
|
100
|
+
padding: 2px;
|
101
|
+
width: 300px;
|
102
|
+
height: 20px;
|
103
|
+
margin-left:auto;
|
104
|
+
margin-right:auto;
|
105
|
+
}
|
106
|
+
|
107
|
+
.slide .center {
|
108
|
+
height: 300px;
|
109
|
+
width: 320px;
|
110
|
+
display: table-cell;
|
111
|
+
text-align: center;
|
112
|
+
vertical-align: middle;
|
113
|
+
}
|
114
|
+
|
115
|
+
}
|
116
|
+
|
117
|
+
/* iPhone Landscape */
|
118
|
+
@media screen and (max-width: 480px) and (orientation:landscape) {
|
119
|
+
body { min-width: 480px; min-height: 300px; height: 320px; }
|
120
|
+
#preso, .slide { height: 300px; width: 480px; }
|
121
|
+
#preso {
|
122
|
+
margin: 0;
|
123
|
+
padding: 0;
|
124
|
+
height: 320px;
|
125
|
+
width: 480px;
|
126
|
+
margin-left:auto;
|
127
|
+
margin-right:auto;
|
128
|
+
}
|
129
|
+
#footer {
|
130
|
+
background: #eee;
|
131
|
+
margin: 0;
|
132
|
+
padding: 2px;
|
133
|
+
width: 470px;
|
134
|
+
height: 20px;
|
135
|
+
margin-left:auto;
|
136
|
+
margin-right:auto;
|
137
|
+
}
|
138
|
+
|
139
|
+
.slide .center {
|
140
|
+
height: 320px;
|
141
|
+
width: 480px;
|
142
|
+
display: table-cell;
|
143
|
+
text-align: center;
|
144
|
+
vertical-align: middle;
|
145
|
+
}
|
146
|
+
}
|
147
|
+
|
148
|
+
|
149
|
+
/* 960 Layout Overrides for Mobile Devices */
|
150
|
+
|
151
|
+
/* Overrides for iPad and devices */
|
152
|
+
|
153
|
+
@media all and (device-width: 768px) and (device-height: 1024px) and (orientation:portrait) {
|
154
|
+
.container_12 { width: 768px;}
|
155
|
+
.container_12 .grid_12 { width: 752px; }
|
156
|
+
.container_12 .grid_6 { width: 360px; }
|
157
|
+
.container_12 .grid_4 { width: 236px; }
|
158
|
+
.container_12 .grid_3 { width: 172px; }
|
159
|
+
}
|
160
|
+
|
161
|
+
/* Overrides for iPhone and devices */
|
162
|
+
|
163
|
+
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) and (orientation:landscape) {
|
164
|
+
.container_12 { width: 480px; }
|
165
|
+
.container_12 .grid_12 { width: 480px; }
|
166
|
+
.container_12 .grid_6 { width: 220px; }
|
167
|
+
.container_12 .grid_4 { width: 140px; }
|
168
|
+
.container_12 .grid_3 { width: 100px; }
|
169
|
+
|
170
|
+
}
|
171
|
+
|
172
|
+
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) and (orientation:portrait) {
|
173
|
+
.container_12 { width: 320px; }
|
174
|
+
.container_12 .grid_12 { width: 320px; }
|
175
|
+
.container_12 .grid_6 { width: 140px; }
|
176
|
+
.container_12 .grid_4 { width: 86px; }
|
177
|
+
.container_12 .grid_3 { width: 60px; }
|
178
|
+
|
179
|
+
}
|