2009-06-03 53 views
23

我需要做的鉻/歌劇黑客由於客戶端要破壞的東西的字體替換腳本......這是可悲的,但一切工作在IE6-7,FF2-3和Safari。我無法修復腳本本身,只能使用CSS和HTML對其進行修改。如何製作Chrome/Opera特定的樣式表?

我想要做的東西線:

<!--[if IE 6]> 
    <link rel="stylesheet" href="ie6.css" type="text/css" media="screen" /> 
<![endif]--> 

這可能嗎?

我看到這樣的鍍鉻具體修復像這樣:

body:nth-of-type(1) .elementOrClassName 
{ 
/* properties go here */ 
} 

這方面的工作?有一種更簡單的方法嗎? Opera呢?

謝謝!

+3

我愛你可以在JavaScript 識別歌劇如果(window.opera){/ *歌劇具體行動* /} 也許你可以用它來添加特定樣式的方式。 我不瞭解谷歌瀏覽器。 – 2009-06-03 15:38:59

+0

謝謝,如果我不能找出一種方法來做特定的CSS,這將有助於 – marcgg 2009-06-03 15:44:51

+0

爲什麼你不能亂用JavaScript?如果您無法觸摸JavaScript文件,您可以使用自己的代碼覆蓋一個函數或兩個函數嗎? – Nosredna 2009-06-03 16:02:49

回答

38

乾淨JavaScript的方式做到這一點:http://rafael.adm.br/css_browser_selector/

它的廣告針對特定瀏覽器類到HTML的body標籤,你可以在你的CSS一樣使用:

.opera #thingie, .chrome #thingie { 
    do: this; 
} 

希望這有助於。

3

我沒有測試過該方案,但根據this blog entry,你可以嘗試爲Chrome如下:

if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) 
{ 
    var chromeCss = document.createElement("link"); 

    chromeCss.rel = "stylesheet"; 
    chromeCss.href = "ChromeStyle.css"; 

    document.getElementsByTagName("head")[0].appendChild(chromeCss); 
} 
+0

他說他只能觸摸HTML和CSS,而不是JavaScript。 – Nosredna 2009-06-03 16:01:58

11

爲谷歌(和Safari),你可以簡單地使用下面的;

<link rel="stylesheet" href="style-sheet_chrome.css" type="text/chrome/safari" /> 

這將加載webkit特定的樣式表。 '類型'可以任意命名,但必須包含。

您只需按照自己的意願創建樣式表,並且所有非webkit瀏覽器都會忽略它。

你必須使用上面的Opera的黑客。以下工作最適合我:

@media not screen and (1) 
    { 
    #example 
    { 
    width: 200px; 
    } 
} 

我用它來加載瀏覽器特定的@ font-face聲明。

0

只要記住:「用戶代理嗅探是baaaddd」

這不,絕不會是一個很好的做法。

這只是一個痛苦的屁股來維護一個網站的User-Agent嗅探實施。

如果數量較少或者沒有時間製作多個樣式表,您應該更喜歡獨立的樣式表或css hacks。

對於Opera,您可以使用這一招:

@media all and (-webkit-min-device-pixel-ratio:10000), 
    not all and (-webkit-min-device-pixel-ratio:0) { 
    #id { 
     css rule; 
    } 
} 

而且可悲的是,每一個瀏覽器CSS黑客也applyed Safari瀏覽器。

有沒有辦法分出2個效果圖除外舊版本的Safari(< = safari3如果我記得很清楚)

2

.IE - 的Internet Explorer(所有版本)
.ie10 - Internet Explorer的10.x的
.ie9 - Internet Explorer 9.x
.ie8 - Internet Explorer 8.x
.ie7 - Internet Explorer 7.x
.ie6 - Internet Explorer 6.x
.ie5 - Internet Explorer 5.x
.gecko - Firefox (所有版本),Camino,SeaMonkey
.ffxx - Firefox xx(更改xx與特定版本號)new
.ff4 - Firefox 4.x
.ff3 - Firefox 3.x
.ff2 - Firefox 2.x
.opera - Opera(所有版本)
.opera12 - Opera 12.x
.opera11 - Opera 11.x
.opera10 - 系統的Opera 10.x
.opera9 - 的Opera 9.x
.opera8 - 歌劇8.x的
.konqueror - Konqueror的
.webkit - Safari瀏覽器,NetNewsWire裏面找到,了OmniWeb,Shiira,谷歌Chrome
.chrome - 谷歌瀏覽器(所有版本)
.chromexx - Chrome xx(更改xx和特定版本號)新
.safari - Safari(所有版本)新
.iron - SRWare Iron

。[OS code]。[瀏覽器代碼] .yourclass {padding-left:5px; font-size:14px}

body {background-color:#000}
.ie8 body {background-color:#111}(具體用於Internet Explorer 8.x)
.win.ie8 body {background-color:# (適用於Internet Explorer 8.x,適用於所有版本的Microsoft Windows)
.opera body {background-color:#333}(Opera所有版本)
.ff15 body {background-color:#444} 15.x)
.linux.gecko body {background-color:#555}(Firefox,Camino,SeaMonkey所有版本,在x11和Linux上)

.ie7 #right,.ie7 #left {width:320px}

欲瞭解更多信息,請訪問這裏NK http://cssbs.altervista.org/