2012-03-01 5 views
8

Na drugi dzień, szukałem w jaki przeglądarek (użyłem chrom, ale zgaduję, że odnosi się do wszystkich elementów HTML) z wykorzystaniem arkuszy stylów agenta użytkowników.Dlaczego w arkuszach stylów użytkownika w przeglądarkach są używane -poprawione właściwości CSS?

Podczas korzystania , znalazłem to:

blockquote { 
-webkit-margin-before: 1em; 
-webkit-margin-after: 1em; 
-webkit-margin-start: 40px; 
-webkit-margin-end: 40px; 
} 

wyglądać dobrze. Ale dlaczego nie można użyć ich coś więcej jak to ?:

blockquote { 
margin-left:/*whatever*/; 
margin-top:/*whatever*/; 
margin-right:/*whatever*/; 
margin-bottom:/*whatever*/; 
} 

To właśnie stało się nade mną, a ja myślałem, że to dość dziwne.

+0

Bo mogą? Zawsze się nad tym zastanawiałem i zakładałem, że ma to jakiś związek z dziwactwem pudełkowego modelu. Ciekawe, jakie odpowiedzi uzyskasz. –

+1

Ponieważ są to ** arkusze stylów agentów użytkownika ** (co podkreśliliście)? – BoltClock

Odpowiedz

7

Niektóre przeglądarki używają takich reguł CSS, ponieważ ich specyfikacja nie została jeszcze sfinalizowana przez W3C, a zatem gdyby miały one pozostawić prefiks wyłączony, ryzykowalibyśmy, że ewentualny standardowy format W3C byłby nieco inny, oraz tworzenie niezgodności pomiędzy przeglądarkami lub pomiędzy wersjami tej samej przeglądarki, które zmieniają format na standardowy sposób robienia rzeczy.

Jest to szczególny problem dla reguł z wieloma argumentami - najważniejsze, że może się nie udać, że średnia kończy się o argumenty w innej kolejności:

border-radius: 3px 3px 6px 6px; 
box-shadow: 3px 3px 6px #fff; 

... itd ...

Dodanie prefiksu jest ich zapewnienie, że jeśli ewentualne standardowe okazuje się być inna od ich realizacji, nic nie złamie.

Co do części o margin-before zamiast margin-left, który wydaje się być fakt, że zasada -webkit-margin-before nie stanowi równowartość margin-left, ale margin:before, który jest niedawny wniosek skierowany na tworzenie rzeczy pracować w RTL i pionowych trybów zapisu . Zobacz tę stronę: http://lists.w3.org/Archives/Public/www-style/2010Sep/0625.html Wydaje się jednak dość niejasne.

+1

Nie wyjaśnia to, dlaczego używają zupełnie innych właściwości CSS niż te "zwykłe". To nie jest "-webkit-margin-left", to "-webkit-margin-before". –

+0

Edytowane, chociaż nie sądzę, że o to chodziło. Tytuł pytania zdecydowanie pyta o "-prefixowane" właściwości CSS. –

+0

W tej chwili te właściwości są po prostu zastrzeżone dla WebKit (* urgh *) i nie powinny być traktowane jako oficjalne ani zatwierdzone przez grupę roboczą, dopóki nie zostaną dodane do specyfikacji. Przedrostki dostawcy są używane nie tylko w eksperymentalnych wersjach oficjalnych właściwości; są również wykorzystywane przez sprzedawców do tworzenia własnego świata właściwości, z których mogą korzystać lub korzystać z różnych powodów, z których niektóre mogą, ale nie muszą być promowane jako propozycje do dodania do specyfikacji. Jako inny przykład niż WebKit, Mozilla używa pewnej liczby prefiksowanych selektorów, właściwości i wartości do zhakowania pewnych dziwactw. – BoltClock

1

Aby pomóc programistom sprawdzić, które elementy są domyślnie przeglądarka.

Powiązane problemy