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
+30-30Lines changed: 30 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -156,7 +156,7 @@ Restituisce questo flattened DOM con due elementi dentro `<slot name="username">
156
156
157
157
## Slot fallback content
158
158
159
-
Se inseriamo qualcosa dentro uno `<slot>`, diverrà il contenuto di ripiego, quello "default". Il browser mostrerà questo, nel caso in cui non vi fossero contenuti corrispondenti nel light DOM.
159
+
Se inseriamo qualcosa dentro uno `<slot>`, quest'ultimo rappresenterà il contenuto di ripiego, cioè quello "predefinito". Nel caso in cui non vi fossero contenuti corrispondenti nel light DOM, sarà questo il contenuto mostrato dal browser.
160
160
161
161
Per esempio, in questo pezzo di shadow DOM, verrà visualizzato `Anonymous` se non ci sono `slot="username"` nel light DOM.
162
162
@@ -322,9 +322,9 @@ Certamente possiamo andare ad aggiungere più funzionalità: eventi metodi e via
322
322
323
323
E se volessimo aggiungere e rimuovere elementi del menù dinamicamente?
324
324
325
-
**Il browser monitora dgli slots e aggiorna la visualizzazione all'inserimento o rimozione di elementi slottati.**
325
+
**Il browser monitora gli slots e aggiorna la visualizzazione all'inserimento o rimozione di elementi slottati.**
326
326
327
-
Inoltre, dal momento che i nodi del light DOM non vengono copiati, ma solo visualizzati negli slots, le modifiche al loro interno divengono immmediatamente visibili.
327
+
Inoltre, dal momento che i nodi del light DOM non vengono copiati, ma solo visualizzati negli slots, le modifiche al loro interno saranno immediatamente visibili.
328
328
329
329
Quindi non dobbiamo fare nulla per aggiornare la visualizzazione. Ma se il codice del componente vuole avere dei dettagli sulla modifica degli slots, allora si potrà usare l'evento `slotchange`.
330
330
@@ -374,7 +374,7 @@ In questo esempio, ci sono due eventi `slotchange`:
374
374
375
375
Norta 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 è tutt'altra cosa.
376
376
377
-
Se volessimo tenere traccia delle modifiche interne del light DOM tramite JavaScript, si potrebbe anche usare un meccanismo più generico: I[MutationObserver](info:mutation-observer).
377
+
Volendo tenere traccia delle modifiche interne al light DOM tramite JavaScript, potremmo anche usare un meccanismo più generico come quello dei[MutationObserver](info:mutation-observer).
378
378
379
379
## Slot API
380
380
@@ -383,18 +383,18 @@ Infine, citiamo i metodi JavaScript inerenti gli slots.
383
383
Come già visto, JavaScript osserva il DOM "effettivo", privo di flattening. Ma, se lo shadow tree ha il `{mode: 'open'}`, possiamo vedere quali elementi vengono assegnati a uno slot e, vice versa, lo slot con l'elemento al suo interno:
384
384
385
385
-`node.assignedSlot` -- restiuisce l'elemento `<slot>` a cui è assegnato il `node`.
386
-
-`slot.assignedNodes({flatten: true/false})` -- nodi DOM, assegnati allo slot. L'opzione `flatten` è `false` di default. Se impostata explicitly set to `true`, then it looks more deeply into the flattened DOM, returning nested slots in case of nested components and the fallback content if no node assigned.
387
-
-`slot.assignedElements({flatten: true/false})` -- DOM elements, assigned to the slot (same as above, but only element nodes).
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à nel flattened DOM, restituendo gli slot annidati in caso di componenti annidati o il fallsback content se non vi fossero nodi assegnati.
387
+
-`slot.assignedElements({flatten: true/false})` -- Elementi DOM, assegnati allo slot (come sopra, ma solo elementi nodi).
388
388
389
-
These methods are useful when we need not just show the slotted content, but also track it in JavaScript.
389
+
Questi metodi sono utili quando dobbiamo non solo mostrare lo sloetted content, ma anche tracciarli in JavaScript.
390
390
391
-
For example, if `<custom-menu>` component wants to know, what it shows, then it could track `slotchange`and get the items from`slot.assignedElements`:
391
+
Ad esempio, se il componente `<custom-menu>` component vuole sapere, cosa mostra, può tracciare `slotchange`ed ottenere gli elementi da`slot.assignedElements`:
392
392
393
393
```html run untrusted height=120
394
394
<custom-menuid="menu">
395
-
<spanslot="title">Candy menu</span>
396
-
<lislot="item">Lollipop</li>
397
-
<lislot="item">Fruit Toast</li>
395
+
<spanslot="title">Menù dei dolciumi</span>
396
+
<lislot="item">Lecca-lecca</li>
397
+
<lislot="item">Toast alla frutta</li>
398
398
</custom-menu>
399
399
400
400
<script>
@@ -408,7 +408,7 @@ customElements.define('custom-menu', class extends HTMLElement {
408
408
<ul><slotname="item"></slot></ul>
409
409
</div>`;
410
410
411
-
//triggers when slot content changes
411
+
//viene generato quando cambia il contenuto dello slot
Usually, if an element has shadow DOM, then its light DOM is not displayed. Slots allow to show elements from light DOM in specified places of shadow DOM.
434
+
Generalmente, se un elemento ha lo shadow DOM, il suo light DOM non viene mostrato. Gli slots permettono di mostrare gli elementi del light DOM ne punti contrassegnati dello shadow DOM.
435
435
436
-
There are two kinds of slots:
436
+
Esistono due tipi di slots:
437
437
438
-
- Named slots: `<slot name="X">...</slot>` -- gets light children with`slot="X"`.
439
-
- Default slot: the first`<slot>`without a name (subsequent unnamed slots are ignored) -- gets unslotted light children.
440
-
-If there are many elements for the same slot -- they are appended one after another.
441
-
-The content of`<slot>`element is used as a fallback. It's shown if there are no light children for the slot.
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.
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.
442
442
443
-
The process of rendering slotted elements inside their slots is called "composition". The result is called a "flattened DOM".
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
-
Composition does not really move nodes, from JavaScript point of view the DOM is still same.
445
+
La Composition non sposta realmente i nodi, dal punto di vista di JavaScript il DOM rimane immutato.
-`node.assignedSlot` -- the reverse property, returns slot by a node.
447
+
JavaScript può accedere agli slots tramite:
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.
450
450
451
-
If we'd like to know what we're showing, we can track slot contents using:
452
-
-`slotchange`event -- triggers the first time a slot is filled, and on any add/remove/replace operation of the slotted element, but not its children. The slot is`event.target`.
453
-
-[MutationObserver](info:mutation-observer)to go deeper into slot content, watch changes inside it.
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`.
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
-
Now, as we know how to show elements from light DOM in shadow DOM, let's see how to style them properly. The basic rule is that shadow elements are styled inside, and light elements -- outside, but there are notable exceptions.
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.
0 commit comments