forked from flukeout/css-diner
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathlevels_it.js
377 lines (365 loc) · 17.8 KB
/
levels_it.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
// Hash the array and compare the arrays!
// Key
// a = small apple .small
// A = apple
// o = small orange, .small
// O = orange
// p = small pickle, .small
// P = pickle
// () = plate open / close
// {} = fancy plate open / close
// [] = bento open close tags
strings['it'] = {
'table' : 'tavolo',
'apple' : 'mela',
'orange' : 'arancia',
'pickle' : 'sottaceto',
'plate' : 'piatto',
'bento' : 'bento',
'fancy' : 'fantasioso',
'small' : 'piccola',
/* ui */
"Level {0} of {1}" : 'Livello {0} di {1}',
'str1' : "Nessun problema, ci sei!",
'str2' : "Stai per imparare si selettori CSS! \n I selettori sono la maniera con cui scegli gli elementi acui applicare lo stile.",
'str3' : "Allegato 1 - Una regola CSS",
'str4' : 'Qui "p" è il selettore (seleziona tutti gli elementi <p>) e viene applicato lo stile al bordo inferiore',
'str5' : "Per giocare, inserisci un selettore nell'editor qui sotto per selezionare gli elementi corretti sulla tavola \n Se indovini, avanzerai al livello successivo",
'str6': "Sposta il mouse su un elemento sulla tavola per vedere il codice HTML",
'str7': "Ottieni aiuto sui selettori qui a destra! →",
'str8': "Ok, ci sono!",
'str9': "Aiuto, mi sono bloccato!", // cit. :-)
'str10': "<div class='file-name'>style.css</div>Editor CSS",
'str11': "Inserisci un selettore CSS",
'str12': "invio",
'str13': "{<br>/* Gli stili andrebbero qui */<br>}",
'str14': '<br/>/* <br/> Inserisci un numero per saltare a un livello.<br>Es → "5" per il livello 5<br>*/',
'str15': "<div class='file-name'>table.html</div> Visualizzatore HTML",
'str16': "Cos'è questo?",
'str17': "E' un piccolo gioco per aiutarti a imparare i selettori CSS. Inserisci il selettore corretto per completare ogni livello. Sulla destra trovi un aiuto."
}
levels['it'] = [
{
helpTitle : "Seleziona gli elementi per il loro tipo",
selectorName : "Selettore di Tipo",
doThis : "Seleziona i piatti",
selector : "plate",
syntax : "A",
help : "Seleziona tutti gli elementi ti tipo <strong>A</strong>. Il tipo si riferisce al tipo del tag: <tag>div</tag>, <tag>p</tag> e <tag>ul</tag> sono tutti diversi tipi di elementi.",
examples : [
'<strong>div</strong> seleziona tutti gli elementi <tag>div</tag>.',
'<strong>p</strong> seleziona tutti gli elementi <tag>p</tag>.',
],
board: "()()"
},
{
doThis : "Seleziona le scatole bento",
selector : "bento",
syntax : "A",
helpTitle : "Seleziona gli elementi per il loro tipo",
selectorName : "TSelettore di Tipo",
help : "Seleziona tutti gli elementi ti tipo <strong>A</strong>. Il tipo si riferisce al tipo del tag: <tag>div</tag>, <tag>p</tag> e <tag>ul</tag> sono tutti diversi tipi di elementi.",
examples : [
'<strong>div</strong> seleziona tutti gli elementi <tag>div</tag>.',
'<strong>p</strong> seleziona tutti gli elementi <tag>p</tag>.',
],
board: "[]()[]"
},
{
doThis : "Seleziona il piatto fantasioso",
selector : "#fancy",
selectorName: "Selettore per ID",
helpTitle: "Seleziona gli elementi con un ID",
syntax: "#id",
help : "Seleziona gli elementi con l'attributo <strong>id</strong>. Puoi anche combinare il selettore ID con il selettore di tipo.",
examples : [
'<strong>#cool</strong> selezionerà l'elemento con <strong>id="cool"</strong>',
'<strong>ul#long</strong> selezionerà l'elemento <strong><ul id="long"></strong>'
],
board: "{}()[]"
},
{
helpTitle: "Seleziona un elemento all'inerno di un'altro elemento",
selectorName : "Selettore di discendente",
doThis : "Seleziona la mela sul piatto",
selector : "plate apple",
syntax: "A B",
help : "Seleziona tutti i <strong>B</strong> all'interno di <strong>A</strong>. In questo caso <strong>B</strong> è l'elemento discentente, cioè è un elemento che ` all'interno di un'altro elemento.",
examples : [
'<strong>p strong</strong> selezionerà tutti gli <strong><strong></strong> che sono discendenti di qualunque <strong><p></strong>',
'<strong>#fancy span</strong> selezionerà tutti gli <strong><span></strong> che sono discendenti dell'elemento con <strong>id="fancy"</strong>',
],
board: "[](A)A"
},
{
doThis : "Seleziona il sottaceto sul piatto fantasioso",
selector : "#fancy pickle",
helpTitle: "Combina i selettori di discendente e per ID",
syntax: "#id A",
help : 'Puoi combinare qualunque selettore con il selettore di discendente.',
examples : [
'<strong>#cool span</strong> selezionerà tutti gli elementi <strong><span></strong> che sono dentro l'elemento con <strong>id="cool"</strong>'
],
board: "[O]{P}(P)"
},
{
doThis : "Seleziona le mele piccole",
selector : ".small",
selectorName: "Selettore di classe",
helpTitle: "Seleziona gli elementi per la loro classe",
syntax: ".classname",
help : 'Il selettore di classe seleziona tutti gli elementi che hanno quel valore come attributo class. Gli elementi possono avere un solo ID, ma molte classi.',
examples : [
'<strong>.neato</strong> seleziona gli elementi con <strong>class="neato"</strong>'
],
board: "Aa(a)()"
},
{
doThis : "Seleziona le arance piccole",
selector : "orange.small",
helpTitle: "Combina il selettore di classe",
syntax: "A.className",
help : 'Puoi combinare il selettore di classe con altri selettori, come il selettore di tipo.',
examples : [
'<strong>ul.important</strong> selezionerà tutti gli elementi <strong><ul></strong> che hanno <strong>class="important"</strong>',
'<strong>#big.wide</strong> selezionerà l'elemento con <strong>id="big"</strong> che ha anche <strong>class="wide"</strong>'
],
board: "Aa[o](O)(o)"
},
{
doThis : "Seleziona le arance piccole nelle bento",
selector : "bento orange.small",
syntax: "Mettiti sotto!",
helpTitle: "Puoi farcela...",
help : 'Combina quello che hai imparato negli ultimi livelli per risolvere questo!',
board: "A(o)[o][a][o]"
},
{
doThis : "Seleziona tutti i piatti e le bento",
selector : "plate,bento",
selectorName : "Combinatore Virgola",
helpTitle: "Combina, selettori, con... le virgole!",
syntax : "A, B",
help : 'Grazie alla tecnologia Shatner, questo selezionerà tutti gli elementi <strong>A</strong> e <strong>B</strong>. Puoi combinare qualsiasi selettore in questa maniera, e puoi specificarne più di uno.',
examples: [
'<strong>p, .fun</strong> selezionerà tutti gli elementi <tag>p</tag> e tutti gli elementi con <strong>class="fun"</strong>',
'<strong>a, p, div</strong> selezionerà tutti gli elementi <tag>a</tag>, <tag>p</tag> e <tag>div</tag>'
],
board: "pP(P)[P](P)Pp"
},
{
doThis : "Seleziona tutto!",
selector : "*",
selectorName: "Il selettore universale",
helpTitle: "Puoi selezionare tutto!",
syntax : "*",
help : 'Puoi selezionare tutti gli elementi con il selettore universale!',
examples : [
'<strong>p *</strong> selezionerà tutti gli elementi dentro a tutti gli elementi <strong><p></strong>.'
],
board: "A(o)[][O]{)"
},
{
doThis : "Seleziona tutto quello che è su un piatto",
selector : "plate *",
syntax : "A *",
helpTitle: "Combina il selettore universale",
help : 'Questo selezionerà tutti gli elementi dentro a <strong>A</strong>.',
examples : [
'<strong>p *</strong> selezionerà tutti gli elementi dentro a tutti gli elementi <strong><p></strong>.',
'<strong>ul.fancy *</strong> selezionerà tutti gli elementi dentro a tutti gli elementi <strong><ul class="fancy"></strong>.'
],
board: "{o}(P)a(A)"
},
{
doThis : "Seleziona la mela subito a fianco a un piatto",
selector : "plate + apple",
helpTitle: "Seleziona un elemento che direttamente adiacente un'altro elemento",
selectorName: "Selettore di fratello adiacente",
syntax : "A + B",
help : "Questo seleziona tutti gli elementi <strong>B</strong> direttamente adiacente a <strong>A</strong>. Gli elementi adiacenti tra di loro sono chiamati fratelli. Sono sullo stello livello, o profondità. <br/><br/>Nel codice HTML di questo livello, gli elementi che hanno la stessa indentazione sono fratelli.",
examples : [
'<strong>p + .intro</strong> selezionerà tutti gli elementi con <strong>class="intro"</strong> che sono direttamente adiacenti a un <tag>p</tag>',
'<strong>div + a</strong> selezionerà tutti gli elementi <tag>a</tag> che sono direttamente adiacenti a un <tag>div</tag>'
],
board: "[a]()a()Aaa"
},
{
selectorName: "Selettore di fratelli generici",
helpTitle: "Seleziona gli elementi adiacenti altri elementi",
syntax: "A ~ B",
doThis : "Seleziona tutti i sottaceti a destra della bento",
selector : "bento ~ pickle",
help : "Puoi selezionare tutti i fratelli di un elemento. Funziona come il Selettore di fratello adiacente (A + B) tranne che prende tutti gli elementi adiacenti invece di solo uno.",
examples : [
'<strong>A ~ B</strong> selezionerà tutti gli elementi <strong>B</strong> adiacenti a <strong>A</strong>'
],
board: "P[o]pP(P)(p)"
},
{
selectorName: "Selettore di figlio",
syntax: "A > B ",
doThis : "Seleziona la mela direttamente su un piatto",
selector : "plate > apple",
helpTitle: "Seleziona figli diretti di un elemento",
help : "Puoi selezionare gli elementi che sono direttamente figli di altri elementi. Un elemeneto figlio è un qualsiasi elemento che ` direttamente nidificato in un'altro elemento.<br><br>Gli elementi che sono innestati più in profondotà sono chiamati elementi discendenti.",
examples : [
'<strong>A > B</strong> selezionerà tutti gli elementi <strong>B</strong> che sono direttamente figli di <strong>A</strong>'
],
board: "([A])(A)()Aa"
},
{
selectorName: "Pseudo-selettore Primo Figlio",
helpTitle: "Seleziona il primo elemento figlio all'interno di un'altro elemento",
doThis : "Seleziona l'arancia in cima",
selector : "plate :first-child",
syntax: ":first-child",
help : "Puoi seleziona il primo elemento figlio. Un elemeneto figlio è un qualsiasi elemento che ` direttamente nidificato in un'altro elemento. Puoi combinare questo pseudo-selettore con altri selettori.",
examples : [
'<strong>:first-child</strong> seleziona tutti gli elementi che sono primi figli di qualche elemento.',
'<strong>p:first-child</strong> seleziona tutti gli elementi <strong><p></strong> che sono primi figli di qualche elemento.',
'<strong>div p:first-child</strong> seleziona tutti gli elementi <strong><p></strong> che sono primi figli di <strong><div></strong>.'
],
board: "[]()(OOO)p"
},
{
selectorName: "Pseudo-selettore Figlio Unico",
helpTitle: "Seleziona un elemento che è l'unico elemento all'interno di un'altro.",
doThis : "Seleziona la mela e il sottaceto sul piatto",
selector : "plate :only-child",
syntax: ":only-child",
help : "Puoi selezionare qualunque elemento che è l'unico elemento all'interno di un'altro.",
examples : [
'<strong>span:only-child</strong> seleziona gli elementi <strong><span></strong> che sono figli unici di un'altro elemento',
'<strong>ul li:only-child</strong> seleziona l'unico elemento <strong><li></strong> in <strong><ul></strong>.'
],
board: "(A)(p)[]P(oO)p"
},
{
selectorName: "Pseudo selettore Ultimo Figlio",
helpTitle: "Seleziona l'ultimo elemento all'interno di un'altro elemento",
doThis : "Seleziona la mela piccola e il sottaceto",
selector : ".small:last-child",
syntax: ":last-child",
help : "Puoi utilizzare questo selettore per selezionare un elemento che è l'ultimo figlio all'interno di un'altro elemento.<br><br>Pro Tip → nel caso ci sia un solo elemento, quell'elemento conta come first-child, only-child and last-child!",
examples : [
'<strong>:last-child</strong> seleziona tutti gli ultimi elementi figli di elementi.',
'<strong>span:last-child</strong> seleziona tutti gli utlimi elementi figli di <strong><span></strong>.',
'<strong>ul li:last-child</strong> seleziona l'ultimo elemento <strong><li></strong> all'interno di qualunque <strong><ul></strong>.'
],
board: "{a)()(oO)p"
},
{
selectorName: "Pseudo-selettore n-esimo figlio",
helpTitle: "Seleziona un elemento dal suo ordine all'interno di un'altro elemento",
doThis : "Seleziona il terzo piatto",
selector : ":nth-child(3)",
syntax: ":nth-child(A)",
help : "Seleziona l'<strong>n-esimo</strong> (Es: 1°, 2°, 3° etc.) elemento figlio in un'altro elemento.",
examples : [
'<strong>:nth-child(8)</strong> seleziona tutti gli elementi che sono l'ottavo figlio di un'altro elemento.',
'<strong>div p:nth-child(2)</strong> seleziona il secondo elemento <strong>p</strong> in ogni <strong>div</strong>',
],
board: "()()(){}"
},
{
selectorName: "Psuedo-selettore n-esimo ultimo figlio",
helpTitle: "Seleziona un elemento dal suo ordine all'interno di un'altro elemento, contando all'indietro",
doThis : "Seleziona la prima bento",
selector : "bento:nth-last-child(4)",
syntax: ":nth-last-child(A)",
help : "Seleziona il figlio contando dal fondo. E' come <strong>:nth-child</strong>, ma contando all'indietro!",
examples : [
'<strong>:nth-last-child(2)</strong> seleziona tutti i penultimi elementi figli.'
],
board: "()[]a(OOO)[]"
},
{
selectorName: "Selettore Primo di un tipo",
helpTitle: "Seleziona il primo elemento di un tipo specifico",
doThis : "Seleziona la prima mela",
selector : "apple:first-of-type",
syntax: ":first-of-type",
help : "Seleziona il primo elemento di quel tipo che si trova all'interno di un'altro elemento",
examples : [
'<strong>span:first-of-type</strong> seleziona il primo <strong><span></strong> in qualsiasi elemento.'
],
board: "Aaaa(oO)"
},
{
selectorName: "Selettore n-esimo di un tipo",
// helpTitle: "Nth of Type Selector",
doThis: "Seleziona tutti i piatti pari",
selector: "plate:nth-of-type(even)",
syntax: ":nth-of-type(A)",
help: "Seleziona uno specifico elemento basato sul suo tipo e il suo ordine all'interno di un'altro elemento - o le ricorrenze pari o dispari di quell'elemento",
examples: [
'<strong>div:nth-of-type(2)</strong> seleziona il secondo <tag>div</tag>.',
'<strong>.example:nth-of-type(odd)</strong> seleziona le ricorrenze dispari della classe example.'
],
board: "()()()(){}()"
},
{
selectorName: "Nth-of-type Selector with Formula",
// helpTitle: "Nth-of-type Selector with formula",
doThis: "Select every 2nd plate, starting from the 3rd",
selector: "plate:nth-of-type(2n+3)",
syntax: ":nth-of-type(An+B)",
help: "The nth-of-type formula selects every nth element, starting the count at a specific instance of that element.",
examples: [
'<strong>span:nth-of-type(6n+2)</strong> selects every 6th instance of a <tag>span</tag>, starting from (and including) the second instance.'
],
board: "()(p)(a)()(A)()"
},
{
selectorName: "Only of Type Selector",
helpTitle: "Select elements that are the only ones of their type",
selector : "apple:only-of-type",
syntax: ":only-of-type",
doThis : "Select the apple on the middle plate.",
help : "Selects the only element of its type within another element.",
examples : [
'<strong>p span:only-of-type</strong> selects a <tag>span</tag> within any <tag>p</tag> if it is the only <tag>span</tag> in there.'
],
board: "(aA)(a)(p)"
},
{
selectorName: "Last of Type Selector",
helpTitle: "Select the last element of a specific type",
doThis : "Select the second apple and orange",
selector : ".small:last-of-type",
syntax: ":last-of-type",
help : "Selects each last element of that type within another element. Remember type refers the kind of tag, so <tag>p</tag> and <tag>span</tag> are different types. <br><br> I wonder if this is how the last dinosaur was selected before it went extinct.",
examples : [
'<strong>div:last-of-type</strong> selects the last <strong><div></strong> in every element.',
'<strong>p span:last-of-type</strong> selects the last <strong><span></strong> in every <strong><p></strong>.'
],
board: "ooPPaa"
},
{
selectorName: "Empty Selector",
helpTitle: "Select elements that don't have children",
doThis : "Select the empty bentos",
selector : "bento:empty",
syntax: ":empty",
help : "Selects elements that don't have any other elements inside of them.",
examples : [
'<strong>div:empty</strong> selects all empty <strong><div></strong> elements.'
],
board: "[][p][][]"
},
{
selectorName: "Negation Pseudo-class",
helpTitle: "Select all elements that don't match the negation selector",
doThis : "Select the big apples",
selector : "apple:not(.small)",
syntax: ":not(X)",
help : 'You can use this to select all elements that do not match selector <strong>"X"</strong>.',
examples : [
'<strong>:not(#fancy)</strong> selects all elements that do not have <strong>id="fancy"</strong>.',
'<strong>div:not(:first-child)</strong> selects every <tag>div</tag> that is not a first child.',
'<strong>:not(.big, .medium)</strong> selects all elements that do not have <strong>class="big"</strong> or <strong>class="medium"</strong>.'
],
board: "{a}(A)A(o)p"
}
];