2009-06-23 22 views
25

Dla IE7 jest możliwe dodanieIE8: Dezaktywować typ kodu?

filter: none; 

do css ciała, aby wyłączyć ClearType na czcionek poprzez CSS. Nie podoba mi się ten niewyraźny wygląd, który nie jest spójny w różnych przeglądarkach. TO ZNACZY; Firefox i IE6 pokazują to inaczej.

IE8 jednak wydaje się ignorować opcję CSS, nawet gdy zmusza przeglądarkę w trybie zgodności IE7 za pomocą:

<meta http-equiv="X-UA-Compatible" content="IE=7" /> 


TL; DR: Jak wyłączyć czcionek jasne typu w IE8 za pomocą CSS ?

http://oi42.tinypic.com/23mlmiu.jpg

+17

Do downvoters: Moje pytanie nie było, czy to był dobry pomysł, aby wyłączyć cleartype - możesz zostawić to do własnego punktu widzenia. Pytanie brzmiało: JAK to zrobić. –

+13

Czy podoba ci się, gdy Twoja przeglądarka zostanie przejęta? Kiedy rozmiar okna zostanie zmieniony? Kiedy pojawi się spam z wyskakującymi okienkami?Kiedy pasek adresu jest wyłączony? Jest to klasyczny przypadek myślenia, że ​​wiesz lepiej, gdy wyraźnie nie masz prawa lub wcale nie musisz z tym mieszać. Zastanów się na odwrót - co by było, gdyby strona internetowa wymusiła włączenie cleartype? –

+2

Nie odrzucam, ponieważ uważam, że jest to interesujące pytanie. Jednak jeśli nie tworzysz strony wyłącznie dla siebie, dlaczego chcesz zastąpić ustawienia ClearType użytkownika? – RichardOD

Odpowiedz

18

Z tego co sobie przypominam, Internet Explorer 7+ wyłącza ClearType, gdy filtr jest ustawiony na elemencie

#target { 
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=99)"; 
    filter:progid:DXImageTransform.Microsoft.Alpha(opacity=99); 
} 

Również uważamy, że wielu użytkowników może znaleźć wyłączenie ClearType być denerwujące. Używaj oszczędnie!

+0

Idealny. Czy działa również z opcją -ms-filter: none; filtr: brak; także? ponieważ to chyba bardziej poprawne. – rpetrich

+0

Niestety, nie. –

+0

Ach, szkoda. Jak się wydaje, oznaczenia wydają się trochę brzydkie. Dodałem także ostrzeżenie, aby powstrzymać spadkowców :) – rpetrich

16

Nie możesz. ClearType to ustawienie użytkownika w przeglądarce. Każdy kod CSS, który wyłącza go dla pewnych elementów, jest najprawdopodobniej błędem, a nie funkcją (zauważyłem, że jest on wyłączany w przypadku niektórych dynamicznie generowanych lub animowanych elementów) i nie należy na nim polegać.

Niezależnie od preferencji w tym zakresie prawdopodobnie użytkownik nie widzi Twojej witryny. Więc po co zawracać sobie głowę? Ktokolwiek nie lubi ClearType, prawdopodobnie już go wyłączył.

Uwaga: Powodem, dla którego działa z filtrami, jest to, że filtry nie są renderowane przez przeglądarkę, ale coś innego (prawdopodobnie DirectX, biorąc pod uwagę "DX" w. Wciąż uważam, że efekt uboczny, a nie funkcja).

Uwaga 2: Stała od IE 9, zgodnie z oczekiwaniami. To naprawdę bitwa, którą można przegrać, o czym wielu już wcześniej mówiła, z wyjątkiem tego, że nie posłuchacie.

+5

Tak, zostawiasz mój ClearType w spokoju! – Benjol

+5

Rozumiem twoje obawy, ale chociaż konstruktywne, to nie jest odpowiedź na to pytanie. (a także źle jeśli chodzi o niemożność zrobienia tego w IE8). –

+7

To odpowiedź najlepiej pokazuje zrozumienie tego, co się dzieje. Nawet jeśli uda ci się znaleźć inny hack IE8, istnieje szansa, że ​​hack zostanie również naprawiony w IE9. Walczysz w bitwie, której nie możesz wygrać. Jeśli chcesz uzyskać doskonałe renderowanie w pikselach, podaj PNG i zapomnij o aplikacji Opera Mobile. – MSalters

3

Nie ma żadnego rozwiązania CSS do wyłączenia typu cleartype. Powód, dla którego można to zrobić w IE7, był biproduktem tego, jak przeglądarka renderowała tekst w elementach, które używały filtrów. Wygląda na to, że IE8 radzi sobie z tym lepiej, więc nie możesz już używać tego hackowania (przynajmniej nie bez zastosowania filtra).

Użycie cleartype jest wyborem użytkownika, a nie czymś, co należy narzucić odwiedzającym. Osobiście bardzo podoba mi się cleartype, a gdybym odwiedził stronę, na której został on wyłączony, sądziłbym, że strona wygląda naprawdę nieudolnie.

Fakt, że tekst jest renderowany inaczej w różnych przeglądarkach i różnych systemach operacyjnych jest czymś, z czym trzeba żyć. Jeśli chcesz, aby wyglądał dokładnie tak samo dla wszystkich, musisz zrobić z tego obraz.

+0

Dlaczego upadek? Jeśli nie powiesz tego, czego ci się nie podoba, to całkiem bezużyteczne ... – Guffa

+0

Czy to prawda, że ​​IE8 naprawia "pop" ClearType podczas efektów takich jak zanikanie? Byłoby świetnie. Nigdy nie zrozumiałem, dlaczego IE nie może tego naprawić, gdy inne przeglądarki wydawały się dobrze działać w systemie Windows. – Nosredna

+2

Całkowicie uzgodnione. Po co martwić się o IE7/8/9, kiedy inna przeglądarka lub system operacyjny zrobi to zupełnie inaczej? Tekst na OS X nie będzie wyglądał tak, jak tekst w systemie Windows nie będzie wyglądał jak tekst w systemie Linux. Próba uczynienia wyświetlania tekstu pikselem doskonałym jest ćwiczeniem daremności. – deceze

1

Cleartype czasami wygląda głupio w rozwiązaniach opartych na JavaScript/AJAX, ale ten temat pozwala odpowiedzieć na to pytanie, dlaczego niektóre animacje oparte na jQuery wyglądają na uszkodzone w IE .. więc odpowiedź jest taka, że ​​gdy JavaScript robi efekt zacierania z opacity (opactiy to 0 od 100 na 1 sekundę), a następnie czcionki czcionek są usuwane z elementu, który zanika, a animacja wygląda cholernie gówno.

3

Juliano, body {filter: none} to lepsze, czystsze rozwiązanie. Używanie nieprzezroczystości powoduje problemy w niektórych sytuacjach.

Aby odpowiedzieć wszystkim entuzjastom ClearType - też lubię ClearType. Uważam, że jest to duży postęp dla monitorów LCD. Problem polega na tym, że gdy IE próbuje użyć ClearType na niektórych elementach, wygląda na to, że jest ono gorsze niż w przypadku wyłączenia ClearType. Należą do nich elementy, które są wyblakłe do widoku (przy użyciu javascript), jak również zaimportowane czcionki @ font-face. Jeśli jesteś jak ClearType, to masz zamiar nienawidzić co robi IE, gdy próbuje użyć ClearType w tych sytuacjach ... Twój tekst wygląda na grube, grube i brzydkie.

W takich przypadkach ClearType należy usunąć, jeśli to możliwe, aby uzyskać gładkie czcionki, które chcesz.

0

jakiegoś powodu umieszczone elementy (wszystko wewnątrz {pozycji: względne}) - nie jest animowana wag/nieprzezroczystość mniej niż 1.

0

może mieć zarówno filtr MS CSS na elemencie i nadal umożliwić ClearType na czcionce wewnątrz. Po prostu dodaj element potomny i ustaw jego pozycję "css" na "względną", a metoda ClearType nie zostanie wyłączona. Skopiuj poniższe i wypróbuj.

<style> 
#parent{ 
    background-color:white; 
    filter:progid:DXImageTransform.Microsoft.Shadow(color=#000000,direction=180,strength=2); 
    position:relative; 
    border:solid 1px black; 
    padding:10px; 
    width:500px; 
} 
#child{ 
    position:relative; /*THIS SOLVED THE CLEARTYPE DISABLING PROBLEM IN BOTH IE7 & IE8*/ :) 
} 
</style> 

<div id="parent"> 
    <div id="child">This text should always be smooth</div> 
</div> 
1

Jest wiele osób, których tutaj nie słucham. @ Daniel Sloof powiedział od początku, że pyta, jak, nie, czy to dobry pomysł. IE to zły pomysł, ale faktem jest, że wiele osób nadal używa starszych wersji tego i tych osób, które zaryzykuję przypuszczenie, że 90% nie wie nawet, co to jest Clear Type - na pewno nie do diabła dopóki nie zacząłem debugowania stron. Z pewnością nie są świadomi tego, jak banalnie są ich przeglądarki. Jeśli chcesz zaprojektować gładkie, funkcjonujące strony, które wyglądają tak gładko w IE, jak to się dzieje w webkicie, musisz od czasu do czasu objąć dziwny hak, z pewnością nie jest to ładne, ale takie jest życie. Większość osób będzie pod większym wpływem ładnej witryny niż ładnego kodu.

@capnhairdo jest na bob, gdy mówi również o @ font-face - czy ktokolwiek z was faktycznie przetestował te czcionki z włączonym Clear Type w IE7 i 8? Gdybyś zdał sobie sprawę, że wiele z nich jest przerażających - jak to, co normalnie uzyskałbyś z wyłączonym CT - rodzaj pokonania obiektu przy wyborze ładnej czcionki w pierwszej kolejności i dla wielu takich jak Cufon i Sifr nie są opłacalne rozwiązania . Dla niektórych z nas jest ok, bo wygląda na przeciętnego. Dla mnie nie jest, moja witryna sprzedaje mój obraz.

Jeśli weźmiesz pod uwagę, że nawet Apple wymusza emulację IE7 na IE8 na swojej stronie, powinno to podkreślić, że większość ludzi naprawdę nie ma wpływu na niewielkie odchylenia od "zalecanej praktyki", zamiast tego zauważają znacznie więcej stron, które dostarczają bzdur. estetyczny i ledwie czytelny. To nie robi nikomu żadnej przysługi i jest problemem, który może wystąpić z CT na! Dążę do jak największej spójności i nie mogę dać rzeczy, których użytkownicy IE powinni i nie powinni mieć w tej sytuacji. Microsoft zapełnił się tworzeniem przeglądarek, które próbowały odejść od standardów, że same wydały hacki i poprawki, więc musimy z tym pracować. Jeśli oznacza to wykorzystanie błędu do rozwiązania problemu, to nie ma to większego wpływu na wydajność, przepustowość czy użyteczność. Życie jest zbyt krótkie, by zafascynować się powoływaniem się na standardową zgodność, szanuję czysty kod i surową metodologię do ideału, ale chodźcie, macie tyle samo, co powiedzieliście, że doskonałość nie istnieje. Dobry projekt i konstrukcja pochodzi ze zrównoważonej perspektywy. Tutaj kończy się rant :-P