Tieni presente quanto segue:
- Le query del container e :has() sono una corrispondenza effettuata in un paradiso reattivo.
- La nuova API Sanitizer offre un processore robusto per stringhe arbitrarie per ridurre le vulnerabilità di cross-site scripting (XSS).
- Stiamo facendo un altro passo verso il ritiro di SQL web.
- E ce ne sono molti altri.
Mi chiamo Pete LePage. Esaminiamo nel dettaglio scopri le novità di Chrome 105 per gli sviluppatori.
Query contenitore e proprietà CSS :has()
Le query container, una delle funzionalità più richieste, Chrome 105. Consentono agli sviluppatori di eseguire query su un selettore padre per conoscere le dimensioni e informazioni sugli stili, consentendo a un elemento secondario di possedere i propri una logica di stile reattiva, indipendentemente dalla posizione in cui si trovano sulla pagina.
Sono simili a una query @media, con l'eccezione che vengono valutate in base alle dimensioni un container anziché le dimensioni dell'area visibile.
Per utilizzare le query contenitore, devi impostare il contenimento su un elemento principale. Ad esempio, potresti avere una scheda con un'immagine e del testo.
Per creare una query contenitore, imposta container-type
nel contenitore della scheda.
L'impostazione di container-type
su inline-size
esegue la query su inline-direction
dimensione dell'elemento principale.
.card-container {
container-type: inline-size;
}
Ora possiamo usare quel container per applicare stili a qualsiasi elemento secondario usando
@container
.
.card {
display: grid;
grid-template-columns: 1fr 1fr;
}
@container (max-width: 400px) {
.card {
grid-template-columns: 1fr;
}
}
In questo caso, quando il container è inferiore a 400 px, passa a una layout a colonna singola.
Pseudo-classe :has()
CSS
Possiamo fare un ulteriore passo in questa direzione con la pseudo-classe CSS :has()
. it
consente di verificare se un elemento principale contiene elementi secondari con specifiche
parametri.
Ad esempio, p:has(span)
indica un selettore di paragrafo con un intervallo all'interno
da questa parte. Puoi usarlo per definire lo stile del paragrafo principale stesso o di qualsiasi altro elemento
al suo interno. In alternativa, puoi utilizzare figure:has(figcaption)
per applicare uno stile a un elemento di figura
che contiene una didascalia.
p:has(span) {
/* magic styles */
}
figure:has(figcaption) {
/* this figure has a figcaption */
}
Dai un'occhiata all'articolo di Una @container and :has(): due nuove potenti API adattabili per una spiegazione più dettagliata e alcune demo divertenti.
API Sanitizer
La maggior parte delle app web riguarda spesso stringhe non attendibili, ma esegue il rendering in modo sicuro contenuti può essere difficile. Se non si prestano cure sufficienti, è facile ottenere creare opportunità per le vulnerabilità cross-site scripting (XSS).
Esistono librerie come DomPurify che aiutano, ma aggiungono una piccola per la manutenzione. L'API HTML Sanitizer aiuta a ridurre il numero di vulnerabilità cross-site scripting (XSS) con la creazione di sistemi di sanificazione nella piattaforma.
Per utilizzarlo, crea una nuova istanza di Sanitizer. Poi chiama setHTML()
sul
l'elemento in cui vuoi inserire i contenuti sanitizzati.
const mySanitizer = new Sanitizer();
const user_input = `<img src="" onerror=alert(0)>`;
elem.setHTML(user_input, { sanitizer: mySanitizer });
L'API Sanitizer è progettata per essere sicura e personalizzabile, permettendoti di specificare diverse opzioni di configurazione, ad esempio eliminando determinati elementi o ammetterne altri.
const config = {
allowElements: [],
blockElements: [],
dropElements: [],
allowAttributes: {},
dropAttributes: {},
allowCustomElements: true,
allowComments: true
};
// sanitized result is customized by configuration
const mySanitizer = new Sanitizer(config);
Scopri la manipolazione sicura del DOM con l'API Sanitizer. per ulteriori informazioni.
Ritiro di SQL web per contesti non sicuri
Qualche tempo fa abbiamo annunciato i nostri piani per il ritiro di SQL web. A partire da Chrome 105, SQL web verrà ritirato in contesti non sicuri.
Se utilizzi SQL web in contesti non sicuri, devi eseguire la migrazione a IndexDB, o un altro container di archiviazione locale.
E tanto altro.
Naturalmente c'è molto altro.
- Ora puoi aggiornare il nome di una PWA installata sia su computer che su dispositivo mobile aggiornando il file manifest dell'app web.
- L'API Multi-screen Window Position ottiene etichette accurate per il nome della schermata.
- L'API Window Controls overlay è ora disponibile. Consente alle PWA di fornire sostituendo la barra del titolo a larghezza intera esistente con una overlay di piccole dimensioni. In questo modo puoi inserire contenuti personalizzati nell'area della barra del titolo.
Per approfondire
Descrive solo alcuni dei punti salienti. Consulta i link qui sotto per le modifiche aggiuntive in Chrome 105.
- Novità di Chrome DevTools (105)
- Ritiri e rimozioni di Chrome 105
- Aggiornamenti di ChromeStatus.com per Chrome 105
- Elenco delle modifiche al repository di codice sorgente di Chromium
- Calendario dei rilasci di Chrome
Iscriviti
Per non perderti gli aggiornamenti, iscriviti al Canale YouTube per sviluppatori di Chrome, e riceverai una notifica via email ogni volta che viene lanciato un nuovo video.
Sono Pete LePage e non appena uscirà Chrome 106, saremo qui per dirti le novità di Chrome.