Perfection or Vanity

Project: Terminated

Blog nie jest już dalej prowadzony ani aktualizowany. Mimo tego, wpisy i komentarze są dalej dostępne. Możesz przeczytać pożegnalny wpis albo przejść do archiwum.

Line-height a zaznaczanie

24 lutego 2006

W CSS line-height: 100% oznacza że wysokość linii jest równa wysokości tekstu - nie będzie między nimi żadnych przerw. Widoczne jest to zwłaszcza po zaznaczeniu takiego tekstu. Czarne zaznaczenie tworzy jednolite tło pod tekstem. Jest to domyślny wygląd dla nieostylowanego tekstu.

Następny akapit został potraktowany już CSS-em, który ustawia wysokość linii na 175%. Po zaznaczeniu takiego tekstu widoczne są przerwy. O ile zwiększenie interlinii ułatwia czytanie, to jednak wpływa właśnie na zaznaczanie. Przeglądarki bowiem zaznaczają tylko sam tekst a nie linijki. W ten sposób podczas kopiowania albo czytania zaznaczenia powstają brzydkie przerwy.

Nie udało mi się znaleźć wyjścia z tej sytuacji - znaczy uzyskać pełnego efektu zaznaczenia. Nie działa dodawanie paddingu do dostawionego spana w akapicie, vertical-align, zamienianie display elementów, czarowanie z line-height. Widocznie zaznaczanie tekstu ma być z definicji operacją na samych literach. Szkoda trochę.

Gdyby jednak przyszło nam wyróżnić jakiś kawałek tekstu - zaznaczyć go trwale za pomocą znacznika span (albo ins, del, small… jak kto woli), może ustawić kolor tła i powiększyć padding pionowy i dolny. Nie należy tylko przesadzać, zawsze skorelować wartość z line-height oraz upewnić się że padding jest wyrażony w jednostkach relatywnych (zwykle em).

Internet Explorer tutaj zachowuje się z punktu widzenia estetyki bardzo ciekawie - pozwala zaznaczać padding tego insa wyróżnionego na jasnożółto. Efekt przechodzi też na nieobjęte insem fragmenty tekstu sąsiadujących poziomo z zaznaczeniem. Dalej zaznacza normalnie, korzystając z odstępów utworzonych przez line-height.

W celu polepszenia czytelności zaznaczanego tekstu (niektóre kombinacje kolorystyczne zaznaczają się prawie niewidocznie) wymyślono w CSS3 pseudoelement ::selection. Na razie można przetestować jego działanie w przeglądarkach Mozilli. ::-moz-selection. W przykładzie span jest zaznaczany na różowo. Nie da się ustawić takiemu elementowi nic innego jak background-color i color, więc zastosowanie paddingu i rozwiązanie poprzedniego problemu z interlinią także odpada.

Informacje i hiperłącza

Blog o projektowaniu zgodnych ze standardami stron internetowych.

Praktyczne przykłady, sztuczki CSS, sposoby obchodzenia błędów przeglądarek, lekki i nieinwazyjny JavaScript, użyteczny design, dostępność i skrypty użytkownika.

RSS

Informacje o wpisie

Napisał riddle 24 lutego 2006 o 10:58

Kategorie: CSS, Standardy sieciowe

Dodaj do:

Wpisy archiwalne

Archiwum miesięczne

Dzięki!

Dodaj bloga do Technorati Favorites Dodaj bloga do Del.icio.us Blog należy do sieci 10przykazań.com

  1. A ja jednej rzeczy wciąż nie kumam. Czym się różni np. :hover od ::hover?

  2. A to jest coś takiego jak ::hover? ;]
    :: oznacza pseudoelementy
    : oznacza pseudoklasy

  3. Ok, dzięki. Zdarzało mi się widywać na różnych stronach napisy ::hover, to taki przykład przytoczyłem ;-)

  4. Eee.. swoją drogą to riddle dziwne problemy ma :D Mi osobiście nie przeszkadzają te oddzielone od siebie linie. Tak na marginesie: czemu używasz p#p01 skoro mógłbyś użyć samego #p01? Wiadomo, że id jest tylko jeden więc to chyba nie ma sensu?

    pozdrowienia

  5. Zwiększona czytelność kodu

  6. W pierwszym akapicie (Firefox 1.5.0.1, Mandriva Linux, Cooker) zaznaczenie nachodzi mi na tekst. Wolę już czytać zaznaczony tekst rozdzielony paskami tła, niż aby ucinało mi jego część.

    Poza tym kwestia zaznaczenia to nie jest taki duży problem (szczególnie do szacunkowej ilości kodu, jaką by trzeba było zmienić) i nie wydaje mi się, żeby szybko to zmieniono.

    Może odpowiedni request by pomógł? :)

Dodaj komentarz

Do formatowania komentarzy używaj Textile (HTML nie działa). Szczególnie jeśli wklejasz większe fragmenty kodu. W razie niepewności użyj podglądu komentarza.

Wypowiedzi obraźliwe, infantylne oraz nie na temat będą moderowane – pisząc postaraj się zwiększyć wartość dyskusji.

Komentarze nie służą do wysyłania wiadomości albo informowania o błędach, itd. Chcesz coś mi napisać – skontaktuj się.