導航:首頁 > 編程語言 > js判斷css是否存在

js判斷css是否存在

發布時間:2025-03-12 16:09:51

A. 怎樣用js判斷各瀏覽器調用各自的css文件

當然可以了,
在頁面里直接這樣寫就行
<!--[if IE]><link type="text/css" rel="stylesheet" href="style_ie.css" /><![endif]-->

具體的文章如下:
條件注釋只能在windows Internet Explorer(以下簡稱IE)下使用,因此我們可以通過條件注釋來為IE添加特別的指令。

通俗點,條件注釋就是一些if判斷,但這些判斷不是在腳本里執行的,而是直接在html代碼里執行的,比如:

<!--[if IE]>
這里是正常的html代碼
<![endif]-->

1,條件注釋的基本結構和HTML的注釋(<!-- -->)是一樣的。因此IE以外的瀏覽器將會把它們看作是普通的注釋而完全忽略它們。
2,IE將會根據if條件來判斷是否如解析普通的頁面內容一樣解析條件注釋里的內容。
3,條件注釋使用的是HTML的注釋結構,因此他們只能使用在HTML文件里,而不能在CSS文件中使用。

可使用如下代碼檢測當前IE瀏覽器的版本(注意:在非IE瀏覽器中是看不到效果的)

<!--[if IE]>
<h1>您正在使用IE瀏覽器</h1>
<!--[if IE 5]>
<h2>版本 5</h2>
<![endif]-->
<!--[if IE 5.0]>
<h2>版本 5.0</h2>
<![endif]-->
<!--[if IE 5.5]>
<h2>版本 5.5</h2>
<![endif]-->
<!--[if IE 6]>
<h2>版本 6</h2>
<![endif]-->
<!--[if IE 7]>
<h2>版本 7</h2>
<![endif]-->
<![endif]-->

那如果當前的瀏覽器是IE,但版本比IE5還低,該怎麼辦呢,可以使用<!--[if ls IE 5]>,當然,根據條件注釋只能在IE5+的環境之下,所以<!--[if ls IE 5]>根本不會被執行。

lte:就是Less than or equal to的簡寫,也就是小於或等於的意思。

lt :就是Less than的簡寫,也就是小於的意思。

gte:就是Greater than or equal to的簡寫,也就是大於或等於的意思。

gt :就是Greater than的簡寫,也就是大於的意思。

! :就是不等於的意思,跟javascript里的不等於判斷符相同

Conditional comments屬於CSS hack? 條件判斷屬於CSS hack嗎?

嚴格地說是屬於CSS hack。因為就好象其他真正的css hack一樣,它使得我們可以給一些瀏覽器賦予特殊的樣式,再則它不依賴於某個瀏覽器的BUG來控制另外一個瀏覽器(的樣式)。除此之外,條件判斷還能用來做一些超出CSS HACK范圍的事情(雖然這種情況很少發生)。

因為條件判斷不依賴於某個瀏覽器的hack,而是一個經過深思熟慮的特色功能,所以我相信它是可以被放心地使用的。當然,其他瀏覽器也有可能支持條件判斷(到目前為止還沒有),但是看起來,他們應該不會使用如<!--[if IE]>這樣的語法。

應該如何應用條件注釋

本文一開始就說明了,因為IE各版本的瀏覽器對我們製作的WEB標準的頁面解釋不一樣,具體就是對CSS的解釋不同,我們為了兼容這些,可運用條件注釋來各自定義,最終達到兼容的目的。比如:

<!-- 默認先調用css.css樣式表 -->
<link rel="stylesheet" type="text/css" href="css.css" />

<!--[if IE 7]>
<!-- 如果IE瀏覽器版是7,調用ie7.css樣式表 -->
<link rel="stylesheet" type="text/css" href="ie7.css" />
<![endif]-->

<!--[if lte IE 6]>
<!-- 如果IE瀏覽器版本小於等於6,調用ie.css樣式表 -->
<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]-->

這其中就區分了IE7和IE6向下的瀏覽器對CSS的執行,達到兼容的目的。同時,首行默認的css.css還能與其他非IE瀏覽器實現兼容。

注意:默認的CSS樣式應該位於HTML文檔的首行,進行條件注釋判斷的所有內容必須位於該默認樣式之後。

比如如下代碼,在IE瀏覽器下執行顯示為紅色,而在非IE瀏覽器下顯示為黑色。如果把條件注釋判斷放在首行,則不能實現。該例題很能說明網頁對IE瀏覽器和非IE瀏覽器間的兼容性問題解決。

<style type="text/css">
body{
background-color: #000;
}
</style>
<!--[if IE]>
<style type="text/css">
body{
background-color: #F00;
}
</style>
<![endif]-->

同時,有人會試圖使用<!--[if !IE]>來定義非IE瀏覽器下的狀況,但注意:條件注釋只有在IE瀏覽器下才能執行,這個代碼在非IE瀏覽下非單不是執行該條件下的定義,而是當做注釋視而不見。

正常就是默認的樣式,對IE瀏覽器需要特殊處理的,才進行條件注釋。

B. CSS和Js的問題

css通常是放在head中。js要看具體情況。

html的解析是從上到下的,當網速很慢的情況下,你把css文件放html最底下的話,網頁一點一點的載入頁面上的表格、Div、Flash、圖片等元素,這些東西最開始顯示不出你定義的css樣式(因為還沒讀取到最下面引用的css),直到瀏覽器在最後讀取完最下面的css文件後才能把樣式顯示出來,這樣給瀏覽者的體驗就不好。

js一般也是放在head裡面,但有時候要放到body區域或是html最後:

1.例如一個js腳本,功能是取得頁面上一個id為list的ul列表,並對其設置執行某個操作。
假如這個js裡面沒有設置一個檢查list元素是否已經載入的機制,那麼這個js直接放到head區域的時候,當瀏覽器載入到js就開始執行了,而list這個ul元素在body裡面,比js後載入,js執行時還沒取到ul列表就開始執行就出錯了。所以這個js要放到list元素的後面引用。網上很常見那個上下左右不間斷循環滾動圖片的js就存在這個問題。

2.js放在html最後的情況
某些js功能並不重要,其本身不載入不影響頁面功能或美觀。比如一些網站訪問量統計代碼,通常都會給你一段js要求你加入到網頁中就能統計你網站瀏覽、訪客ip等。這種js就可以放在網頁最底下。因為是引用的第三方網站,在前面載入的話會影響你網頁的整體呈現速度,把它放最下面,你網頁都呈現給客戶了,再來調用這個拖網速的js也不遲。

C. css 多行文本溢出 js判斷是否有省略號

先不給 文本加溢出有省略號在CSS;
給文本加行高 用js取文本總高度 如果大於 行高就表示有 再加個溢出有省略號CSS

D. js 設置css樣式

javascript改變CSS樣式分為局部和全局,分別如下:一、局部改變樣式有三種方法:直接改變樣式、改變className和改變cssText改變className: document.getElementById('obj').className="…"改變cssText:document.getElementById('obj').style.cssText="width:20px; border:solid 1px #f00;";改變直接樣式: document.getElementById('obj').style.backgroundColor="#003366″二、全局改變樣式通過改變外鏈樣式的的href的值實現網頁樣式的實時切換,也就是"改變模板風格"。首先需要賦予需要改變的目標一個id,如代碼如下:link rel="stylesheet" type="text/css" id="css" href="firefox.css" /調用時很簡單,如代碼如下:span onclick="javascript:document.getElementById('css').href='ie.css'"點我改變樣式/span

閱讀全文

與js判斷css是否存在相關的資料

熱點內容
智能控制webui界面程序 瀏覽:723
臨汾哪裡有學計算機編程 瀏覽:130
qq跳過申訴修改密碼 瀏覽:462
給文件夾加密win10 瀏覽:710
哪個app可以分辨航母 瀏覽:537
哪個app是英英詞典 瀏覽:23
javavoid參數 瀏覽:829
如何讓編程具有記憶功能 瀏覽:435
javamail發送帶附件的郵件 瀏覽:173
微信分享文件到其他軟體 瀏覽:682
微信對話文件夾在哪 瀏覽:287
qq頭像歐美范街頭男生 瀏覽:321
毛孔app 瀏覽:880
照片級渲染教程 瀏覽:304
目錄中的文件夾有什麼用 瀏覽:177
車載u盤文件掃描 瀏覽:410
稻殼文檔怎樣改文件名 瀏覽:620
cad怎麼把文件存成模板 瀏覽:250
編程設計用什麼筆記本流暢 瀏覽:584
電腦突然打開文件很慢 瀏覽:501

友情鏈接