new file: app.js
new file: bin/www new file: models/boardsSchema.js new file: package.json new file: public/images/noImage.jpg new file: "public/images/\352\263\240\354\247\204\353\247\216\353\217\204\354\213\234\353\235\2751\355\216\270.jpg" new file: "public/images/\352\263\240\354\266\224\354\260\270\354\271\230\354\202\274\352\260\201\352\271\200\353\260\245.jpg" new file: "public/images/\353\215\224\355\201\260)\353\266\210\352\263\240\352\270\260\354\243\274\353\250\271\353\260\2451\355\216\270.jpg" new file: "public/images/\353\215\224\355\201\260)\353\266\210\355\203\200\353\212\224\353\252\205\353\236\200\353\247\210\354\232\2241\355\216\270.jpg" new file: "public/images/\353\221\220\355\210\274\355\225\234\353\223\261\354\213\254\353\217\210\352\260\200\354\212\244.jpg" new file: "public/images/\353\247\245\354\225\244\354\271\230\354\246\210\355\225\240\353\235\274\355\224\274\353\207\250\354\203\214\353\223\2341\355\216\270.jpg" new file: "public/images/\353\260\224\353\262\240\355\201\220\355\217\255\353\246\275\353\217\204\354\213\234\353\235\275.jpg" new file: "public/images/\353\271\204\353\271\224\355\226\204\354\260\270\354\271\230\354\243\274\353\250\271\353\260\245.jpg" new file: "public/images/\354\212\244\355\214\270\354\203\214\353\223\234\354\234\204\354\271\230.jpg" new file: "public/images/\354\225\274\354\261\204\354\260\270\354\271\230\354\202\274\352\260\201\352\271\200\353\260\245.jpg" new file: "public/images/\354\226\221\353\205\220\354\210\257\353\266\210\352\260\210\353\271\204\353\247\233.jpg" new file: "public/images/\354\230\254\355\217\254\354\234\2401\355\216\270.jpg" new file: "public/images/\354\260\270\354\271\230\352\271\200\354\271\230\353\263\266\354\235\214.jpg" new file: "public/images/\354\271\230\354\246\210\352\260\220\355\212\200\354\203\214\353\223\234\354\234\204\354\271\230.jpg" new file: "public/images/\355\206\265\354\203\210\354\232\260&\354\227\220\352\267\270\354\203\220\353\237\254\353\223\234\354\203\214\353\223\234.jpg" new file: "public/images/\355\230\234\353\246\254)New11\354\260\254\353\217\204\354\213\234\353\235\275.jpg" new file: "public/images/\355\230\234\353\246\254)\353\202\250\353\217\204\353\226\241\352\260\210\353\271\204\353\217\204\354\213\234\353\235\275.jpg" new file: "public/images/\355\230\234\353\246\254)\354\255\210\352\276\270\353\257\270\353\266\210\352\263\240\352\270\260\353\271\204\353\271\224\353\260\245.jpg" new file: public/stylesheets/style.css new file: routes/contents.js new file: routes/index.js new file: views/.DS_Store new file: views/board.ejs new file: views/boardDetail.ejs new file: views/error.ejs
Showing
30 changed files
with
2215 additions
and
0 deletions
app.js
0 → 100644
1 | +var express = require('express'); | ||
2 | +var path = require('path'); | ||
3 | +var favicon = require('serve-favicon'); | ||
4 | +var logger = require('morgan'); | ||
5 | +var cookieParser = require('cookie-parser'); | ||
6 | +var bodyParser = require('body-parser'); | ||
7 | + | ||
8 | +var mongoose = require('mongoose'); //**** mongodb를 연결하기 위함 ****/ | ||
9 | + | ||
10 | +var routes = require('./routes/index'); // 기본 설정 | ||
11 | +var boards = require('./routes/contents'); //**** board는 contents.js 파일로 연결하여 라우팅 ****/ | ||
12 | + | ||
13 | + | ||
14 | +var app = express(); | ||
15 | + | ||
16 | +//***** connect mongodb *****/ | ||
17 | +mongoose.connect('mongodb://2014104145:pw@ds163301.mlab.com:63301/foodrank/food'); | ||
18 | + | ||
19 | +var db = mongoose.connection; | ||
20 | +db.on('error', console.error.bind(console, 'connection error:')); | ||
21 | +db.once('open', function() { | ||
22 | + console.log("connected"); | ||
23 | +}); | ||
24 | + | ||
25 | +// view engine setup | ||
26 | +app.set('views', path.join(__dirname, 'views')); | ||
27 | +app.set('view engine', 'ejs'); | ||
28 | + | ||
29 | +// uncomment after placing your favicon in /public | ||
30 | +//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); | ||
31 | +app.use(logger('dev')); | ||
32 | +app.use(bodyParser.json()); | ||
33 | +app.use(bodyParser.urlencoded({ extended: false })); | ||
34 | +app.use(cookieParser()); | ||
35 | +app.use(express.static(path.join(__dirname, 'public'))); | ||
36 | + | ||
37 | +app.use('/', routes); | ||
38 | +app.use('/boards', boards); //*** '/boards' 주소로 들어오면 var boards = require('./routes/contents');에서 설정한 주소로 넘어가게 됨 ***/ | ||
39 | + | ||
40 | +// file upload multer | ||
41 | +//app.use(upload.array('UploadFile',10)); | ||
42 | + | ||
43 | +// catch 404 and forward to error handler | ||
44 | +app.use(function(req, res, next) { | ||
45 | + var err = new Error('Not Found'); | ||
46 | + err.status = 404; | ||
47 | + next(err); | ||
48 | +}); | ||
49 | + | ||
50 | + | ||
51 | +// error handlers | ||
52 | + | ||
53 | +// development error handler | ||
54 | +// will print stacktrace | ||
55 | +if (app.get('env') === 'development') { | ||
56 | + app.use(function(err, req, res, next) { | ||
57 | + res.status(err.status || 500); | ||
58 | + res.render('error', { | ||
59 | + message: err.message, | ||
60 | + error: err | ||
61 | + }); | ||
62 | + }); | ||
63 | +} | ||
64 | + | ||
65 | +// production error handler | ||
66 | +// no stacktraces leaked to user | ||
67 | +app.use(function(err, req, res, next) { | ||
68 | + res.status(err.status || 500); | ||
69 | + res.render('error', { | ||
70 | + message: err.message, | ||
71 | + error: {} | ||
72 | + }); | ||
73 | +}); | ||
74 | + | ||
75 | + | ||
76 | +module.exports = app; |
bin/www
0 → 100644
1 | +#!/usr/bin/env node | ||
2 | + | ||
3 | +/** | ||
4 | + * Module dependencies. | ||
5 | + */ | ||
6 | + | ||
7 | +var app = require('../app'); | ||
8 | +var debug = require('debug')('foodrank:server'); | ||
9 | +var http = require('http'); | ||
10 | + | ||
11 | +/** | ||
12 | + * Get port from environment and store in Express. | ||
13 | + */ | ||
14 | + | ||
15 | +var port = normalizePort(process.env.PORT || '3000'); | ||
16 | +app.set('port', port); | ||
17 | + | ||
18 | +/** | ||
19 | + * Create HTTP server. | ||
20 | + */ | ||
21 | + | ||
22 | +var server = http.createServer(app); | ||
23 | + | ||
24 | +/** | ||
25 | + * Listen on provided port, on all network interfaces. | ||
26 | + */ | ||
27 | + | ||
28 | +server.listen(port); | ||
29 | +server.on('error', onError); | ||
30 | +server.on('listening', onListening); | ||
31 | + | ||
32 | +/** | ||
33 | + * Normalize a port into a number, string, or false. | ||
34 | + */ | ||
35 | + | ||
36 | +function normalizePort(val) { | ||
37 | + var port = parseInt(val, 10); | ||
38 | + | ||
39 | + if (isNaN(port)) { | ||
40 | + // named pipe | ||
41 | + return val; | ||
42 | + } | ||
43 | + | ||
44 | + if (port >= 0) { | ||
45 | + // port number | ||
46 | + return port; | ||
47 | + } | ||
48 | + | ||
49 | + return false; | ||
50 | +} | ||
51 | + | ||
52 | +/** | ||
53 | + * Event listener for HTTP server "error" event. | ||
54 | + */ | ||
55 | + | ||
56 | +function onError(error) { | ||
57 | + if (error.syscall !== 'listen') { | ||
58 | + throw error; | ||
59 | + } | ||
60 | + | ||
61 | + var bind = typeof port === 'string' | ||
62 | + ? 'Pipe ' + port | ||
63 | + : 'Port ' + port; | ||
64 | + | ||
65 | + // handle specific listen errors with friendly messages | ||
66 | + switch (error.code) { | ||
67 | + case 'EACCES': | ||
68 | + console.error(bind + ' requires elevated privileges'); | ||
69 | + process.exit(1); | ||
70 | + break; | ||
71 | + case 'EADDRINUSE': | ||
72 | + console.error(bind + ' is already in use'); | ||
73 | + process.exit(1); | ||
74 | + break; | ||
75 | + default: | ||
76 | + throw error; | ||
77 | + } | ||
78 | +} | ||
79 | + | ||
80 | +/** | ||
81 | + * Event listener for HTTP server "listening" event. | ||
82 | + */ | ||
83 | + | ||
84 | +function onListening() { | ||
85 | + var addr = server.address(); | ||
86 | + var bind = typeof addr === 'string' | ||
87 | + ? 'pipe ' + addr | ||
88 | + : 'port ' + addr.port; | ||
89 | + debug('Listening on ' + bind); | ||
90 | +} |
models/boardsSchema.js
0 → 100644
1 | +/*** 게시물 db 스키마 ***/ | ||
2 | + | ||
3 | + | ||
4 | +var mongoose = require('mongoose'); | ||
5 | + | ||
6 | +var boardSchema = mongoose.Schema({ | ||
7 | + name: String, | ||
8 | + company: String, | ||
9 | + category: String, | ||
10 | + price: String, | ||
11 | + average:Number, | ||
12 | + comments: [{ | ||
13 | + grade: Number, | ||
14 | + memo: String | ||
15 | + }] | ||
16 | + | ||
17 | +}); | ||
18 | + | ||
19 | +module.exports = mongoose.model('BoardContents', boardSchema); |
package.json
0 → 100644
1 | +{ | ||
2 | + "name": "foodrank", | ||
3 | + "version": "0.0.0", | ||
4 | + "private": true, | ||
5 | + "scripts": { | ||
6 | + "start": "node ./bin/www" | ||
7 | + }, | ||
8 | + "dependencies": { | ||
9 | + "body-parser": "~1.17.1", | ||
10 | + "cookie-parser": "~1.4.3", | ||
11 | + "debug": "~2.6.3", | ||
12 | + "ejs": "~2.5.6", | ||
13 | + "express": "~4.15.2", | ||
14 | + "mongoose": "^4.10.5", | ||
15 | + "morgan": "~1.8.1", | ||
16 | + "multer": "^1.3.0", | ||
17 | + "serve-favicon": "~2.4.2" | ||
18 | + } | ||
19 | +} |
public/images/noImage.jpg
0 → 100644

3.13 KB
public/images/고진많도시락1편.jpg
0 → 100644

64 KB
public/images/고추참치삼각김밥.jpg
0 → 100644

38 KB
public/images/더큰)불고기주먹밥1편.jpg
0 → 100644
%EB%B6%88%EA%B3%A0%EA%B8%B0%EC%A3%BC%EB%A8%B9%EB%B0%A51%ED%8E%B8.jpg)
36 KB
public/images/더큰)불타는명란마요1편.jpg
0 → 100644
%EB%B6%88%ED%83%80%EB%8A%94%EB%AA%85%EB%9E%80%EB%A7%88%EC%9A%941%ED%8E%B8.jpg)
32 KB
public/images/두툼한등심돈가스.jpg
0 → 100644

35 KB
public/images/맥앤치즈할라피뇨샌드1편.jpg
0 → 100644

40 KB
public/images/바베큐폭립도시락.jpg
0 → 100644

42.9 KB
public/images/비빔햄참치주먹밥.jpg
0 → 100644

22.3 KB
public/images/스팸샌드위치.jpg
0 → 100644

21.6 KB
public/images/야채참치삼각김밥.jpg
0 → 100644

133 KB
public/images/양념숯불갈비맛.jpg
0 → 100644

20.8 KB
public/images/올포유1편.jpg
0 → 100644

76 KB
public/images/참치김치볶음.jpg
0 → 100644

21.3 KB
public/images/치즈감튀샌드위치.jpg
0 → 100644

19.7 KB
public/images/통새우&에그샐러드샌드.jpg
0 → 100644

107 KB
public/images/혜리)New11찬도시락.jpg
0 → 100644
New11%EC%B0%AC%EB%8F%84%EC%8B%9C%EB%9D%BD.jpg)
159 KB
public/images/혜리)남도떡갈비도시락.jpg
0 → 100644
%EB%82%A8%EB%8F%84%EB%96%A1%EA%B0%88%EB%B9%84%EB%8F%84%EC%8B%9C%EB%9D%BD.jpg)
120 KB
public/images/혜리)쭈꾸미불고기비빔밥.jpg
0 → 100644
%EC%AD%88%EA%BE%B8%EB%AF%B8%EB%B6%88%EA%B3%A0%EA%B8%B0%EB%B9%84%EB%B9%94%EB%B0%A5.jpg)
93.5 KB
public/stylesheets/style.css
0 → 100644
1 | +/* | ||
2 | +•••••••••••••••••••••••• | ||
3 | + | ||
4 | +Powered by Type & Grids™ | ||
5 | +www.typeandgrids.com | ||
6 | + | ||
7 | +•••••••••••••••••••••••• | ||
8 | +*/ | ||
9 | + | ||
10 | +/* | ||
11 | +Responsive grid is from Skeleton by Dave Gamache | ||
12 | +www.getskeleton.com | ||
13 | +*/ | ||
14 | + | ||
15 | +/*=================================================================================================== | ||
16 | +Contents | ||
17 | +===================================================================================================== | ||
18 | + 1) Reset & basics | ||
19 | + 2) Basic styles | ||
20 | + 3) Typography | ||
21 | + 4) Links | ||
22 | + 5) Lists | ||
23 | + 6) Images | ||
24 | + 7) Buttons | ||
25 | + 8) Forms | ||
26 | + 9) Misc | ||
27 | + 10) Base 960 grid | ||
28 | + 11) Tablet (Portrait) | ||
29 | + 12) Mobile (Portrait) | ||
30 | + 13) Mobile (Landscape) | ||
31 | + 14) Clearing | ||
32 | + 15) Portfolio slider | ||
33 | + 16) Site styles | ||
34 | + 17) Media queries | ||
35 | + 18) Print styles | ||
36 | +*/ | ||
37 | + | ||
38 | +/*=================================================================================================== | ||
39 | +1) Reset & basics | ||
40 | +===================================================================================================*/ | ||
41 | + html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { | ||
42 | + margin: 0; | ||
43 | + padding: 0; | ||
44 | + border: 0; | ||
45 | + font-size: 100%; | ||
46 | + font: inherit; | ||
47 | + vertical-align: baseline; } | ||
48 | + article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { | ||
49 | + display: block; } | ||
50 | + body { | ||
51 | + line-height: 1; } | ||
52 | + ol, ul { | ||
53 | + list-style: none; } | ||
54 | + blockquote, q { | ||
55 | + quotes: none; } | ||
56 | + blockquote:before, blockquote:after, | ||
57 | + q:before, q:after { | ||
58 | + content: ''; | ||
59 | + content: none; } | ||
60 | + table { | ||
61 | + border-collapse: collapse; | ||
62 | + border-spacing: 0; } | ||
63 | + | ||
64 | +/*=================================================================================================== | ||
65 | +2) Basic styles | ||
66 | +===================================================================================================*/ | ||
67 | + body { | ||
68 | + background: #fff; | ||
69 | + font: 14px/21px Arial, sans-serif; | ||
70 | + color: #444; | ||
71 | + -webkit-font-smoothing: antialiased; /* Fix for webkit rendering */ | ||
72 | + -webkit-text-size-adjust: 100%; | ||
73 | + | ||
74 | + -webkit-transition: background-color 0.8s ease-out; | ||
75 | + -moz-transition: background-color 0.8s ease-out; | ||
76 | + -o-transition: background-color 0.8s ease-out; | ||
77 | + transition: background-color 0.8s ease-out; | ||
78 | + } | ||
79 | + | ||
80 | +/*=================================================================================================== | ||
81 | +3) Typography | ||
82 | +===================================================================================================*/ | ||
83 | + h1, h2, h3, h4, h5, h6 { | ||
84 | + color: #222; | ||
85 | + font-family: Georgia, Arial, sans-serif; | ||
86 | + font-weight: normal; } | ||
87 | + h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; } | ||
88 | + h1 { font-size: 46px; line-height: 50px; margin-bottom: 14px;} | ||
89 | + h2 { font-size: 35px; line-height: 40px; margin-bottom: 10px; } | ||
90 | + h3 { font-size: 28px; line-height: 34px; margin-bottom: 6px; } | ||
91 | + h4 { font-size: 21px; line-height: 30px; margin-bottom: 6px; } | ||
92 | + h5 { font-size: 17px; line-height: 24px; } | ||
93 | + h6 { font-size: 14px; line-height: 21px; } | ||
94 | + .subheader { color: #777; } | ||
95 | + | ||
96 | + p { margin: 0 0 20px 0; } | ||
97 | + p img { margin: 0; } | ||
98 | + p.lead { font-size: 21px; line-height: 27px; color: #777; } | ||
99 | + | ||
100 | + em { font-style: italic; } | ||
101 | + strong { font-weight: bold; color: #333; } | ||
102 | + small { font-size: 80%; } | ||
103 | + | ||
104 | + blockquote, blockquote p { font-family: Georgia, Arial, sans-serif; font-size: 14px; line-height: 1.5; font-style: italic; } | ||
105 | + blockquote { margin: 0 0 20px; padding: 9px 20px 0 19px; border-left: 1px solid #ddd; } | ||
106 | + blockquote cite { font-family: Arial, sans-serif; font-style: normal; font-weight: bold; display: block; padding-top: 8px; } | ||
107 | + blockquote cite:before { content: "\2014"; } | ||
108 | + /*blockquote cite a, blockquote cite a:visited, blockquote cite a:visited { color: #555; }*/ | ||
109 | + | ||
110 | + hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 10px 0 30px; height: 0; } | ||
111 | + | ||
112 | +/*=================================================================================================== | ||
113 | +4) Links | ||
114 | +===================================================================================================*/ | ||
115 | + a, a:visited { color: #333; text-decoration: underline; outline: 0; } | ||
116 | + a:hover, a:focus { color: #777; } | ||
117 | + p a, p a:visited { line-height: inherit; } | ||
118 | + | ||
119 | +/*=================================================================================================== | ||
120 | +5) Lists | ||
121 | +===================================================================================================*/ | ||
122 | + ul, ol { margin-bottom: 20px; } | ||
123 | + ul { list-style: none outside; } | ||
124 | + ol { list-style: decimal; } | ||
125 | + ol, ul.square, ul.circle, ul.disc { margin-left: 30px; } | ||
126 | + ul.square { list-style: square outside; } | ||
127 | + ul.circle { list-style: circle outside; } | ||
128 | + ul.disc { list-style: disc outside; } | ||
129 | + ul ul, ul ol, | ||
130 | + ol ol, ol ul { margin: 4px 0 5px 30px; font-size: 90%; } | ||
131 | + ul ul li, ul ol li, | ||
132 | + ol ol li, ol ul li { margin-bottom: 6px; } | ||
133 | + li { line-height: 18px; margin-bottom: 12px; } | ||
134 | + ul.large li { line-height: 21px; } | ||
135 | + li p { line-height: 21px; } | ||
136 | + | ||
137 | +/*=================================================================================================== | ||
138 | +6) Images | ||
139 | +===================================================================================================*/ | ||
140 | + img.scale-with-grid { | ||
141 | + max-width: 100%; | ||
142 | + height: auto; } | ||
143 | + | ||
144 | +/*=================================================================================================== | ||
145 | +7) Buttons | ||
146 | +===================================================================================================*/ | ||
147 | + .button, | ||
148 | + button, | ||
149 | + input[type="submit"], | ||
150 | + input[type="reset"], | ||
151 | + input[type="button"] { | ||
152 | + background: #eee; /* Old browsers */ | ||
153 | + background: #eee -moz-linear-gradient(top, rgba(255,255,255,.2) 0%, rgba(0,0,0,.2) 100%); /* FF3.6+ */ | ||
154 | + background: #eee -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.2)), color-stop(100%,rgba(0,0,0,.2))); /* Chrome,Safari4+ */ | ||
155 | + background: #eee -webkit-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Chrome10+,Safari5.1+ */ | ||
156 | + background: #eee -o-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Opera11.10+ */ | ||
157 | + background: #eee -ms-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* IE10+ */ | ||
158 | + background: #eee linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* W3C */ | ||
159 | + border: 1px solid #aaa; | ||
160 | + border-top: 1px solid #ccc; | ||
161 | + border-left: 1px solid #ccc; | ||
162 | + padding: 4px 12px; | ||
163 | + -moz-border-radius: 3px; | ||
164 | + -webkit-border-radius: 3px; | ||
165 | + border-radius: 3px; | ||
166 | + color: #444; | ||
167 | + display: inline-block; | ||
168 | + font-size: 11px; | ||
169 | + font-weight: bold; | ||
170 | + text-decoration: none; | ||
171 | + text-shadow: 0 1px rgba(255, 255, 255, .75); | ||
172 | + cursor: pointer; | ||
173 | + /*margin-bottom: 20px;*/ | ||
174 | + line-height: normal; | ||
175 | + padding: 8px 10px; | ||
176 | + font-family: Arial, sans-serif; } | ||
177 | + | ||
178 | + .button:hover, | ||
179 | + button:hover, | ||
180 | + input[type="submit"]:hover, | ||
181 | + input[type="reset"]:hover, | ||
182 | + input[type="button"]:hover { | ||
183 | + color: #222; | ||
184 | + background: #ddd; /* Old browsers */ | ||
185 | + background: #ddd -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* FF3.6+ */ | ||
186 | + background: #ddd -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%,rgba(0,0,0,.3))); /* Chrome,Safari4+ */ | ||
187 | + background: #ddd -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Chrome10+,Safari5.1+ */ | ||
188 | + background: #ddd -o-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Opera11.10+ */ | ||
189 | + background: #ddd -ms-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* IE10+ */ | ||
190 | + background: #ddd linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* W3C */ | ||
191 | + border: 1px solid #888; | ||
192 | + border-top: 1px solid #aaa; | ||
193 | + border-left: 1px solid #aaa; } | ||
194 | + | ||
195 | + .button:active, | ||
196 | + button:active, | ||
197 | + input[type="submit"]:active, | ||
198 | + input[type="reset"]:active, | ||
199 | + input[type="button"]:active { | ||
200 | + border: 1px solid #666; | ||
201 | + background: #ccc; /* Old browsers */ | ||
202 | + background: #ccc -moz-linear-gradient(top, rgba(255,255,255,.35) 0%, rgba(10,10,10,.4) 100%); /* FF3.6+ */ | ||
203 | + background: #ccc -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.35)), color-stop(100%,rgba(10,10,10,.4))); /* Chrome,Safari4+ */ | ||
204 | + background: #ccc -webkit-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Chrome10+,Safari5.1+ */ | ||
205 | + background: #ccc -o-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Opera11.10+ */ | ||
206 | + background: #ccc -ms-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* IE10+ */ | ||
207 | + background: #ccc linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* W3C */ } | ||
208 | + | ||
209 | + .button.full-width, | ||
210 | + button.full-width, | ||
211 | + input[type="submit"].full-width, | ||
212 | + input[type="reset"].full-width, | ||
213 | + input[type="button"].full-width { | ||
214 | + width: 100%; | ||
215 | + padding-left: 0 !important; | ||
216 | + padding-right: 0 !important; | ||
217 | + text-align: center; } | ||
218 | + | ||
219 | + /* Fix for odd Mozilla border & padding issues */ | ||
220 | + button::-moz-focus-inner, | ||
221 | + input::-moz-focus-inner { | ||
222 | + border: 0; | ||
223 | + padding: 0; | ||
224 | + } | ||
225 | + | ||
226 | +/*=================================================================================================== | ||
227 | +8) Forms | ||
228 | +===================================================================================================*/ | ||
229 | + form { | ||
230 | + margin-bottom: 20px; } | ||
231 | + fieldset { | ||
232 | + margin-bottom: 20px; } | ||
233 | + input[type="text"], | ||
234 | + input[type="password"], | ||
235 | + input[type="email"], | ||
236 | + textarea, | ||
237 | + select { | ||
238 | + border: 1px solid #ccc; | ||
239 | + padding: 6px 4px; | ||
240 | + outline: none; | ||
241 | + -moz-border-radius: 2px; | ||
242 | + -webkit-border-radius: 2px; | ||
243 | + border-radius: 2px; | ||
244 | + font: 13px Arial, sans-serif; | ||
245 | + color: #444; | ||
246 | + margin: 0; | ||
247 | + width: 210px; | ||
248 | + max-width: 100%; | ||
249 | + display: block; | ||
250 | + margin-bottom: 20px; | ||
251 | + background: #fff; } | ||
252 | + select { | ||
253 | + padding: 0; } | ||
254 | + input[type="text"]:focus, | ||
255 | + input[type="password"]:focus, | ||
256 | + input[type="email"]:focus, | ||
257 | + textarea:focus { | ||
258 | + border: 1px solid #aaa; | ||
259 | + color: #444; | ||
260 | + -moz-box-shadow: 0 0 3px rgba(0,0,0,.2); | ||
261 | + -webkit-box-shadow: 0 0 3px rgba(0,0,0,.2); | ||
262 | + box-shadow: 0 0 3px rgba(0,0,0,.2); } | ||
263 | + textarea { | ||
264 | + min-height: 60px; } | ||
265 | + label, | ||
266 | + legend { | ||
267 | + display: block; | ||
268 | + font-weight: bold; | ||
269 | + font-size: 13px; } | ||
270 | + select { | ||
271 | + width: 220px; } | ||
272 | + input[type="checkbox"] { | ||
273 | + display: inline; } | ||
274 | + label span, | ||
275 | + legend span { | ||
276 | + font-weight: normal; | ||
277 | + font-size: 13px; | ||
278 | + color: #444; } | ||
279 | + | ||
280 | +/*=================================================================================================== | ||
281 | +9) Misc | ||
282 | +===================================================================================================*/ | ||
283 | + .remove-bottom { margin-bottom: 0 !important; } | ||
284 | + .half-bottom { margin-bottom: 10px !important; } | ||
285 | + .add-bottom { margin-bottom: 20px !important; } | ||
286 | + | ||
287 | +/*=================================================================================================== | ||
288 | +10) Base 960 grid | ||
289 | +===================================================================================================*/ | ||
290 | + .container { position: relative; width: 960px; margin: 0 auto; padding: 0; } | ||
291 | + .container .column, | ||
292 | + .container .columns { float: left; display: inline; margin-left: 10px; margin-right: 10px; } | ||
293 | + .row { margin-bottom: 20px; } | ||
294 | + | ||
295 | + /* Nested Column Classes */ | ||
296 | + .column.alpha, .columns.alpha { margin-left: 0; } | ||
297 | + .column.omega, .columns.omega { margin-right: 0; } | ||
298 | + | ||
299 | + /* Base Grid */ | ||
300 | + .container .one.column, | ||
301 | + .container .one.columns { width: 40px; } | ||
302 | + .container .two.columns { width: 100px; } | ||
303 | + .container .three.columns { width: 160px; } | ||
304 | + .container .four.columns { width: 220px; } | ||
305 | + .container .five.columns { width: 280px; } | ||
306 | + .container .six.columns { width: 340px; } | ||
307 | + .container .seven.columns { width: 400px; } | ||
308 | + .container .eight.columns { width: 460px; } | ||
309 | + .container .nine.columns { width: 520px; } | ||
310 | + .container .ten.columns { width: 580px; } | ||
311 | + .container .eleven.columns { width: 640px; } | ||
312 | + .container .twelve.columns { width: 700px; } | ||
313 | + .container .thirteen.columns { width: 760px; } | ||
314 | + .container .fourteen.columns { width: 820px; } | ||
315 | + .container .fifteen.columns { width: 880px; } | ||
316 | + .container .sixteen.columns { width: 940px; } | ||
317 | + | ||
318 | + .container .one-third.column { width: 300px; } | ||
319 | + .container .two-thirds.column { width: 620px; } | ||
320 | + | ||
321 | + /* Offsets */ | ||
322 | + .container .offset-by-one { padding-left: 60px; } | ||
323 | + .container .offset-by-two { padding-left: 120px; } | ||
324 | + .container .offset-by-three { padding-left: 180px; } | ||
325 | + .container .offset-by-four { padding-left: 240px; } | ||
326 | + .container .offset-by-five { padding-left: 300px; } | ||
327 | + .container .offset-by-six { padding-left: 360px; } | ||
328 | + .container .offset-by-seven { padding-left: 420px; } | ||
329 | + .container .offset-by-eight { padding-left: 480px; } | ||
330 | + .container .offset-by-nine { padding-left: 540px; } | ||
331 | + .container .offset-by-ten { padding-left: 600px; } | ||
332 | + .container .offset-by-eleven { padding-left: 660px; } | ||
333 | + .container .offset-by-twelve { padding-left: 720px; } | ||
334 | + .container .offset-by-thirteen { padding-left: 780px; } | ||
335 | + .container .offset-by-fourteen { padding-left: 840px; } | ||
336 | + .container .offset-by-fifteen { padding-left: 900px; } | ||
337 | + | ||
338 | +/*=================================================================================================== | ||
339 | +11) Tablet (Portrait) | ||
340 | +===================================================================================================*/ | ||
341 | + /* Note: Design for a width of 768px */ | ||
342 | + | ||
343 | + @media only screen and (min-width: 768px) and (max-width: 959px) { | ||
344 | + .container { width: 768px; } | ||
345 | + .container .column, | ||
346 | + .container .columns { margin-left: 10px; margin-right: 10px; } | ||
347 | + .column.alpha, .columns.alpha { margin-left: 0; margin-right: 10px; } | ||
348 | + .column.omega, .columns.omega { margin-right: 0; margin-left: 10px; } | ||
349 | + .alpha.omega { margin-left: 0; margin-right: 0; } | ||
350 | + | ||
351 | + .container .one.column, | ||
352 | + .container .one.columns { width: 28px; } | ||
353 | + .container .two.columns { width: 76px; } | ||
354 | + .container .three.columns { width: 124px; } | ||
355 | + .container .four.columns { width: 172px; } | ||
356 | + .container .five.columns { width: 220px; } | ||
357 | + .container .six.columns { width: 268px; } | ||
358 | + .container .seven.columns { width: 316px; } | ||
359 | + .container .eight.columns { width: 364px; } | ||
360 | + .container .nine.columns { width: 412px; } | ||
361 | + .container .ten.columns { width: 460px; } | ||
362 | + .container .eleven.columns { width: 508px; } | ||
363 | + .container .twelve.columns { width: 556px; } | ||
364 | + .container .thirteen.columns { width: 604px; } | ||
365 | + .container .fourteen.columns { width: 652px; } | ||
366 | + .container .fifteen.columns { width: 700px; } | ||
367 | + .container .sixteen.columns { width: 748px; } | ||
368 | + | ||
369 | + .container .one-third.column { width: 236px; } | ||
370 | + .container .two-thirds.column { width: 492px; } | ||
371 | + | ||
372 | + /* Offsets */ | ||
373 | + .container .offset-by-one { padding-left: 48px; } | ||
374 | + .container .offset-by-two { padding-left: 96px; } | ||
375 | + .container .offset-by-three { padding-left: 144px; } | ||
376 | + .container .offset-by-four { padding-left: 192px; } | ||
377 | + .container .offset-by-five { padding-left: 240px; } | ||
378 | + .container .offset-by-six { padding-left: 288px; } | ||
379 | + .container .offset-by-seven { padding-left: 336px; } | ||
380 | + .container .offset-by-eight { padding-left: 384px; } | ||
381 | + .container .offset-by-nine { padding-left: 432px; } | ||
382 | + .container .offset-by-ten { padding-left: 480px; } | ||
383 | + .container .offset-by-eleven { padding-left: 528px; } | ||
384 | + .container .offset-by-twelve { padding-left: 576px; } | ||
385 | + .container .offset-by-thirteen { padding-left: 624px; } | ||
386 | + .container .offset-by-fourteen { padding-left: 672px; } | ||
387 | + .container .offset-by-fifteen { padding-left: 720px; } | ||
388 | + } | ||
389 | + | ||
390 | +/*=================================================================================================== | ||
391 | +12) Mobile (Portrait) | ||
392 | +===================================================================================================*/ | ||
393 | + /* Note: Design for a width of 320px */ | ||
394 | + | ||
395 | + @media only screen and (max-width: 767px) { | ||
396 | + .container { width: 300px; } | ||
397 | + .container .columns, | ||
398 | + .container .column { margin: 0; } | ||
399 | + | ||
400 | + .container .one.column, | ||
401 | + .container .one.columns, | ||
402 | + .container .two.columns, | ||
403 | + .container .three.columns, | ||
404 | + .container .four.columns, | ||
405 | + .container .five.columns, | ||
406 | + .container .six.columns, | ||
407 | + .container .seven.columns, | ||
408 | + .container .eight.columns, | ||
409 | + .container .nine.columns, | ||
410 | + .container .ten.columns, | ||
411 | + .container .eleven.columns, | ||
412 | + .container .twelve.columns, | ||
413 | + .container .thirteen.columns, | ||
414 | + .container .fourteen.columns, | ||
415 | + .container .fifteen.columns, | ||
416 | + .container .sixteen.columns, | ||
417 | + .container .one-third.column, | ||
418 | + .container .two-thirds.column { width: 300px; } | ||
419 | + | ||
420 | + /* Offsets */ | ||
421 | + .container .offset-by-one, | ||
422 | + .container .offset-by-two, | ||
423 | + .container .offset-by-three, | ||
424 | + .container .offset-by-four, | ||
425 | + .container .offset-by-five, | ||
426 | + .container .offset-by-six, | ||
427 | + .container .offset-by-seven, | ||
428 | + .container .offset-by-eight, | ||
429 | + .container .offset-by-nine, | ||
430 | + .container .offset-by-ten, | ||
431 | + .container .offset-by-eleven, | ||
432 | + .container .offset-by-twelve, | ||
433 | + .container .offset-by-thirteen, | ||
434 | + .container .offset-by-fourteen, | ||
435 | + .container .offset-by-fifteen { padding-left: 0; } | ||
436 | + | ||
437 | + } | ||
438 | + | ||
439 | +/*=================================================================================================== | ||
440 | +13) Mobile (Landscape) | ||
441 | +===================================================================================================*/ | ||
442 | + /* Note: Design for a width of 480px */ | ||
443 | + | ||
444 | + @media only screen and (min-width: 480px) and (max-width: 767px) { | ||
445 | + .container { width: 420px; } | ||
446 | + .container .columns, | ||
447 | + .container .column { margin: 0; } | ||
448 | + | ||
449 | + .container .one.column, | ||
450 | + .container .one.columns, | ||
451 | + .container .two.columns, | ||
452 | + .container .three.columns, | ||
453 | + .container .four.columns, | ||
454 | + .container .five.columns, | ||
455 | + .container .six.columns, | ||
456 | + .container .seven.columns, | ||
457 | + .container .eight.columns, | ||
458 | + .container .nine.columns, | ||
459 | + .container .ten.columns, | ||
460 | + .container .eleven.columns, | ||
461 | + .container .twelve.columns, | ||
462 | + .container .thirteen.columns, | ||
463 | + .container .fourteen.columns, | ||
464 | + .container .fifteen.columns, | ||
465 | + .container .sixteen.columns, | ||
466 | + .container .one-third.column, | ||
467 | + .container .two-thirds.column { width: 420px; } | ||
468 | + } | ||
469 | + | ||
470 | +/*=================================================================================================== | ||
471 | +14) Clearing | ||
472 | +===================================================================================================*/ | ||
473 | + /* Self clearing goodness */ | ||
474 | + .container:after { content: "\0020"; display: block; height: 0; clear: both; visibility: hidden; } | ||
475 | + | ||
476 | + /* Use clearfix class on parent to clear nested columns, or wrap each row of columns in a <div class="row"> */ | ||
477 | + .clearfix:before, | ||
478 | + .clearfix:after, | ||
479 | + .row:before, | ||
480 | + .row:after { | ||
481 | + content: '\0020'; | ||
482 | + display: block; | ||
483 | + overflow: hidden; | ||
484 | + visibility: hidden; | ||
485 | + width: 0; | ||
486 | + height: 0; } | ||
487 | + .row:after, | ||
488 | + .clearfix:after { | ||
489 | + clear: both; } | ||
490 | + .row, | ||
491 | + .clearfix { | ||
492 | + zoom: 1; } | ||
493 | + | ||
494 | + /* You can also use a <br class="clear" /> to clear columns */ | ||
495 | + .clear { | ||
496 | + clear: both; | ||
497 | + display: block; | ||
498 | + overflow: hidden; | ||
499 | + visibility: hidden; | ||
500 | + width: 0; | ||
501 | + height: 0; | ||
502 | + } | ||
503 | + | ||
504 | +/*=================================================================================================== | ||
505 | +15) Portfolio slider | ||
506 | +===================================================================================================*/ | ||
507 | + .portfolioSlider { | ||
508 | + position:relative; | ||
509 | + | ||
510 | + /* Set width and height of slider here, in px, % or em */ | ||
511 | + width: 600px; | ||
512 | + height: 300px; | ||
513 | + | ||
514 | + /* Used to prevent content "jumping" on page load - this property is removed when JavaScript is loaded and slider is instantiated */ | ||
515 | + overflow: hidden; | ||
516 | + } | ||
517 | + | ||
518 | + /* Slides area */ | ||
519 | + .portfolioSlider .portfolioWrapper { | ||
520 | + overflow:hidden; | ||
521 | + position:relative; | ||
522 | + width:100%; | ||
523 | + height:100%; | ||
524 | + } | ||
525 | + | ||
526 | + .portfolioSlider .portfolioSlide, | ||
527 | + .portfolioSlider .portfolioWrapper { | ||
528 | + /* Bakground behind slides */ | ||
529 | + | ||
530 | + background: #000000; | ||
531 | + /* | ||
532 | + background: -moz-linear-gradient(top, #111111 0%, #242424 100%); | ||
533 | + background: -webkit-linear-gradient(top, #111111 0%,#242424 100%); | ||
534 | + background: -o-linear-gradient(top, #111111 0%,#242424 100%); | ||
535 | + background: -ms-linear-gradient(top, #111111 0%,#242424 100%); | ||
536 | + background: linear-gradient(top, #111111 0%,#242424 100%); | ||
537 | + */ | ||
538 | + } | ||
539 | + | ||
540 | + /* Slides holder, grabbing container */ | ||
541 | + .portfolioSlider .portfolioSlidesContainer { | ||
542 | + position: relative; | ||
543 | + left: 0; | ||
544 | + top: 0 !important; | ||
545 | + list-style:none !important; | ||
546 | + margin:0 !important; | ||
547 | + padding:0 !important; | ||
548 | + border: 0 !important; | ||
549 | + } | ||
550 | + | ||
551 | + /* Slide item */ | ||
552 | + .portfolioSlider .portfolioSlide { | ||
553 | + padding: 0 !important; | ||
554 | + margin: 0 !important; | ||
555 | + border: 0 !important; | ||
556 | + list-style: none !important; | ||
557 | + position:relative; | ||
558 | + float:left; | ||
559 | + overflow:hidden; | ||
560 | + } | ||
561 | + | ||
562 | + /* Arrow navigation */ | ||
563 | + .portfolioSlider .arrow { | ||
564 | + /*background:url(../img/controlsSprite.png) no-repeat 0 0;*/ | ||
565 | + background-color: #C00; | ||
566 | + background-repeat: no-repeat; | ||
567 | + background-position: 0 0; | ||
568 | + | ||
569 | + /* Change arrow size here */ | ||
570 | + width: 45px; | ||
571 | + height: 90px; | ||
572 | + top:50%; | ||
573 | + margin-top:-45px; | ||
574 | + cursor: pointer; | ||
575 | + display: block; | ||
576 | + position: absolute; | ||
577 | + z-index:25; | ||
578 | + } | ||
579 | + | ||
580 | + .portfolioSlider .arrow:hover { | ||
581 | + | ||
582 | + } | ||
583 | + .portfolioSlider .arrow.disabled { | ||
584 | + | ||
585 | + } | ||
586 | + | ||
587 | + /* Left arrow */ | ||
588 | + .portfolioSlider .arrow.left { | ||
589 | + background-position: top left; | ||
590 | + left: 0; | ||
591 | + } | ||
592 | + | ||
593 | + /* Right arrow */ | ||
594 | + .portfolioSlider .arrow.right { | ||
595 | + background-position: top right; | ||
596 | + right: 0; | ||
597 | + } | ||
598 | + | ||
599 | + /* Control navigation container (bullets or thumbs) */ | ||
600 | + .portfolioSlider .portfolioControlNavOverflow { | ||
601 | + width:100%; | ||
602 | + overflow:hidden; | ||
603 | + position:absolute; | ||
604 | + margin-top:-20px; | ||
605 | + z-index:25; | ||
606 | + } | ||
607 | + /* This container is inside ".portfolioControlNavContainer" | ||
608 | + and is used for auto horizontal centering */ | ||
609 | + .portfolioSlider .portfolioControlNavCenterer { | ||
610 | + float: left; | ||
611 | + position: relative; | ||
612 | + left: -50%; | ||
613 | + } | ||
614 | + | ||
615 | + /* Control navigation container*/ | ||
616 | + .portfolioSlider .portfolioControlNavContainer { | ||
617 | + float: left; | ||
618 | + position: relative; | ||
619 | + left: 50%; | ||
620 | + } | ||
621 | + | ||
622 | + /* Scrollable thumbnails containers */ | ||
623 | + .portfolioSlider .portfolioControlNavThumbsContainer { | ||
624 | + left:0; | ||
625 | + position:relative; | ||
626 | + } | ||
627 | + | ||
628 | + .portfolioSlider .thumbsAndArrowsContainer { | ||
629 | + overflow:hidden; | ||
630 | + width: 100%; | ||
631 | + position: relative; | ||
632 | + } | ||
633 | + | ||
634 | + .portfolioSlider .portfolioControlNavOverflow.portfolioThumbs { | ||
635 | + width: auto; | ||
636 | + position: relative; | ||
637 | + overflow: hidden; | ||
638 | + margin-top:4px; | ||
639 | + } | ||
640 | + | ||
641 | + .portfolioSlider .portfolioControlNavOverflow a{ | ||
642 | + background:#0C0 none no-repeat scroll 0 0; | ||
643 | + width:20px; | ||
644 | + height:20px; | ||
645 | + float:left; | ||
646 | + cursor:pointer; | ||
647 | + position:relative; | ||
648 | + display:block; | ||
649 | + text-indent: -9999px; | ||
650 | + } | ||
651 | + | ||
652 | + /* Current control navigation item */ | ||
653 | + .portfolioSlider .portfolioControlNavOverflow a.current { | ||
654 | + background-color: #C00; | ||
655 | + } | ||
656 | + | ||
657 | + /* Hover state navigation item */ | ||
658 | + .portfolioSlider .portfolioControlNavOverflow a:hover { | ||
659 | + background-color: #00C; | ||
660 | + } | ||
661 | + | ||
662 | + /* Thumbnails */ | ||
663 | + .portfolioSlider .portfolioControlNavOverflow a.portfolioThumb{ | ||
664 | + /*background: none no-repeat 0 0;*/ | ||
665 | + /*background-color: ;*/ | ||
666 | + width:144px; | ||
667 | + height:60px; | ||
668 | + /* thumbnails spacing, use margin-right only */ | ||
669 | + margin-right:4px; | ||
670 | + } | ||
671 | + | ||
672 | + .portfolioSlider .portfolioControlNavOverflow a.portfolioThumb.current { | ||
673 | + background-position: -3px -3px !important; | ||
674 | + border:3px solid #C00 !important; | ||
675 | + width:138px; | ||
676 | + height:54px; | ||
677 | + } | ||
678 | + | ||
679 | + .portfolioSlider .portfolioControlNavOverflow a.portfolioThumb:hover { | ||
680 | + background-position: -3px -3px; | ||
681 | + border:3px solid #00C; | ||
682 | + width:138px; | ||
683 | + height:54px; | ||
684 | + } | ||
685 | + | ||
686 | + .portfolioSlider .thumbsArrow { | ||
687 | + width: 38px; | ||
688 | + height: 68px; | ||
689 | + cursor: pointer; | ||
690 | + display: block; | ||
691 | + position: relative; | ||
692 | + z-index: 25; | ||
693 | + background: #C99; | ||
694 | + } | ||
695 | + | ||
696 | + .portfolioSlider .thumbsArrow.left { | ||
697 | + float: left; | ||
698 | + } | ||
699 | + | ||
700 | + .portfolioSlider .thumbsArrow.right { | ||
701 | + float: right; | ||
702 | + } | ||
703 | + | ||
704 | + .portfolioSlider .thumbsArrow:hover { | ||
705 | + | ||
706 | + } | ||
707 | + | ||
708 | + .portfolioSlider .thumbsArrow.disabled { | ||
709 | + | ||
710 | + } | ||
711 | + | ||
712 | + /* Captions container */ | ||
713 | + .portfolioSlider .portfolioCaption { | ||
714 | + z-index:20; | ||
715 | + display:block; | ||
716 | + position:absolute; | ||
717 | + left:0; | ||
718 | + top:0; | ||
719 | + /*font: normal normal normal 1em/1.5em Georgia, serif; | ||
720 | + color:#FFF; */ | ||
721 | + } | ||
722 | + | ||
723 | + /* Caption item */ | ||
724 | + .portfolioSlider .portfolioCaptionItem { | ||
725 | + position:absolute; | ||
726 | + left:0; | ||
727 | + top:0; | ||
728 | + margin: 0; | ||
729 | + padding: 0; | ||
730 | + } | ||
731 | + | ||
732 | + /* Loading screen */ | ||
733 | + .portfolioSlider .portfolioLoadingScreen { | ||
734 | + background:#FFF; | ||
735 | + width:100%; | ||
736 | + height:100%; | ||
737 | + position:absolute; | ||
738 | + z-index:99; | ||
739 | + } | ||
740 | + | ||
741 | + /* Loading screen text ("Loading...") */ | ||
742 | + .portfolioSlider .portfolioLoadingScreen p { | ||
743 | + width:100%; | ||
744 | + position:absolute; | ||
745 | + margin:0 auto; | ||
746 | + top: 45%; | ||
747 | + text-align:center; | ||
748 | + } | ||
749 | + | ||
750 | + /* Single slide image preloader */ | ||
751 | + .portfolioSlider .portfolioPreloader { | ||
752 | + position: absolute; | ||
753 | + width: 30px; | ||
754 | + height: 30px; | ||
755 | + left: 50%; | ||
756 | + top: 50%; | ||
757 | + margin-left: -12px; | ||
758 | + margin-top: -12px; | ||
759 | + z-index: 0; | ||
760 | + background-image: url(slider_assets/preloader.gif); | ||
761 | + } | ||
762 | + | ||
763 | + .portfolioSlider .grab-cursor{cursor:move;} | ||
764 | + .portfolioSlider .grab-cursor{cursor:url("slider_assets/grab.png") 8 8,-moz-grab;} | ||
765 | + .portfolioSlider .grab-cursor{*cursor:url(slider_assets/grab.cur);} | ||
766 | + .portfolioSlider .grab-cursor{cursor:move\0/;} /* ie8 hack */ | ||
767 | + | ||
768 | + .portfolioSlider .grabbing-cursor{cursor:move;} | ||
769 | + .portfolioSlider .grabbing-cursor{cursor:url("slider_assets/grabbing.png") 8 8,-moz-grabbing;} | ||
770 | + .portfolioSlider .grabbing-cursor{*cursor:url(slider_assets/grabbing.cur);} | ||
771 | + | ||
772 | + /* Cursor used if mouse dragging is disabled */ | ||
773 | + .portfolioSlider .auto-cursor{cursor:auto;} | ||
774 | + | ||
775 | + .portfolioSlider .portfolioHtmlContent { | ||
776 | + position: absolute; | ||
777 | + top: 0; | ||
778 | + left: 0; | ||
779 | + } | ||
780 | + | ||
781 | + .portfolioSlider .non-draggable { | ||
782 | + cursor: auto; | ||
783 | + } | ||
784 | + | ||
785 | + .portfolioSlider .fade-container .portfolioSlide{ | ||
786 | + position: absolute; | ||
787 | + left: 0; | ||
788 | + top: 0; | ||
789 | + list-style-type: none; | ||
790 | + margin: 0; | ||
791 | + padding: 0; | ||
792 | + z-index: 10; | ||
793 | + } | ||
794 | + | ||
795 | + .portfolioSlider .portfolioImage { | ||
796 | + max-width:none; | ||
797 | + margin:0; | ||
798 | + padding: 0 !important; | ||
799 | + border: 0 !important; | ||
800 | + } | ||
801 | + | ||
802 | + /* Customization */ | ||
803 | + .projectThumbnail { | ||
804 | + cursor: pointer; | ||
805 | + } | ||
806 | + | ||
807 | + .project img.thumbnailImage { | ||
808 | + max-width: 100%; | ||
809 | + height: auto; | ||
810 | + cursor: pointer; | ||
811 | + } | ||
812 | + | ||
813 | + .portfolioSlider { | ||
814 | + width: 100%; | ||
815 | + position: absolute; | ||
816 | + left: 0; | ||
817 | + top: 0; | ||
818 | + overflow: hidden; | ||
819 | + z-index: 10; | ||
820 | + } | ||
821 | + | ||
822 | + .portfolioSliderData { | ||
823 | + display: none; | ||
824 | + overflow: hidden; | ||
825 | + } | ||
826 | + | ||
827 | + .portfolioSlidesContainer { | ||
828 | + display: block; | ||
829 | + } | ||
830 | + | ||
831 | + .first-img-preloader { | ||
832 | + position: absolute; | ||
833 | + left: 0; | ||
834 | + top: 0; | ||
835 | + z-index: 12; | ||
836 | + background: #000; | ||
837 | + /*background: rgba(0,0,0,1.0);*/ | ||
838 | + /*filter:inherit;*/ | ||
839 | + } | ||
840 | + | ||
841 | + .preloader-graphics { | ||
842 | + position: relative; | ||
843 | + width: 30px; | ||
844 | + height: 30px; | ||
845 | + left: 50%; | ||
846 | + top: 50%; | ||
847 | + margin-left: -12px; | ||
848 | + margin-top: -12px; | ||
849 | + z-index: 0; | ||
850 | + background-image: url(slider_assets/preloader.gif); | ||
851 | + } | ||
852 | + | ||
853 | +/*=================================================================================================== | ||
854 | +16) Site styles | ||
855 | +===================================================================================================*/ | ||
856 | +h1 { font-size: 48px; line-height: 1.2; } | ||
857 | +h2 { font-size: 36px; line-height: 1.2; } | ||
858 | +h3 { font-size: 24px; line-height: 1.2; } | ||
859 | +h4 { font-size: 18px; line-height: 1.2; } | ||
860 | +h5 { font-size: 14px; line-height: 1.2; } | ||
861 | +h6 { font-size: 12px; line-height: 1.2; } | ||
862 | + | ||
863 | +.currentPage, button.currentPage:hover { | ||
864 | + color: #bbb; | ||
865 | + cursor: default; | ||
866 | +} | ||
867 | + | ||
868 | +button.currentPage:hover { | ||
869 | + cursor: auto; | ||
870 | +} | ||
871 | + | ||
872 | +#sitePreloader { | ||
873 | + position: absolute; | ||
874 | + top: 0; | ||
875 | + left: 0; | ||
876 | + width: 100%; | ||
877 | + height: 100%; | ||
878 | + background-color: #000; | ||
879 | + z-index: 2; | ||
880 | +} | ||
881 | + | ||
882 | +#preloaderImage { | ||
883 | + width: 30px; | ||
884 | + margin: 100px auto; | ||
885 | +} | ||
886 | + | ||
887 | +header { | ||
888 | + padding-top: 80px; | ||
889 | + border-top: 3px solid #000; | ||
890 | +} | ||
891 | + | ||
892 | +#logo, #logoDetailView { | ||
893 | + float: left; | ||
894 | + cursor: pointer; | ||
895 | +} | ||
896 | + | ||
897 | +#logo img, #logoDetailView img { | ||
898 | + margin-top: 28px; | ||
899 | +} | ||
900 | + | ||
901 | +#logo h1, #logoDetailView h1 { | ||
902 | + font-family: Georgia, Arial, sans-serif; | ||
903 | + font-weight: normal; | ||
904 | + font-style: normal; | ||
905 | + font-size: 36px; | ||
906 | + line-height: 1.5; | ||
907 | + letter-spacing: -0.05em; | ||
908 | + text-rendering: optimizeLegibility; | ||
909 | +} | ||
910 | + | ||
911 | +#logo h2, #logoDetailView h2 { | ||
912 | + font-family: Georgia, Arial, sans-serif; | ||
913 | + font-weight: normal; | ||
914 | + font-style: italic; | ||
915 | + font-size: 16px; | ||
916 | + line-height: 1.2; | ||
917 | + letter-spacing: -0.07em; | ||
918 | + text-rendering: optimizeLegibility; | ||
919 | + margin-top: -23px; | ||
920 | +} | ||
921 | + | ||
922 | +a, button { | ||
923 | + -webkit-transition: color 0.2s ease-out; | ||
924 | + -moz-transition: color 0.2s ease-out; | ||
925 | + -o-transition: color 0.2s ease-out; | ||
926 | + transition: color 0.2s ease-out; | ||
927 | +} | ||
928 | + | ||
929 | +a, a:visited { | ||
930 | + color: #333; | ||
931 | +} | ||
932 | + | ||
933 | +a:hover, a:active, a:focus, #heroNav a:hover, #heroNav a:visited:hover, #heroNav a:active, #heroNav a:focus, #formSubmit:hover, .contentModule a:hover, .contentModule a:visited:hover, .contentModule a:active, .contentModule a:focus { color: #777777; } { | ||
934 | + color: #888; | ||
935 | +} | ||
936 | + | ||
937 | +nav { | ||
938 | + list-style: none; | ||
939 | + float: right; | ||
940 | + padding-top: 45px; | ||
941 | + margin-bottom: -30px; | ||
942 | + padding-bottom: 20px; | ||
943 | +} | ||
944 | + | ||
945 | +nav ul li { | ||
946 | + display: inline; | ||
947 | + padding-left: 26px; | ||
948 | +} | ||
949 | + | ||
950 | +nav ul li:first-child { | ||
951 | + padding-left: 0px; | ||
952 | +} | ||
953 | + | ||
954 | +nav ul li a, nav ul li a:visited, nav ul li button, nav ul li span { | ||
955 | + font-family: Arial, sans-serif; | ||
956 | + font-weight: bold; | ||
957 | + font-style: normal; | ||
958 | + font-size: 12px; | ||
959 | + line-height: 1.5; | ||
960 | + letter-spacing: 0; | ||
961 | + text-rendering: auto; | ||
962 | + text-decoration: none; | ||
963 | +} | ||
964 | + | ||
965 | +nav ul li button, .projectNav button { | ||
966 | + background: none; | ||
967 | + border: none; | ||
968 | + text-shadow: none; | ||
969 | + padding: 0; | ||
970 | +} | ||
971 | + | ||
972 | +nav ul li button { | ||
973 | + margin-bottom: 0px; | ||
974 | +} | ||
975 | + | ||
976 | +nav ul li button:hover, .projectNav button:hover { | ||
977 | + background: none; | ||
978 | + border: none; | ||
979 | +} | ||
980 | + | ||
981 | +nav ul li button:hover, nav ul li button:active, nav ul li button:focus, nav ul li a:hover, nav ul li a:active, nav ul li a:focus { | ||
982 | + color: #888; | ||
983 | + outline: 0; | ||
984 | +} | ||
985 | + | ||
986 | +#overview { | ||
987 | + padding-bottom: 10px; | ||
988 | +} | ||
989 | + | ||
990 | +#overview h3 { | ||
991 | + font-family: Georgia, Arial, sans-serif; | ||
992 | + font-weight: normal; | ||
993 | + font-style: normal; | ||
994 | + font-size: 36px; | ||
995 | + line-height: 1.2; | ||
996 | + letter-spacing: -0.04em; | ||
997 | + text-rendering: auto; | ||
998 | + color: #333; | ||
999 | + margin-top: -7px; | ||
1000 | + margin-bottom: 22px; | ||
1001 | +} | ||
1002 | + | ||
1003 | +.project { | ||
1004 | + margin-bottom: 40px; | ||
1005 | + position: relative; | ||
1006 | + overflow: hidden; | ||
1007 | +} | ||
1008 | + | ||
1009 | +.projectThumbnail { | ||
1010 | + max-width: 100%; | ||
1011 | + height: 100%; | ||
1012 | +} | ||
1013 | + | ||
1014 | +.projectThumbnail img { | ||
1015 | + display: block; | ||
1016 | +} | ||
1017 | + | ||
1018 | +.projectThumbnailHover { | ||
1019 | + background-color: #000; | ||
1020 | + background-color: rgba(0, 0, 0, 0.8); | ||
1021 | + position: absolute; | ||
1022 | + width: 100%; | ||
1023 | + height: 100%; | ||
1024 | + display: none; | ||
1025 | + z-index: 10; | ||
1026 | +} | ||
1027 | + | ||
1028 | +.projectThumbnailHover h4 { | ||
1029 | + font-family: Georgia, Arial, sans-serif; | ||
1030 | + font-weight: normal; | ||
1031 | + font-style: normal; | ||
1032 | + font-size: 24px; | ||
1033 | + line-height: 1.2; | ||
1034 | + letter-spacing: -0.05em; | ||
1035 | + text-rendering: auto; | ||
1036 | + color: #fff; | ||
1037 | + position: absolute; | ||
1038 | + margin-top: 40px; | ||
1039 | + display: none; | ||
1040 | +} | ||
1041 | + | ||
1042 | +.projectThumbnailHover h5 { | ||
1043 | + font-family: Arial, sans-serif; | ||
1044 | + font-weight: bold; | ||
1045 | + font-style: normal; | ||
1046 | + font-size: 12px; | ||
1047 | + line-height: 1.2; | ||
1048 | + letter-spacing: 0; | ||
1049 | + text-rendering: auto; | ||
1050 | + color: #fff; | ||
1051 | + position: absolute; | ||
1052 | + padding-top: 69px; | ||
1053 | + display: none; | ||
1054 | +} | ||
1055 | + | ||
1056 | +.projectInfo { | ||
1057 | + overflow: hidden; | ||
1058 | +} | ||
1059 | + | ||
1060 | +.projectInfo h4 { | ||
1061 | + font-family: Arial, sans-serif; | ||
1062 | + font-weight: bold; | ||
1063 | + font-style: normal; | ||
1064 | + font-size: 14px; | ||
1065 | + line-height: 1.2; | ||
1066 | + letter-spacing: -0.05em; | ||
1067 | + text-rendering: auto; | ||
1068 | + color: #444; | ||
1069 | + padding-top: 12px; | ||
1070 | + padding-bottom: 8px; | ||
1071 | + margin-bottom: 4px; | ||
1072 | + float: left; | ||
1073 | +} | ||
1074 | + | ||
1075 | +.projectNav { | ||
1076 | + font-family: Arial, sans-serif; | ||
1077 | + font-weight: bold; | ||
1078 | + font-style: normal; | ||
1079 | + font-size: 11px; | ||
1080 | + line-height: 1.2; | ||
1081 | + letter-spacing: 0; | ||
1082 | + text-rendering: auto; | ||
1083 | + color: #444; | ||
1084 | + border-top: 1px solid #ddd; | ||
1085 | + border-bottom: 1px solid #ddd; | ||
1086 | + height: 29px; | ||
1087 | + margin-bottom: 9px; | ||
1088 | + padding-top: 4px; | ||
1089 | + margin-top: 38px; | ||
1090 | +} | ||
1091 | + | ||
1092 | +.projectNavCounter { | ||
1093 | + font-family: Arial, sans-serif; | ||
1094 | + font-weight: bold; | ||
1095 | + font-style: normal; | ||
1096 | + font-size: 12px; | ||
1097 | + letter-spacing: 0; | ||
1098 | + text-rendering: auto; | ||
1099 | + color: #444; | ||
1100 | + font-size: 12px; | ||
1101 | + padding-top: 11px; | ||
1102 | + float: right; | ||
1103 | + text-align: right; | ||
1104 | +} | ||
1105 | + | ||
1106 | +.projectNavClose button, .projectNavButtons button, .projectNavEnlarge button { | ||
1107 | + font-family: Arial, sans-serif; | ||
1108 | + font-weight: bold; | ||
1109 | + font-style: normal; | ||
1110 | + font-size: 11px; | ||
1111 | + line-height: 1.2; | ||
1112 | + text-rendering: auto; | ||
1113 | + color: #444; | ||
1114 | + cursor: pointer; | ||
1115 | + text-transform: uppercase; | ||
1116 | + letter-spacing: 0.07em; | ||
1117 | + text-decoration: none; | ||
1118 | +} | ||
1119 | + | ||
1120 | +.projectNav button:hover, .projectNav button:active, .projectNav button:focus { | ||
1121 | + color: #777; | ||
1122 | + outline: 0; | ||
1123 | +} | ||
1124 | + | ||
1125 | +.projectNavInactive, button.projectNavInactive, button.projectNavInactive:hover, button.projectNavInactive:active { | ||
1126 | + color: #ccc; | ||
1127 | + text-decoration: none; | ||
1128 | + cursor: auto; | ||
1129 | +} | ||
1130 | + | ||
1131 | +.projectNavEnlarge { | ||
1132 | + float: left; | ||
1133 | + /*padding-left: 1px;*/ | ||
1134 | + padding-top: 5px; | ||
1135 | + padding-top: 7px\9; /* IE adjustment */ | ||
1136 | + width: auto; | ||
1137 | +} | ||
1138 | + | ||
1139 | +.projectNavClose { | ||
1140 | + float: right; | ||
1141 | + padding-top: 5px; | ||
1142 | + padding-top: 7px\9; /* IE adjustment */ | ||
1143 | +} | ||
1144 | + | ||
1145 | +.projectNavButtons { | ||
1146 | + padding-top: 5px; | ||
1147 | + padding-top: 7px\9; /* IE adjustment */ | ||
1148 | + text-align: center; | ||
1149 | +} | ||
1150 | + | ||
1151 | +/* Tweak positioning slightly in Firefox */ | ||
1152 | +@-moz-document url-prefix() { | ||
1153 | + .projectNavEnlarge, .projectNavClose, .projectNavButtons { | ||
1154 | + padding-top: 7px; | ||
1155 | + } | ||
1156 | +} | ||
1157 | + | ||
1158 | +.projectInfo, .linedList { | ||
1159 | + border-bottom: 3px solid #ddd; | ||
1160 | +} | ||
1161 | + | ||
1162 | +.projectInfo p:nth-of-type(1) { | ||
1163 | + margin-top: 9px; | ||
1164 | +} | ||
1165 | + | ||
1166 | +.projectInfo p:nth-last-child(2) { | ||
1167 | + padding-bottom: 10px; | ||
1168 | + border-bottom: 1px solid #ddd; | ||
1169 | +} | ||
1170 | + | ||
1171 | +#about p, #about blockquote { | ||
1172 | + margin-bottom: 24px; | ||
1173 | +} | ||
1174 | + | ||
1175 | +p strong, .projectInfo strong { | ||
1176 | + color: #444; | ||
1177 | +} | ||
1178 | + | ||
1179 | +p, .projectInfo p, .projectInfo li { | ||
1180 | + font-family: Arial, sans-serif; | ||
1181 | + font-weight: normal; | ||
1182 | + font-style: normal; | ||
1183 | + font-size: 14px; | ||
1184 | + line-height: 1.3; | ||
1185 | + letter-spacing: 0; | ||
1186 | + text-rendering: auto; | ||
1187 | +} | ||
1188 | + | ||
1189 | +.projectInfo ul { | ||
1190 | + margin-top: -8px; | ||
1191 | + margin-bottom: 7px; | ||
1192 | +} | ||
1193 | + | ||
1194 | +.projectInfo p + ul { | ||
1195 | + margin-top: -20px; | ||
1196 | +} | ||
1197 | + | ||
1198 | +.projectInfo li, .linedList li { | ||
1199 | + border-top: 1px solid #ddd; | ||
1200 | + margin-top: 6px; | ||
1201 | + margin-bottom: -1px; | ||
1202 | + padding-top: 6px; | ||
1203 | + padding-bottom: 0px; | ||
1204 | +} | ||
1205 | + | ||
1206 | +.projectInfo li:first-child { | ||
1207 | + border-top: none; | ||
1208 | +} | ||
1209 | + | ||
1210 | +.projectInfo li:last-child { | ||
1211 | + margin-bottom: -2px; | ||
1212 | +} | ||
1213 | + | ||
1214 | +.linedList { | ||
1215 | + padding-bottom: 7px; | ||
1216 | +} | ||
1217 | + | ||
1218 | +#about img, #detailView img { | ||
1219 | + max-width: 100%; | ||
1220 | + height: auto; | ||
1221 | +} | ||
1222 | + | ||
1223 | +#detailView img { | ||
1224 | + padding-bottom: 12px; | ||
1225 | +} | ||
1226 | + | ||
1227 | +#detailViewImages { | ||
1228 | + text-align: center; | ||
1229 | +} | ||
1230 | + | ||
1231 | +#detailViewBack { | ||
1232 | + font-size: 12px; | ||
1233 | + font-weight: bold; | ||
1234 | + margin-top: -18px; | ||
1235 | +} | ||
1236 | + | ||
1237 | +#detailViewBack a { | ||
1238 | + text-decoration: none; | ||
1239 | +} | ||
1240 | + | ||
1241 | +footer { | ||
1242 | + margin-top: 0px; | ||
1243 | + margin-bottom: 40px; | ||
1244 | +} | ||
1245 | + | ||
1246 | +footer p { | ||
1247 | + font-family: Arial, sans-serif; | ||
1248 | + font-weight: normal; | ||
1249 | + font-style: normal; | ||
1250 | + font-size: 12px; | ||
1251 | + line-height: 1.4; | ||
1252 | + letter-spacing: 0; | ||
1253 | + text-rendering: auto; | ||
1254 | + color: #333; | ||
1255 | +} | ||
1256 | + | ||
1257 | +.video { | ||
1258 | + margin-bottom: 30px; | ||
1259 | +} | ||
1260 | + | ||
1261 | +#faq p:first-child, #heroNav a, #heroNav a:visited, .contentModule a, .contentModule a:visited { | ||
1262 | + color: #333333; | ||
1263 | +} | ||
1264 | + | ||
1265 | +#formField { | ||
1266 | + border: 1px solid #555555; | ||
1267 | + margin: 0; | ||
1268 | + width: 200px; | ||
1269 | + height: 20px; | ||
1270 | + display: inline; | ||
1271 | + font-family: Arial, sans-serif; | ||
1272 | + font-weight: normal; | ||
1273 | + font-style: normal; | ||
1274 | + font-size: 14px; | ||
1275 | + line-height: 1.2; | ||
1276 | + letter-spacing: 0; | ||
1277 | + text-decoration: none; | ||
1278 | + text-transform: none; | ||
1279 | + text-rendering: auto; | ||
1280 | +} | ||
1281 | + | ||
1282 | +#formSubmit { | ||
1283 | + display: inline; | ||
1284 | + padding-bottom: 0; | ||
1285 | + margin-bottom: 0; | ||
1286 | + border: none; | ||
1287 | + background: none; | ||
1288 | + padding-left: 5px; | ||
1289 | + font-family: Arial, sans-serif; | ||
1290 | + font-weight: bold; | ||
1291 | + font-style: normal; | ||
1292 | + font-size: 12px; | ||
1293 | + line-height: 1.2; | ||
1294 | + letter-spacing: 0.09em; | ||
1295 | + text-decoration: none; | ||
1296 | + text-transform: uppercase; | ||
1297 | + text-rendering: auto; | ||
1298 | + text-shadow: none; | ||
1299 | + -webkit-transition: color 0.2s ease-out; | ||
1300 | + -moz-transition: color 0.2s ease-out; | ||
1301 | + -o-transition: color 0.2s ease-out; | ||
1302 | + transition: color 0.2s ease-out; | ||
1303 | +} | ||
1304 | + | ||
1305 | +#formField, #content #heroNav ul li, #footerLinks li, #heroNav, .contentModule { | ||
1306 | + border-color: #dddddd; | ||
1307 | +} | ||
1308 | + | ||
1309 | +#formSubmit, #formField { | ||
1310 | + color: #444444; | ||
1311 | +} | ||
1312 | + | ||
1313 | +#formField { | ||
1314 | + background: #fff; | ||
1315 | +} | ||
1316 | + | ||
1317 | +#formField:focus { | ||
1318 | + background: #fff; | ||
1319 | +} | ||
1320 | + | ||
1321 | +#content img { | ||
1322 | + max-width: 100%; | ||
1323 | + height: auto; | ||
1324 | +} | ||
1325 | + | ||
1326 | +#hero { | ||
1327 | + margin-top: -15px; | ||
1328 | + margin-bottom: -1px; | ||
1329 | +} | ||
1330 | + | ||
1331 | +#heroNav { | ||
1332 | + margin-top: 20px; | ||
1333 | + padding-top: 18px; | ||
1334 | + border-top: 1px solid; | ||
1335 | + border-bottom: 1px solid; | ||
1336 | + margin-bottom: 26px; | ||
1337 | +} | ||
1338 | + | ||
1339 | +#content #heroNav ul li { | ||
1340 | + display: inline; | ||
1341 | + padding-left: 12px; | ||
1342 | + margin-left: 0; | ||
1343 | + border-right: 1px solid; | ||
1344 | + padding-right: 15px; | ||
1345 | +} | ||
1346 | + | ||
1347 | +#content #heroNav ul li:last-child { | ||
1348 | + border-right: none; | ||
1349 | + padding-right: 0; | ||
1350 | + margin-right: 0; | ||
1351 | +} | ||
1352 | + | ||
1353 | +#heroNav ul li:first-child { | ||
1354 | + padding-left: 0; | ||
1355 | + margin-left: 0; | ||
1356 | +} | ||
1357 | + | ||
1358 | +#heroNav ul { | ||
1359 | + text-align: center; | ||
1360 | + margin-bottom: 18px; | ||
1361 | +} | ||
1362 | + | ||
1363 | +#heroNav a { | ||
1364 | + font-family: Arial, sans-serif; | ||
1365 | + font-weight: bold; | ||
1366 | + font-style: normal; | ||
1367 | + font-size: 16px; | ||
1368 | + line-height: 1.2; | ||
1369 | + letter-spacing: 0; | ||
1370 | + text-decoration: underline; | ||
1371 | + text-transform: none; | ||
1372 | + text-rendering: auto; | ||
1373 | +} | ||
1374 | + | ||
1375 | +#content ul li { | ||
1376 | + list-style-type: disc; | ||
1377 | + margin-left: 30px; | ||
1378 | + margin-bottom: 10px; | ||
1379 | +} | ||
1380 | + | ||
1381 | +.contentModule ul, .contentModule ol { | ||
1382 | + padding-top: 8px; | ||
1383 | +} | ||
1384 | + | ||
1385 | +#footerLinks li { | ||
1386 | + font-weight: bold; | ||
1387 | + font-size: 12px; | ||
1388 | + display: inline; | ||
1389 | + padding-left: 12px; | ||
1390 | + margin-left: 0; | ||
1391 | + border-right: 1px solid; | ||
1392 | + padding-right: 15px; | ||
1393 | +} | ||
1394 | + | ||
1395 | +#footerLinks li:first-child { | ||
1396 | + padding-left: 0; | ||
1397 | +} | ||
1398 | + | ||
1399 | +#footerLinks li:last-child { | ||
1400 | + border-right: none; | ||
1401 | +} | ||
1402 | + | ||
1403 | +.contentModule { | ||
1404 | + margin-bottom: 22px; | ||
1405 | + padding-bottom: 6px; | ||
1406 | + border-bottom: 1px solid; | ||
1407 | +} | ||
1408 | + | ||
1409 | +.contentModule p { | ||
1410 | + margin-top: 10px; | ||
1411 | + margin-bottom: 15px; | ||
1412 | + line-height: 1.4; | ||
1413 | +} | ||
1414 | + | ||
1415 | +.contentModule li:first-child, .contentModule p:first-child { | ||
1416 | + margin-top: -3px; | ||
1417 | +} | ||
1418 | + | ||
1419 | +.contentModule:last-child { | ||
1420 | + border-bottom: none; | ||
1421 | +} | ||
1422 | + | ||
1423 | +#faq p { | ||
1424 | + margin-top: -5px; | ||
1425 | +} | ||
1426 | + | ||
1427 | +#faq p:first-child { | ||
1428 | + font-weight: bold; | ||
1429 | + margin-top: 0px; | ||
1430 | + line-height: 1.2; | ||
1431 | +} | ||
1432 | + | ||
1433 | +code { | ||
1434 | + font-family: "Courier New", Courier, monospace; | ||
1435 | + font-size: 12px; | ||
1436 | + background: #fff; | ||
1437 | + color: #000; | ||
1438 | + text-shadow: none; | ||
1439 | + padding-top: 5px; | ||
1440 | + padding-bottom: 5px; | ||
1441 | +} | ||
1442 | + | ||
1443 | +.thumbnailMask { | ||
1444 | + /*background-image: url("../images/masks/rounded.png");*/ | ||
1445 | + /* | ||
1446 | + Disable pointer events to allow swipe navigation - needed to use a svg instead of a div since no versions of IE support pointer events on divs | ||
1447 | + */ | ||
1448 | + pointer-events: none; | ||
1449 | + width: 460px; | ||
1450 | + height: 284px; | ||
1451 | + position: absolute; | ||
1452 | + z-index: 24; | ||
1453 | +} | ||
1454 | + | ||
1455 | +/*=================================================================================================== | ||
1456 | +17) Media queries | ||
1457 | +===================================================================================================*/ | ||
1458 | + /* Smaller than standard 960 (devices and browsers) */ | ||
1459 | + @media only screen and (max-width: 959px) { | ||
1460 | + | ||
1461 | + nav ul li a, nav ul li button, nav ul li span, #detailViewBack { | ||
1462 | + font-size: 14px; | ||
1463 | + } | ||
1464 | + | ||
1465 | + nav { | ||
1466 | + padding-top: 45px; | ||
1467 | + } | ||
1468 | + | ||
1469 | + .thumbnailMask { | ||
1470 | + background-size: 364px 224px; | ||
1471 | + } | ||
1472 | + | ||
1473 | + } | ||
1474 | + | ||
1475 | + /* Tablet portrait size to standard 960 (devices and browsers) */ | ||
1476 | + @media only screen and (min-width: 768px) and (max-width: 959px) { | ||
1477 | + | ||
1478 | + .projectThumbnailHover h4 { | ||
1479 | + font-size: 18px; | ||
1480 | + } | ||
1481 | + | ||
1482 | + .projectThumbnailHover h5 { | ||
1483 | + font-size: 11px; | ||
1484 | + padding-top: 63px; | ||
1485 | + } | ||
1486 | + | ||
1487 | + #heroNav a { | ||
1488 | + font-size: 14px; | ||
1489 | + } | ||
1490 | + | ||
1491 | + #footerLinks li { | ||
1492 | + font-size: 13px; | ||
1493 | + } | ||
1494 | + | ||
1495 | + } | ||
1496 | + | ||
1497 | + /* All mobile sizes (devices and browser) */ | ||
1498 | + @media only screen and (max-width: 767px) { | ||
1499 | + | ||
1500 | + #logo h1, #logoDetailView h1 { | ||
1501 | + font-size: 30px; | ||
1502 | + line-height: 1.1; | ||
1503 | + } | ||
1504 | + | ||
1505 | + #logo h2, #logoDetailView h2 { | ||
1506 | + margin-top: -12px; | ||
1507 | + } | ||
1508 | + | ||
1509 | + header { | ||
1510 | + padding-top: 40px; | ||
1511 | + } | ||
1512 | + | ||
1513 | + nav { | ||
1514 | + float: left; | ||
1515 | + clear: both; | ||
1516 | + width: 100%; | ||
1517 | + border-top: 1px solid #ddd; | ||
1518 | + padding-top: 10px; | ||
1519 | + padding-bottom: 0px; | ||
1520 | + margin-bottom: -10px; | ||
1521 | + } | ||
1522 | + | ||
1523 | + #overview { | ||
1524 | + padding-bottom: 0px; | ||
1525 | + } | ||
1526 | + | ||
1527 | + .project { | ||
1528 | + margin-bottom: 30px; | ||
1529 | + } | ||
1530 | + | ||
1531 | + footer p { | ||
1532 | + font-size: 14px; | ||
1533 | + } | ||
1534 | + | ||
1535 | + #content #heroNav ul li { | ||
1536 | + display: block; | ||
1537 | + padding-left: 0; | ||
1538 | + margin-left: 0; | ||
1539 | + border-right: none; | ||
1540 | + line-height: 2.0; | ||
1541 | + } | ||
1542 | + | ||
1543 | + #heroNav ul { | ||
1544 | + text-align: left; | ||
1545 | + } | ||
1546 | + | ||
1547 | + #footerLinks li { | ||
1548 | + display: block; | ||
1549 | + padding-left: 0; | ||
1550 | + margin-left: 0; | ||
1551 | + border-right: none; | ||
1552 | + padding-bottom: 8px; | ||
1553 | + } | ||
1554 | + | ||
1555 | + #footerLinks ul { | ||
1556 | + text-align: left; | ||
1557 | + } | ||
1558 | + | ||
1559 | + /* Add back border to last child of first column */ | ||
1560 | + .eight:nth-child(4n) .contentModule:last-child, .eight:nth-of-type(1) .contentModule:last-child { | ||
1561 | + border-bottom: 1px solid #dddddd; | ||
1562 | + | ||
1563 | + } | ||
1564 | + | ||
1565 | + .thumbnailMask { | ||
1566 | + background-size: 420px 259px; | ||
1567 | + } | ||
1568 | + | ||
1569 | + } | ||
1570 | + | ||
1571 | + /* Mobile landscape size to tablet portrait (devices and browsers) */ | ||
1572 | + @media only screen and (min-width: 480px) and (max-width: 767px) { | ||
1573 | + | ||
1574 | + } | ||
1575 | + | ||
1576 | + /* Mobile portrait size to mobile landscape size (devices and browsers) */ | ||
1577 | + @media only screen and (max-width: 479px) { | ||
1578 | + | ||
1579 | + #logo h1, #logoDetailView h1 { | ||
1580 | + font-size: 30px; | ||
1581 | + } | ||
1582 | + | ||
1583 | + #logo h2, #logoDetailView h2 { | ||
1584 | + font-size: 14px; | ||
1585 | + margin-top: -10px; | ||
1586 | + } | ||
1587 | + | ||
1588 | + #overview h3 { | ||
1589 | + font-size: 24px; | ||
1590 | + } | ||
1591 | + | ||
1592 | + .projectThumbnailHover h4 { | ||
1593 | + font-size: 14px; | ||
1594 | + } | ||
1595 | + | ||
1596 | + .projectThumbnailHover h5 { | ||
1597 | + font-size: 11px; | ||
1598 | + padding-top: 58px; | ||
1599 | + } | ||
1600 | + | ||
1601 | + .thumbnailMask { | ||
1602 | + background-size: 300px 185px;z | ||
1603 | + } | ||
1604 | + | ||
1605 | + } | ||
1606 | + | ||
1607 | +/*=================================================================================================== | ||
1608 | +18) Print | ||
1609 | +===================================================================================================*/ | ||
1610 | +@media print { | ||
1611 | + * { background: transparent !important; color: black !important; box-shadow:none !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; } /* Black prints faster: h5bp.com/s */ | ||
1612 | + a, a:visited { text-decoration: underline; } | ||
1613 | + a[href]:after { content: " (" attr(href) ")"; } | ||
1614 | + abbr[title]:after { content: " (" attr(title) ")"; } | ||
1615 | + .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */ | ||
1616 | + pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } | ||
1617 | + thead { display: table-header-group; } /* h5bp.com/t */ | ||
1618 | + tr, img { page-break-inside: avoid; } | ||
1619 | + img { max-width: 100% !important; } | ||
1620 | + @page { margin: 0.5cm; } | ||
1621 | + p, h2, h3 { orphans: 3; widows: 3; } | ||
1622 | + h2, h3 { page-break-after: avoid; } | ||
1623 | +} | ||
1624 | + | ||
1625 | +.board_list table { | ||
1626 | + width:100%; | ||
1627 | + margin:15px 0; | ||
1628 | + border:0; | ||
1629 | +} | ||
1630 | +.board_list th { | ||
1631 | + font-weight:bold; | ||
1632 | + background-color:#d8f1fe; | ||
1633 | + color:#20a0fe | ||
1634 | +} | ||
1635 | +.board_list,.board_list th,.board_list td { | ||
1636 | + font-size:0.95em; | ||
1637 | + text-align:center; | ||
1638 | + padding:4px; | ||
1639 | + border-collapse:collapse; | ||
1640 | +} | ||
1641 | +.board_list th { | ||
1642 | + border: 1px solid #d8f1fe; | ||
1643 | + border-width:1px | ||
1644 | +} | ||
1645 | +.board_list td { | ||
1646 | + border: 1px solid #d8f1fe; | ||
1647 | + border-width:1px | ||
1648 | +} | ||
1649 | +.board_list tr { | ||
1650 | + border: 1px solid #ffffff; | ||
1651 | +} | ||
1652 | +.board_list tr:nth-child(odd){ | ||
1653 | + background-color:#f7f7f7; | ||
1654 | +} | ||
1655 | +.board_list tr:nth-child(even){ | ||
1656 | + background-color:#ffffff; | ||
1657 | +} |
routes/contents.js
0 → 100644
1 | +var express = require('express'); | ||
2 | +var BoardContents = require('../models/boardsSchema'); //db를 사용하기 위한 변수 | ||
3 | +var fs = require('fs'); | ||
4 | +var router = express.Router(); | ||
5 | + | ||
6 | +router.get('/', function(req,res){ | ||
7 | + // 처음 index로 접속 했을시 나오는 부분 | ||
8 | + // db에서 게시글 리스트 가져와서 출력 | ||
9 | + // pagination 추가 -> 11/17 | ||
10 | + // page는 1-5까지 보여줌 -> db에서 총 갯수 잡아와서 10으로 나눠서 올림해야함 | ||
11 | + // 한페이지에 10개의 게시글: limit: 10, skip: (page-1)*10 이면 될 듯 | ||
12 | + // page number는 param으로 받아오기 가장 처음엔 param 없으니까 그땐 자동 1로 설정 | ||
13 | + | ||
14 | + var page = req.param('page'); | ||
15 | + if(page == null) {page = 1;} | ||
16 | + | ||
17 | + var skipSize = (page-1)*10; | ||
18 | + var limitSize = 10; | ||
19 | + var pageNum = 1; | ||
20 | + | ||
21 | + | ||
22 | + BoardContents.count({},function(err, totalCount){ | ||
23 | + // db에서 날짜 순으로 데이터들을 가져옴 | ||
24 | + if(err) throw err; | ||
25 | + | ||
26 | + pageNum = Math.ceil(totalCount/limitSize); | ||
27 | + BoardContents.find({}).sort({average:-1}).skip(skipSize).limit(limitSize).exec(function(err, pageContents) { | ||
28 | + if(err) throw err; | ||
29 | + res.render('board', {title: "Board", page : page, contents: pageContents, pagination: pageNum, searchWord: ''}); | ||
30 | + }); | ||
31 | + }); | ||
32 | +}); | ||
33 | + | ||
34 | +router.get('/search', function(req, res){ | ||
35 | + // 글 검색하는 부분 | ||
36 | + var search_word = req.param('searchWord'); | ||
37 | + var search_company = req.param('company'); | ||
38 | + var search_category = req.param('category'); | ||
39 | + var searchCondition = {$regex:''}; | ||
40 | + var searchCompany = {$regex:''}; | ||
41 | + var searchCategory = {$regex:''}; | ||
42 | + | ||
43 | + if(search_word!='') | ||
44 | + searchCondition = {$regex:search_word}; | ||
45 | + if(search_company!='all') | ||
46 | + searchCompany = {$regex:search_company}; | ||
47 | + if(search_category!='all') | ||
48 | + searchCategory = {$regex:search_category}; | ||
49 | + | ||
50 | + var page = req.param('page'); | ||
51 | + if(page == null) {page = 1;} | ||
52 | + var skipSize = (page-1)*10; | ||
53 | + var limitSize = 10; | ||
54 | + var pageNum = 1; | ||
55 | + | ||
56 | + | ||
57 | + BoardContents.count({$and:[{name:searchCondition},{company:searchCompany},{category:searchCategory}]},function(err, searchCount){ | ||
58 | + if(err) throw err; | ||
59 | + pageNum = Math.ceil(searchCount/limitSize); | ||
60 | + | ||
61 | + BoardContents.find({$and:[{name:searchCondition},{company:searchCompany},{category:searchCategory}]}).sort({average:-1}).skip(skipSize).limit(limitSize).exec(function(err, searchContents){ | ||
62 | + if(err) throw err; | ||
63 | + | ||
64 | + res.render('board', {title: "Board", page : page,contents: searchContents, pagination: pageNum, searchWord: search_word}); | ||
65 | + }); | ||
66 | + }); | ||
67 | +}); | ||
68 | + | ||
69 | + | ||
70 | +router.post('/', function(req, res){ | ||
71 | + //field name은 form의 input file의 name과 같아야함 | ||
72 | + // 글 작성하고 submit하게 되면 저장이 되는 부분 | ||
73 | + // 글 수정하고 submit하면 수정된 결과가 저장되는 부분 | ||
74 | + var mode = req.param('mode'); | ||
75 | + | ||
76 | + var addNewName = req.body.addContentName; | ||
77 | + var addNewCompany = req.body.addContentCompany; | ||
78 | + var addNewCategory = req.body.addContentCategory; | ||
79 | + var addNewPrice = req.body.addContentPrice; | ||
80 | + | ||
81 | + if(mode == 'add') { | ||
82 | + addBoard(addNewName, addNewCompany, addNewCategory, addNewPrice); | ||
83 | + res.redirect('/boards'); | ||
84 | + } | ||
85 | +}); | ||
86 | + | ||
87 | +router.post('/reply', function(req, res){ | ||
88 | + // 댓글 다는 부분 | ||
89 | + var reply_grade = req.body.replyGrade; | ||
90 | + var reply_comment= req.body.replyComment; | ||
91 | + var reply_id = req.body.replyId; | ||
92 | + | ||
93 | + addComment(reply_id, reply_grade, reply_comment,function(){ | ||
94 | + res.redirect('/boards/view?id='+reply_id); | ||
95 | + }); | ||
96 | + | ||
97 | +}); | ||
98 | + | ||
99 | + | ||
100 | +router.get('/view', function(req, res){ | ||
101 | + // 글 보는 부분. 글 내용을 출력하고 조회수를 늘려줘야함 | ||
102 | + // 댓글 페이지 추가 해줌, 5개씩 출력함 | ||
103 | + | ||
104 | + var contentId = req.param('id'); | ||
105 | + | ||
106 | + BoardContents.findOne({_id:contentId}, function(err, rawContent){ | ||
107 | + if(err) throw err; | ||
108 | + | ||
109 | + rawContent.save(function(err){ | ||
110 | + if(err) throw err; | ||
111 | + | ||
112 | + res.render('boardDetail',{title: "Board", content:rawContent}); | ||
113 | + }); | ||
114 | + }) | ||
115 | +}); | ||
116 | + | ||
117 | + | ||
118 | + | ||
119 | +module.exports = router; | ||
120 | + | ||
121 | +function addComment(id, grade, comment,callback) { | ||
122 | + BoardContents.findOne({_id: id}, function(err, rawContent){ | ||
123 | + if(err) throw err; | ||
124 | + var sum = 0; | ||
125 | + rawContent.comments.unshift({grade:grade, memo: comment}); | ||
126 | + for(var j = 0;j<rawContent.comments.length;j++) | ||
127 | + { | ||
128 | + sum += rawContent.comments[j].grade; | ||
129 | + } | ||
130 | + rawContent.average = sum/rawContent.comments.length; | ||
131 | + rawContent.save(function(err){ | ||
132 | + if(err) throw err; | ||
133 | + else callback(); | ||
134 | + }); | ||
135 | + }); | ||
136 | +} | ||
137 | +function addBoard(name, company, category, price){ | ||
138 | + | ||
139 | + var newBoardContents = new BoardContents; | ||
140 | + newBoardContents.name = name; | ||
141 | + newBoardContents.company = company; | ||
142 | + newBoardContents.category = category; | ||
143 | + newBoardContents.price = price; | ||
144 | + newBoardContents.average = 0; | ||
145 | + | ||
146 | + newBoardContents.save(function (err) { | ||
147 | + if (err) throw err; | ||
148 | + BoardContents.findOne({_id: newBoardContents._id}, {_id: 1}, function (err, newBoardId) { | ||
149 | + if (err) throw err; | ||
150 | + }) | ||
151 | + }); | ||
152 | + } |
routes/index.js
0 → 100644
views/.DS_Store
0 → 100644
No preview for this file type
views/board.ejs
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | +<head> | ||
4 | + <title><%= title %></title> | ||
5 | + <link rel='stylesheet' href='/stylesheets/style.css' /> | ||
6 | + <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> | ||
7 | + | ||
8 | + <script> | ||
9 | + $(function(){ // pagination 현재 페이지 활성화 시킴 | ||
10 | + var page = location.href.split("page=")[1]; // url에 page 넘버로 구분 | ||
11 | + var index = page-1; // 0부터 시작이므로 1 빼줌 | ||
12 | + | ||
13 | + if(page == null) { // 메인화면에서는 page 쿼리가 없으므로 빈값일 때 | ||
14 | + $(".pagination a:eq(0)").attr('class', 'current-page'); | ||
15 | + } | ||
16 | + | ||
17 | + $(".pagination a:eq(" + index + ")").attr('class', 'current-page'); | ||
18 | + }); | ||
19 | + | ||
20 | + function searchContent() { | ||
21 | + if($('#searchWord').val == ''){ | ||
22 | + alert("검색어를 입력해주세요!!!"); | ||
23 | + } else { | ||
24 | + $('#searchAction').submit(); | ||
25 | + } | ||
26 | + } | ||
27 | + function submitContents() { | ||
28 | + var name = $('#addContentName').val(); | ||
29 | + var company = $('#addContentCompany').val(); | ||
30 | + var category = $('#addContentCategory').val(); | ||
31 | + var price = $('#addContentPrice').val(); | ||
32 | + | ||
33 | + // 새 글 등록 시 | ||
34 | + if(name == '' || company == '' || category == '' || price == '') { | ||
35 | + alert("이름, 회사, 카테고리, 가격 모두 있어야합니다."); | ||
36 | + return; | ||
37 | + } else { | ||
38 | + $('#writeAction').submit(); | ||
39 | + } | ||
40 | + } | ||
41 | + </script> | ||
42 | +</head> | ||
43 | +<body> | ||
44 | +<div class="main"> | ||
45 | + <a href="/boards"><h2>게시판</h2></a> | ||
46 | + <table class="board_list"> | ||
47 | + <tr> | ||
48 | + <th>Rank</th> | ||
49 | + <th>Name</th> | ||
50 | + <th>Company</th> | ||
51 | + <th>Category</th> | ||
52 | + <th>Price</th> | ||
53 | + </tr> | ||
54 | + <%if(contents.length>0){%> | ||
55 | + <%var i = 0;%> | ||
56 | + <%contents.forEach(function(item){%> | ||
57 | + <%i++;%> | ||
58 | + <tr> | ||
59 | + <td class="number"><%=(page-1)*10+i%></td> | ||
60 | + <td class="name"><a href="/boards/view?id=<%=item._id%>"><%=item.name%> [<%=item.comments.length%>] </a></td> | ||
61 | + <td class="company"><%=item.company%></td> | ||
62 | + <td class="category"><%=item.category%></td> | ||
63 | + <td class="average"><%=item.average%></td> | ||
64 | + </tr> | ||
65 | + <%})%> | ||
66 | + <%} else {%> | ||
67 | + <tr> | ||
68 | + <td colspan="5">게시물이 없습니다.</td> | ||
69 | + </tr> | ||
70 | + <%}%> | ||
71 | + </table> | ||
72 | + | ||
73 | + <div class="pagination"> | ||
74 | + <% | ||
75 | + if(searchWord != '') { | ||
76 | + for(var i=1; i<=pagination; i++){ | ||
77 | + %> | ||
78 | + <a href="/boards/search?searchWord=<%=searchWord%>&page=<%=i%>" class="next-page"><%=i%></a> | ||
79 | + <% | ||
80 | + } | ||
81 | + } else { | ||
82 | + for(var i=1; i<=pagination; i++){ | ||
83 | + %> | ||
84 | + <a href="/boards?page=<%=i%>" class="next-page"><%=i%></a> | ||
85 | + <%}}%> | ||
86 | + </div> | ||
87 | + | ||
88 | + <div class="btn_group"> | ||
89 | + <div class="search"> | ||
90 | + <form action="/boards/search" method="get" id="searchAction" name="searchAction"> | ||
91 | + <input type="text" class="search_word" id="searchWord" name="searchWord"> | ||
92 | + <input type="radio" name="company" value="CU">CU</input> | ||
93 | + <input type="radio" name="company" value="GS25">GS25</input> | ||
94 | + <input type="radio" name="company" value="SevenEleven">SevenEleven</input> | ||
95 | + <input type="radio" name="company" value="all" style="visibility:hidden" checked="true"></input> | ||
96 | + <br> | ||
97 | + <input type="radio" name="category" value="주먹밥">주먹밥</input> | ||
98 | + <input type="radio" name="category" value="샌드위치">샌드위치</input> | ||
99 | + <input type="radio" name="category" value="도시락">도시락</input> | ||
100 | + <input type="radio" name="category" value="all" style="visibility:hidden" checked="true"></input> | ||
101 | + <a href="#" onclick="searchContent();"><div class="search_btn">검색</div></a> | ||
102 | + </form> | ||
103 | + </div> | ||
104 | + </div> | ||
105 | + <!-- new content write form--> | ||
106 | + <div class="write_form"> | ||
107 | + <form id="writeAction" action="/boards?mode=add" method="post"> | ||
108 | + <input type="text" class="inputName" id="addContentName" name="addContentName" placeholder="name"> | ||
109 | + <input type="text" class="inputCompany" id="addContentCompany" name="addContentCompany" placeholder="company"> | ||
110 | + <input type="text" class="inputCategory" id="addContentCategory" name="addContentCategory" placeholder="category"> | ||
111 | + <input type="text" class="inputPrice" id="addContentPrice" name="addContentPrice" placeholder="price"></textarea> | ||
112 | + | ||
113 | + <div id = "new" class="addBtngroup"> | ||
114 | + <a onclick="submitContents();"><div>SUBMIT</div></a> | ||
115 | + <a onclick="cancelWriteForm('cancel');"><div>CANCEL</div></a> | ||
116 | + </div> | ||
117 | + </form> | ||
118 | + </div> | ||
119 | + <!-- write form end--> | ||
120 | + | ||
121 | +</div> | ||
122 | +</body> | ||
123 | +</html> |
views/boardDetail.ejs
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | +<head> | ||
4 | + <title><%=title%></title> | ||
5 | + <link rel='stylesheet' href='/stylesheets/style.css' /> | ||
6 | +<body> | ||
7 | +<div class="main"> | ||
8 | + <a href="/boards"><h2>게시판</h2></a> | ||
9 | + <div class="content_box"> | ||
10 | + <!-- content box--> | ||
11 | + <div class="content_detail"> | ||
12 | + | ||
13 | + <div class="content-pic"><img src='../images/<%=content.name%>.jpg' width="340" height="340" onError="this.src='../images/noImage.jpg';"></div> | ||
14 | + <div class="content-title"><%=content.name%></div> | ||
15 | + <div class="content-info"> | ||
16 | + <%=content.company%> / <%=content.category%> | ||
17 | + </div> | ||
18 | + <div class="content-text"> | ||
19 | + <%=content.price%> | ||
20 | + </div> | ||
21 | + <div class="addBtngroup" style="margin-left:450px;"> | ||
22 | + <a href="/boards">확인</a> | ||
23 | + </div> | ||
24 | + </div> | ||
25 | + <!-- content box end --> | ||
26 | + | ||
27 | + <!-- 혁신의 끝을 달리는 옆에서 달아주는 댓글 창--> | ||
28 | + <div class="reply"> | ||
29 | + <div class="reply_form"> | ||
30 | + <form id="replyAction" action="/boards/reply" method="post"> | ||
31 | + <div class="reply_grade"> | ||
32 | + <SELECT size=1 class="replyGrade" id="replyGrade" name="replyGrade"> | ||
33 | + <OPTION VALUE=1>1</OPTION> | ||
34 | + <OPTION VALUE=2>2</OPTION> | ||
35 | + <OPTION VALUE=3>3</OPTION> | ||
36 | + <OPTION VALUE=4>4</OPTION> | ||
37 | + <OPTION VALUE=5>5</OPTION> | ||
38 | + </SELECT></div> | ||
39 | + <div class="reply_comment"> | ||
40 | + <textarea class="replyComment" id="replyComment" name="replyComment" rows="3" cols="30"></textarea> | ||
41 | + </div> | ||
42 | + <input type="hidden" name="replyId" id="replyId" value="<%=content._id%>"> | ||
43 | + <button type="submit">댓글 작성</button> | ||
44 | + </form> | ||
45 | + </div> | ||
46 | + <div class="reply_list"> | ||
47 | + <%if(content.comments.length>0){%> | ||
48 | + <%var commentsList = content.comments;%> | ||
49 | + <%for(var i=0; i<commentsList.length; i++){%> | ||
50 | + %> | ||
51 | + <div class="reply_content"> | ||
52 | + <div class="reply_info"><%=commentsList[i].grade%> / <%=commentsList[i].memo%></div> | ||
53 | + </div> | ||
54 | + <%}%> | ||
55 | + <%} else {%> | ||
56 | + <div class="reply_content"> | ||
57 | + <div class="reply_info">댓글이 없습니다</div> | ||
58 | + </div> | ||
59 | + <%}%> | ||
60 | + </div> | ||
61 | + | ||
62 | + </div> | ||
63 | + <!-- end --> | ||
64 | + | ||
65 | +</div> | ||
66 | +</body> | ||
67 | +</html> |
views/error.ejs
0 → 100644
-
Please register or login to post a comment