Perché ci sono così tante proprietà CSS che sono essenzialmente le stesse?

4

Questa risposta mi ha fatto davvero meravigliare.

Ho scritto CSS prima e (di solito) non mi preoccupo veramente di supportare browser diversi dai recenti firefox e chrome, ma nella ricerca ho notato che, per la stessa identica proprietà CSS, di solito ci sono almeno tre diverse forme che si comportano in modo identico e possono avere gli stessi valori, ma che hanno semplicemente prefissi diversi per la libreria specifica che li implementa.

Qui, ad esempio:

-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;

Con la sola eccezione del primo, questi differiscono solo per prefisso. Perché i manutentori non cambiano semplicemente la regola lexer che corrisponde alla stringa "-moz-user-select" per far corrispondere anche "user-select"? Certo, c'è la possibilità che l'autore del CSS originale volesse un comportamento diverso per Firefox v. Altri browser, quindi "user-select" non sarà lo stesso di "-moz-user-select", ma il rischio di quello strano il caso d'angolo è di gran lunga superato dal vantaggio, e ci sono altri, probabilmente i modi migliori per raggiungere l'obiettivo specifico del browser.

Se questo è già in atto, perché le persone usano ancora tutto questo? Se si sono fermati:

  • ci sarebbero meno bit che intasano le pipe metaforiche di Internet (la latenza della rete andrebbe giù, più le singole pagine si caricheranno più velocemente), e
  • le persone che utilizzano browser antichi riceveranno l'impulso necessario per l'aggiornamento (cosa che dovrebbero fare comunque per motivi di sicurezza)

TL; DR

Quale sarebbe lo svantaggio di chiunque utilizzi la stessa convenzione di denominazione? Perché non sono normalizzate le cose ormai?

    
posta Parthian Shot 28.07.2014 - 20:31
fonte

1 risposta

12

La maggior parte di questi sono dovuti ai prefissi dei fornitori.

Un nuovo standard che non è stato finalizzato può essere implementato in un browser, ma dal momento che non è stato finalizzato, il fornitore del browser (creatore) non vuole utilizzare l'attributo corretto "ufficiale", ma vuole comunque supportare la funzione.

Quindi aggiungono un prefisso - -webkit-* , -moz-* , -khtml- e -ms-* sono specifici per i diversi browser / motori di rendering.

E come sviluppatore, mentre i browser ottengono supporto ma non usano ancora il nome "ufficiale", potresti voler supportare la funzione, quindi aggiungi i prefissi dei fornitori e quello ufficiale per le prove future.

A volte una funzione cambia nome durante il processo di standardizzazione, quindi si finisce con un prefisso fornitore che utilizza un nome diverso o con due nomi diversi per la stessa funzione (normalmente in diverse versioni del browser dello stesso motore di rendering).

Why haven't things normalized by now?

I nuovi standard vengono elaborati e vengono definiti per tutto il tempo . Diversi fornitori hanno priorità diverse su quali fornitori vogliono supportare. Quindi, un target in movimento + priorità diverse, ti fornisce ... prefissi di fornitori e nessun singolo nome standard in un determinato momento.

    
risposta data 28.07.2014 - 20:36
fonte

Leggi altre domande sui tag