IE8: отключить cleartype? - PullRequest
25 голосов
/ 23 июня 2009

Для IE7 можно добавить

filter: none;

к телу css, чтобы отключить cleartype для шрифтов через CSS. Мне не нравится пушистый вид, который он дает, и он не совсем одинаков во всех браузерах. IE; Firefox и IE6 показывают это по-разному.

Однако IE8, похоже, игнорирует параметр css, даже когда браузер переходит в режим совместимости IE7 с помощью:

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


TL; DR: как отключить шрифты прозрачного типа в IE8 через CSS?

Ответы [ 8 ]

18 голосов
/ 23 июня 2009

Насколько я помню, Internet Explorer 7+ отключает ClearType, когда для элемента установлен фильтр

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

Кроме того, учтите, что многие пользователи могут счесть отключение ClearType раздражающим. Используйте экономно!

16 голосов
/ 23 июня 2009

Вы не можете. ClearType - это пользовательская настройка в браузере. Любой CSS, который отключил бы его для определенных элементов, скорее всего, является ошибкой, а не функцией (я заметил, что он отключается для некоторых динамически генерируемых или анимированных элементов), и на него не следует полагаться.

Какими бы ни были ваши предпочтения в этом отношении, вероятно, не тот пользователь, который видит ваш сайт. Так зачем? Тот, кто не любит ClearType, возможно, уже отключил его.

Примечание: Причина, по которой он работает с фильтрами, заключается в том, что фильтры отображаются не браузером, а чем-то другим (вероятно, DirectX, учитывая наличие там "DX". Я все еще считаю, что сторона -эффект, а не фича).

Примечание 2: Исправлено с IE 9, как и ожидалось. Это действительно битва, которую вы можете только проиграть, как многие говорили вам раньше, за исключением того, что вы не будете слушать.

3 голосов
/ 30 марта 2010

Juliano, body {filter: none} - лучшее, более чистое решение. Использование непрозрачности вызывает проблемы в некоторых ситуациях.

Чтобы ответить всем энтузиастам ClearType - мне тоже нравится ClearType. Я думаю, что это большое продвижение для ЖК-мониторов. Проблема в том, что когда IE пытается использовать ClearType для некоторых конкретных элементов, он выглядит на хуже , чем если бы вы отключили ClearType. К ним относятся элементы, которые исчезли из вида (с использованием javascript), а также импортированные шрифты @ font-face. Если вам нравится ClearType, то вы ненавидите того, что делает IE, когда пытается использовать ClearType в этих ситуациях ... ваш текст выглядит коротким, толстым и безобразным. *

В этих случаях ClearType должен быть удален, если это возможно, для достижения плавных шрифтов, которые вы, ребята, хотите.

3 голосов
/ 23 июня 2009

Не существует CSS-решения для отключения cleartype. Причиной того, что вы могли сделать это в IE7, был побочный продукт того, как браузер отображал текст в элементах, которые использовали фильтры. По-видимому, IE8 справляется с этим лучше, так что вы больше не можете использовать этот хак (по крайней мере, без применения какого-либо фильтра).

Использование cleartype - выбор пользователя, а не то, что вы должны навязывать посетителям. Лично мне очень нравится cleartype, и если бы я зашел на сайт, где он был отключен, я бы подумал, что сайт выглядел действительно дерьмово.

Тот факт, что текст отображается по-разному в разных браузерах и в разных операционных системах, - это то, с чем вам приходится жить. Если вы хотите, чтобы он выглядел одинаково для всех, вы должны сделать его изображением.

1 голос
/ 26 января 2013

Многие люди не слушают меня здесь, я чувствую. @Daniel Sloof все время говорил, что спрашивает, как, не является ли это хорошей идеей. IE - плохая идея, но на самом деле многие люди все еще используют ее старые версии, и из этих людей я бы рискнул предположить, что 90% не знают даже, что такое Clear Type - я уверен, что черт его не знал пока я не начал отлаживать сайты. Они, конечно, не знают, насколько хлам их браузер. Если вы хотите спроектировать гладко функционирующие страницы, которые в IE выглядят так же гладко, как и в веб-наборе, вам нужно время от времени принимать странный взлом, конечно, это не красиво, но это жизнь. На симпатичный сайт больше людей повлияет, чем на красивый код.

@ capnhairdo - боб, когда он говорит и о @ font-face - кто-нибудь из вас тестировал эти шрифты с включенным Clear Type в IE7 и 8? Если бы вы поняли, что многие визуализируются ужасно - как то, что вы обычно получаете с отключенным КТ - это своего рода побеждает объект при выборе хорошего шрифта, и для многих такие как Cufon и Sifr не являются жизнеспособными решениями , Для некоторых из нас хорошо, что вещи выглядят посредственно. Для меня это не так, мой сайт продает мое изображение.

Если вы считаете, что даже Apple заставляет эмулировать IE7 для IE8 на своем сайте, следует подчеркнуть, что на большинство людей действительно не влияют незначительные отклонения от «рекомендуемой практики», вместо этого они замечают гораздо больше сайта, который обеспечивает эстетику дерьма. и едва читаем. Это никому не приносит пользы, и это проблема, которая может возникнуть при включенном CT! Я стремлюсь к как можно большей согласованности и не могу дать то, что должен или не должен делать пользователь IE в этой ситуации. Майкрософт заболел созданием браузеров, которые пытались отклониться от стандартов, чтобы они сами выпустили хаки и исправления, поэтому нам приходится с этим работать. Если это означает использование ошибки для устранения проблемы, то при условии, что она не сильно влияет на производительность, пропускную способность или удобство использования, просто сделайте это! Жизнь слишком коротка, чтобы возиться с цитированием стандартного соответствия, я уважаю аккуратный код и строгую методологию к идеалу, но давай, вы, ребята, так же хороши, как сказали, сами по себе совершенства не существует. Хороший дизайн и конструкция исходит из сбалансированной перспективы. Здесь заканчивается разглагольствование: -P

1 голос
/ 12 июля 2009

Cleartype иногда выглядит глупо в решениях на основе JavaScript / AJAX, но эта тема, возможно, отвечает на этот вопрос, почему некоторые анимации на основе jQuery выглядят неработающими в IE ... поэтому ответ таков: когда JavaScript создает эффект затухания с непрозрачностью (opactiy до 0 из 100 в 1 секунду), затем шрифты cleartype удаляются из элемента, который постепенно исчезает, и анимация выглядит очень плохо.

0 голосов
/ 22 сентября 2010

Вы можете использовать как фильтр MS CSS для элемента, так и по-прежнему включать ClearType для шрифта внутри. Просто добавьте дочерний элемент и установите для его css "position" значение "lative ", и ClearType не будет отключен. Скопируйте следующее и попробуйте.

<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>
0 голосов
/ 28 мая 2010

по некоторым причинам позиционируемые элементы (что-либо внутри {position: родственник}) - не анимированы с непрозрачностью меньше 1.

...