2009-05-28 10 views
68

(nie mylić z Xunit, popularne biblioteki .Net testowanie urządzenia).Jaka jest wartość jednostki css "ex"?

Dziś w przypływie nudy zacząłem kontroli Gmails DOM (tak, byłem bardzo znudzeni).

Wszystko wyglądało całkiem prosto, dopóki nie zauważyłem interesującej specyfikacji na szerokości niektórych elementów. Znakomici Googlici określili liczbę kolczyków przy użyciu rzadkiej jednostki "ex".

width: 22ex; 

Na początku byłem zakłopotany („Co to jest?«Ex»”), a następnie wrócił do mnie: wydaje mi się, czegoś od lat temu, kiedy pierwszy uczyłem się o CSS. From the CSS3 spec:

[Urządzenie np jest] równa używane x wysokość first available font. Wysokość x jest tak nazywana, ponieważ często jest równa wysokości małej litery "x". Jednak "ex" jest zdefiniowane nawet dla czcionek, które nie zawierają "x".

Dobrze i dobrze. Ale nigdy wcześniej nie widziałem, żeby był używany (o wiele mniej używany). Używam ems dość często i doceniam ich wartość, ale dlaczego "ex"? Wydaje się, że pomiar jest o wiele mniej standardowy niż em, i znacznie mniej użyteczny.

Jedną z niewielu stron, które znalazłem omawiając ten temat jest Stephen Poley's http://www.xs4all.nl/~sbpoley/webmatters/emex.html. Stephen robi jednak dobre punkty, ale jego dyskusja wydaje mi się nieprzekonująca.

Więc moje pytanie brzmi: Jaką wartość jednostka "ex" nadaje do projektowania stron internetowych?

(To pytanie może być znakowany subiektywne, ale zostawię tę decyzję do bardziej doświadczonych SO'ers niż ja).

Odpowiedz

97

Jest to przydatne, gdy chcesz coś wielkości w stosunku do wysokości posiadanego małe litery tekstu. Na przykład, wyobraź sobie, pracuje nad projektem tak:

alt text


W typograficznego wymiaru projektu, wysokość liter ma ważnych relacji przestrzennych z pozostałymi elementami. Linie na powyższym obrazie źródłowym mają na celu wskazanie wysokości x tekstu, ale pokazują również, gdzie byłyby wytyczne dotyczące projektowania tego tekstu.

Jak zauważył Jonathan w komentarzach, ex jest po prostu wysokościową wersją em (szerokość).

+20

tylko dodać, że jest to równoważne wysokość za pomocą jednostki „em” o szerokości –

+0

@Jonathan znacznie prostszy sposób, żeby go podać, dzięki. –

+0

Tak więc 2ex jest wysokością jednej wielkiej litery, a następnie? –

0

Wartość mająca w specyfikacji CSS,, jeśli o to pytasz, jest dokładnie taka sama jak wartość jednostki em.

Umożliwia ustawienie czcionek o rozmiarach względnych.

Nie wiesz, jaki jest mój podstawowy rozmiar czcionki. Tak więc jedną dobrą strategią projektowania stron internetowych jest ustawienie rozmiarów czcionek, które są względne, a nie bezwzględne; odpowiednik "podwoić swój normalny rozmiar" lub "trochę mniejszy niż normalny rozmiar" niż stały rozmiar, taki jak "dziesięć pikseli".

+0

Zgadzam się z tym. Ale czy nie jest to wystarczająco dużo dla tego i bardziej niezawodne? – Joel

+0

@JoelPotter tak, ale * tylko * dla szerokości; na wysokość, "ex" wydaje się być odpowiednikiem. – ANeves

+4

@ Niewłaściwe. W CSS em to * wysokość * czcionki (w przybliżeniu), a nie * szerokość *. W typografii drukowanej pojęcie em pochodzi z szerokości dużego litery "M". Ale CSS udoskonalił 'em'. Zobacz [Wikipedia] (https://en.wikipedia.org/wiki/Em_ (typography) #CSS). –

2

Inną rzeczą, którą należy rozważyć, jest to, jak twoja strona skaluje się, gdy użytkownik podnosi lub zmniejsza rozmiar czcionki (być może za pomocą ctrl + kółka myszy (Windows)).

Użyłem em z .. padding-left: 2 em; padding-right: 2 em;

i ex z padding-bottom: 2 ex; wyściółka: 2 ex;

Stosując pionową jednostkę miary dla skali pionowej i poziomej jednostki miary dla właściwości skalowania poziomego.

+3

Zarówno em, jak i ex są jednostkami pionowymi, ponieważ są one zdefiniowane odpowiednio jako * wysokość * wielkich liter "M" i małe litery "x". Można je stosować zarówno w przypadku długości pionowej, jak i poziomej. – JacquesB

0

Należy zauważyć, że terminy takie jak "odstęp pojedynczy/podwójny wiersz" w rzeczywistości oznaczają przesunięcie między dwoma sąsiednimi liniami, zmierzone przez em. Tak więc "podwójna interlinia" oznacza, że ​​każda linia ma wysokość 2 em.

Dlatego jeśli chcesz określić odległość w pionie, która jest proporcjonalna do "linii", użyj em. Używaj tylko ex, jeśli chcesz mieć faktyczną wysokość małej litery, co, jak śmiem twierdzić, jest znacznie rzadszą instancją.

13

Aby odpowiedzieć na pytanie, jednym z nich jest użycie indeksu górnego i dolnego. Przykład:

sup { 
    font-size: 75%; 
    height: 0; 
    line-height: 0; 
    position: relative; 
    vertical-align: baseline; 
    bottom: 1ex; 
} 
+1

Nie sądzę, że to naprawdę pomaga wyjaśnić, czym jest "ex". – duskwuff

+8

Pytanie brzmi: "Jaką wartość ma jednostka" ex "dla projektowania stron internetowych?". Nie "czym jest jednostka ex?" Joel wykonuje bardzo dobrą robotę, definiując jednostkę ex w pierwotnym pytaniu. Przedstawiam praktyczny przykład tego, jak możesz go użyć do umieszczenia indeksu górnego. – jbs

+1

Dobry praktyczny przykład, który bezpośrednio odpowiada na pytanie. Dobra robota. –