2009-08-04 80 views
2

這聽起來像一個愚蠢的問題(對我而言),但我已經搜索過,而且我找不到任何可以談論它的地方。代理集的媒體類型在哪裏?它是由瀏覽器(或其他)進行硬編碼還是可配置的(特別是IE)?設置瀏覽器的媒體類型

我問,因爲我正在編寫一個網絡應用程序,它將主要用於普通電腦,但也會有一些上網本使用它。但是,這些上網本將運行XP,這似乎被檢測爲一個正常的Windows瀏覽器,但對於某些頁面,我希望他們使用不同的CSS(主要用於較大的字體類型),所以我希望將它們設置爲手持設備,然後在我的CSS上點擊相應的頁面(擁有它們的用戶也將從普通PC登錄,因此用戶不能檢測類型)。

還是有更好/更正確的方式做到這一點?

+0

對於任何人在看這個問題,看起來像這樣無法做到的。 我不想看屏幕大小,因爲這意味着我不得不寫條件來加載正確的CSS表單,而媒體類型會自動處理。 我已經結束了在用戶代理中的條目 – 2009-09-24 13:36:45

回答

0

我正在ASP.NET中工作,使CSS可縮放不是一個選項 - 大多數屏幕將會是原樣,但對於一個屏幕布局將需要不同的上網本所以在這種情況下,用戶將不得不放大一個頁面,然後再放出其他頁面,顯然,這不是一個好的解決方案(加上實際的CSS將會不同,而不僅僅是縮放級別 - 只有某些元素'字體將被放大,例如)。問題是,客戶端將被視爲「正常」的Windows客戶端 - Mozilla/4.0(兼容; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3) (如果有人想知道,三叉戟部分只是IE8說它是IE8,如果它僞裝成IE7),所以我需要改變客戶展現自我的方式。最簡單的(理論上)這樣做的方法是將它們配置爲不同的媒體類型,這樣它們將自動加載正確的CSS,而不需要服務器端的操作,但它只是知道如何做到這一點。

理論上,如果這是不可能的,我會感到非常驚訝,或者它會使不同的媒體類型成爲一場噩夢,除非你有實際的設備可用並且接近手,但是在網上看起來似乎是這樣是這樣的(當然某人會在瀏覽器中放置一個選項,在那裏你可以設置它支持的媒體類型????)。

0

通常,基於用戶代理服務頁面是由Web應用程序Web服務器處理,或者很少由某些JavaScript處理。如果您列出您正在使用的語言/框架,可以提供更多幫助。

更改客戶端上的用戶代理屏幕通常不是個好主意。設計你的CSS是可擴展的,並允許縮放。

1

最簡單的方法是使用Javascript檢測用戶的屏幕分辨率:screen.widthscreen.height。如果它太小,請採取適當的措施,例如改用移動樣式表。沒有辦法檢測到某人正在使用的確切設備。

0

HTTP頭的「用戶代理」是瀏覽器如何告訴Web服務器它是什麼類型的瀏覽器。它也可以包含操作系統和版本。在最常見的情況下,這些值是正確的指示。我們可以利用這些信息在服務器端創建適合瀏覽器的合適html/css(即移動設備,IE6等)。

一些框架例如ASP.NET具有某種形式的瀏覽器功能來「適應」html輸出(儘管我不相信)。

我想不出一種更好的方式來做別的。對於屏幕尺寸檢測,javascript檢測應該可以正常工作,但是除非您有某種可以以AJAX方式呈現輸出的實現形式,否則在佈局和字體大小方面沒有多大幫助。不可能非常複雜。

這裏沒有太多的答案,只是希望它可以促進更多的想法。