2009-06-23 49 views
25

對於IE7,有可能IE8:禁用cleartype?

filter: none; 

補充人體CSS對字體的ClearType禁用通過CSS。我不喜歡它給出的模糊外觀,並且它在瀏覽器中並不一致。 IE瀏覽器; Firefox和IE6以不同的方式展示它。然而,

IE8似乎忽視了CSS選項,迫使瀏覽器,即使到IE7兼容模式下使用:

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


TL; DR:我如何在IE8通過CSS禁用清晰型字體?

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

+17

對於downvoters:我的問題不是如果禁用cleartype是一個好主意 - 你可以把它留給我自己的考慮。問題是如何去做。 – 2009-06-23 09:44:17

+13

當你的瀏覽器被劫持時,你喜歡它嗎?當窗口調整大小時?當你彈出垃圾郵件時?當地址欄被禁用?這是一個經典的例子,當你明顯沒有權利或者根本不需要搞亂它的時候,你會認爲自己更清楚。考慮相反的情況 - 如果一個網站強制使用cleartype,該怎麼辦? – 2009-06-23 09:52:00

+2

我不低調,因爲我認爲這是一個有趣的問題。但是,除非您專門爲自己創建網站,否則您爲什麼要覆蓋用戶的ClearType設置? – RichardOD 2009-06-23 09:56:16

回答

18

從我記得,當過濾器設置元素

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

另外在Internet Explorer 7+關閉ClearType的,也考慮到許多用戶可能會發現禁用的ClearType是煩人。謹慎使用!

16

你不能。 ClearType是瀏覽器上的用戶設置。任何可以禁用某些元素的CSS都可能是一個bug,而不是一個功能(我注意到它對於某些動態生成或動畫元素被禁用)並且不應該依賴。

無論你在這方面的偏好是可能不是用戶的人誰看到你的網站。那爲什麼要麻煩?不喜歡ClearType的人可能已經禁用了。

注意:它與過濾器一起工作的原因是,過濾器不是由瀏覽器呈現,而是其他內容(DirectX可能,考慮到「DX」在那裏,我仍然認爲副作用,而不是一個功能)。

注2:如預期的那樣固定在IE 9以上。這是一場你只能失敗的戰鬥,正如許多人之前告訴你的,除非你不聽。

3

沒有CSS解決方案來禁用cleartype。您可以在IE7中完成這個工作的原因是瀏覽器在使用過濾器的元素中呈現文本的一個副產品。出乎意料的是IE8更好地處理了這個問題,所以你不能再使用這個黑客(至少在沒有實際應用某種過濾器的情況下)。

cleartype的使用是用戶的選擇,而不是你應該強加給訪問者的東西。就我個人而言,我非常喜歡cleartype,如果我訪問了一個禁用網站的網站,我會認爲該網站看起來非常糟糕。

在不同的瀏覽器和不同的操作系統中,文本呈現不同的事實是您必須忍受的事情。如果你想讓它看起來完全一樣,你必須把它變成一個圖像。

1

Cleartype在JavaScript /基於AJAX的解決方案中有時看起來很愚蠢,但是這個主題可能回答了這個問題,爲什麼一些基於jQuery的動畫看起來在IE中被打破了..所以回答是,當JavaScript使用淡入淡出效果(opactiy爲0從100秒1秒的持續時間),然後cleartype字體從元素淡出和動畫看起來是血腥的狗屎。

3

Juliano,body {filter:none}是一個更好,更乾淨的解決方案。在某些情況下使用不透明度會導致問題。

要回答所有的ClearType愛好者 - 我也喜歡ClearType。我認爲這對LCD顯示器來說是一個巨大的進步。問題是,當IE試圖在某些特定元素上使用ClearType時,它看起來更糟比如果您禁用了ClearType。其中包括淡入視圖(使用javascript)以及導入的@ font-face字體的元素。如果你喜歡 ClearType,那麼你會去討厭當它試圖在這些情況下使用ClearType時,IE會做些什麼......你的文本看起來矮胖,肥胖和醜陋。

在這些情況下,如果可能的話,應該刪除ClearType以獲得您想要的平滑字體。

0

出於某種原因定位元素(任何內部{位置:相對}) - 未/不透明度動畫瓦特小於1

0

可以同時擁有一個元件上的MS CSS濾波器和仍然使ClearType上的字體。只需添加一個子元素並將其css「位置」設置爲「相對」,並且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> 
1

有很多人不在這裏聽我的感覺。 @丹尼爾斯洛夫說,他一直在問,如何,而不是這是一個好主意。 IE瀏覽器是一個不錯的主意,但事實是很多人仍然使用它的舊版本和那些人,我會冒險猜測,90%甚至不知道甚至知道Clear Type是什麼 - 我當然不知道直到我開始調試網站。他們當然不知道他們的瀏覽器是多麼垃圾。如果你想在IE中設計平滑運行的頁面,看起來像在webkit中一樣光滑,你必須不時地接受奇怪的黑客攻擊,確保它不漂亮,但這就是生活。大多數人會比漂亮的代碼更受漂亮網站的影響。

@capnhairdo在說@ font-face的時候也很喜歡 - 你們有沒有在IE7和8中啓用清除類型來測試這些字體?如果你已經意識到很多東西都會變得可怕 - 比如你在禁用CT的時候通常會得到的東西 - 首先選擇一個不錯的字體就會擊敗對象,而對於Cufon和Sifr等很多喜歡的解決方案來說都不是可行的解決方案。對我們中的一些人來說,它看起來很平庸。對我來說不是,我的網站銷售我的形象。

當你考慮甚至蘋果在他們的網站上強制IE7模擬IE8時,它應該強調大多數人真的不會受到「推薦做法」的微小偏差的影響,相反他們注意到更多的網站提供廢話美學和幾乎不可讀。這對任何人都沒有任何好處,並且是CT上可能發生的問題!我努力爭取儘可能多的一致性,並且無法給出一個IE用戶在這種情況下應該做什麼和不應該做什麼的選擇。微軟因試圖偏離標準的瀏覽器而陷入困境,他們自己發佈了黑客和修補程序,因此我們必須使用它。如果這意味着利用錯誤來解決問題,那麼提供它不會對性能,帶寬或可用性產生很大影響,那就做吧!人生太短暫,無法圍繞引用標準符合性,我尊重整齊的代碼和嚴格的方法論來理想,但來吧,你們說的完美無缺。良好的設計和施工來自平衡的角度。這裏強調:-P