You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 8-web-components/5-slots-composition/article.md
+8-8Lines changed: 8 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -129,7 +129,7 @@ Ad esempio, qui il secondo `<span>` viene ignorato (dal momento che non è un fi
129
129
130
130
Se ci sono più elementi nel light DOM con lo stesso slot name, questi vengono inseriti nello slot, uno dopo l'altro in successione.
131
131
132
-
Per esempio, qui:
132
+
Come nel seguente esempio:
133
133
```html
134
134
<user-card>
135
135
<spanslot="username">John</span>
@@ -372,7 +372,7 @@ In questo esempio, ci sono due eventi `slotchange`:
372
372
373
373
`slotchange: item` viene scaturito quando viene aggiunto un nuovo `<li slot="item">`.
374
374
375
-
Nota bene: non ci sono eventi `slotchange` dopo 2 secondi, quando viene modificato il contenuto di `slot="title"`. Questo perché non ci sono modifiche slot. Abbiamo modificato il contenuto dentro l'elemento slotted, che è uan cosa differente e non collegata.
375
+
Nota bene: non ci sono eventi `slotchange` dopo 2 secondi, quando viene modificato il contenuto di `slot="title"`. Questo perché non ci sono modifiche slot. Abbiamo modificato il contenuto dentro l'elemento slotted, che è una cosa differente e non collegata.
376
376
377
377
Volendo però tenere traccia delle modifiche interne nel light DOM tramite JavaScript, potremmo anche usare un meccanismo più generico come quello dei [MutationObserver](info:mutation-observer).
378
378
@@ -382,7 +382,7 @@ Infine, citiamo i metodi JavaScript inerenti gli slots.
382
382
383
383
Come già visto, JavaScript tiene d'occhio il DOM "effettivo", privo di flattening. Ma, se lo shadow tree ha il `{mode: 'open'}`, possiamo vedere quali elementi vengono assegnati a uno slot o, viceversa, lo slot con l'elemento al suo interno:
384
384
385
-
-`node.assignedSlot` -- restiuisce l'elemento `<slot>` a cui è assegnato il `node`.
385
+
-`node.assignedSlot` -- restituisce l'elemento `<slot>` a cui è assegnato il `node`.
386
386
-`slot.assignedNodes({flatten: true/false})` -- nodi DOM, assegnati allo slot. L'opzione `flatten` è `false` di default. Se impostata esplicitamente a `true`, analizzerà più in profondità all'interno del flattened DOM, restituendo gli slot annidati in caso di componenti annidati o il fallback content, in assenza di nodi assegnati.
387
387
-`slot.assignedElements({flatten: true/false})` -- Elementi DOM, assegnati allo slot (come sopra, ma solo elementi di tipo nodo).
388
388
@@ -436,22 +436,22 @@ Generalmente, se un elemento ha lo shadow DOM, il suo light DOM non viene mostra
436
436
Esistono due tipi di slots:
437
437
438
438
- Named slots: `<slot name="X">...</slot>` -- ottiene i figli light tramite `slot="X"`.
439
-
- Default slot: il primot`<slot>` senza un nome (i successivi elementi privi di nome vengono ignorati) -- ottiene i figli light unslotted.
439
+
- Default slot: il primo`<slot>` senza un nome (i successivi elementi privi di nome vengono ignorati) -- ottiene i figli light unslotted.
440
440
- Se ci sono più elementi per uno stesso slot -- vengono accodati uno dopo l'altro.
441
-
- Il contenuto dell'elemento `<slot>` viene usato come un ripeigo (fallback). Viene mostrato se non ci sono figli light per un determinato slot.
441
+
- Il contenuto dell'elemento `<slot>` viene usato come un ripiego (fallback). Viene mostrato se non ci sono figli light per un determinato slot.
442
442
443
443
Il processo di rendering degli elementi slotted all'interno dei loro slots viene chiamato "composition". Il risultato viene soprannominato "flattened DOM".
444
444
445
445
La Composition non sposta realmente i nodi, dal punto di vista di JavaScript il DOM rimane immutato.
446
446
447
447
JavaScript può accedere agli slots tramite:
448
448
-`slot.assignedNodes/Elements()` -- restituisce i nodi o gli elementi dentro lo `slot`.
449
-
-`node.assignedSlot` -- la proprietà inversa, restiuisce lo slot partendo dal nodo.
449
+
-`node.assignedSlot` -- la proprietà inversa, restituisce lo slot partendo dal nodo.
450
450
451
451
Se volessimo conoscere cosa stiamo mostrando, possiamo tracciare il contenuto degli slot tramite:
452
-
-`slotchange` evento -- viene generato la prima volta che uno slot viene viene riempito, e per ogni operazione di aggiunta/rimozione degli elementi slotted, ma non i loro figli. Lo slot sarà `event.target`.
452
+
-`slotchange` evento -- viene generato la prima volta che uno slot viene riempito, e per ogni operazione di aggiunta/rimozione degli elementi slotted, ma non i loro figli. Lo slot sarà `event.target`.
453
453
-[MutationObserver](info:mutation-observer) se vogliamo andare in profondità all'interno dello slot content, e tenere traccia dei cambiamenti all'interno di essi.
454
454
455
-
Ora, dal momento che conosciamo come mostrare gli elementi dal light DOM allo shadow DOM, possiamo vedere come stilizzarli in maniera consona. La regola di base è che gli elementi shadow vegono stilizzati dentro, mentre gli elementi light esternamente, ma ci sono delle eccezioni degne di nota.
455
+
Ora, dal momento che conosciamo come mostrare gli elementi dal light DOM allo shadow DOM, possiamo vedere come stilizzarli in maniera consona. La regola di base è che gli elementi shadow vengono stilizzati dentro, mentre gli elementi light esternamente, ma ci sono delle eccezioni degne di nota.
0 commit comments