欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript解決常見瀏覽器兼容問題的12種方法

 更新時間:2010年01月04日 21:43:08   作者:  
我們提倡盡可能使用CSS,而且我們常常能做到這一點。現(xiàn)代瀏覽器有很好的CSS支持-這無疑足夠好讓你使用CSS來控制布局和版面設(shè)計。但是有時候,某些網(wǎng)頁元素在不同的瀏覽器會出現(xiàn)不同。
如果你不知道原因,不要過于擔(dān)心,請研究CSS規(guī)則并查看這篇文章:使用CSS來修正一切: 20 +常見錯誤和修復(fù)。
如果這些也無效,您可以通過下面列出的12個javascript解決方案修復(fù)它,這樣您的網(wǎng)頁看起來就能跨越所有瀏覽器了!
在本文中,我們會揭開你在開發(fā)web應(yīng)用是可能會遇到的12個最常見的CSS問題的javascript解決方案。
1. 自動匹配高度

javascipt-自動匹配高度

自從我們拋棄了基于Table的頁面布局后,創(chuàng)建同等高度欄目或內(nèi)容盒子的視覺效果已然是一個挑戰(zhàn)。

1.1 用jQuery設(shè)置匹配高度

這個jQuery插件在同一個容器里“平衡”盒子的高度并創(chuàng)造一個簡介的網(wǎng)格——幾乎從可用性和性能的角度使用簡單的JavaScript替代: equalHeights()函數(shù)測定一個容器里的所有同級元素同容器的高度,然后設(shè)置每個元素的最低高度為最高的元素的高度。

如何工作

equalHeights()通過循環(huán)測定指定元素的最高級別的子節(jié)點,然后設(shè)置他們的最小高度值為最高的元素的高度。

點擊這里預(yù)覽效果

1.2 用jQuery匹配欄目高度

jQuery的另一個可以使盒子的高度相等的插件

$(“#col1, #col2″).equalizeCols();

將如你所想的那樣匹配高度

$(“#col1, #col2″).equalizeCols(“p,p”);

匹配這兩卷,并在#col1或#col2(短的那個)里的P標(biāo)簽后面添加空白.
2. IE6 PNG透明支持

IE6以下的版本不支持png透明。使用hack,IE 5.5和6也已經(jīng)可以支持,但hack并不理想的且難以使用。讓我們來看看我們能做些什么來支持IE6用戶 ,同時為網(wǎng)站的大多數(shù)訪客帶來最佳的透明效果。

2.1 強(qiáng)制IE6支持透明

IE7的是一個Dean Edwards建立的JavaScript庫,以強(qiáng)迫MSIE(IE6,IE5)表現(xiàn)的像一個兼容標(biāo)準(zhǔn)的瀏覽器。它修復(fù)許多CSS問題并使透明PNG在IE6和IE5下正常工作,它還允許高級的CSS選擇器。

點擊查看預(yù)覽效果
點擊下載源文件

2.2. 改良iFixPng

javascript-IE6-透明圖片

修正IE6及以下的PNG圖片的問題,IMG標(biāo)簽和CSS背景圖片都可以。這個插件是對原始iFixPng插件的一種改進(jìn)。特點包括:圖像或有背景圖片的標(biāo)簽,現(xiàn)在支持background-position,其中包括IE瀏覽器的絕對定位的修正。(bottom: -1px || bottom: 0px)

點擊查看預(yù)覽效果
點擊這里下載源文件

3. 用Javascript改變class

這是一個方便的JavaScript函數(shù),可以在當(dāng)前的文件的任何元素的class由oldClass改為newClass。這是特別有用的快速的利用CSS而不是用編碼改變風(fēng)格。

function changeClass(oldClass, newClass) {
      var elements = document.getElementsByTagName(“*”);
      for( i = 0; i < elements.length; i++ ) {
            if( elements[i].className == oldClass ) elements[i].className = newClass;
      }
}

點擊查看預(yù)覽效果
點擊下載源文件

4. CSS瀏覽器選擇器

如果您可以只需鍵入一個特殊選擇器,在這里您可以寫一些JavaScript ,設(shè)置一個Class在基于當(dāng)前的瀏覽器的名字的標(biāo)簽會怎么樣?

javascript-css-選擇器

4.1 CSS Browser

這是一個非常小的javascript只有一行,而且不到1kb,它允許CSS選擇器。它讓您可以為每個操作系統(tǒng)和每個瀏覽器寫具體的CSS代碼。你可以寫一些JavaScript ,設(shè)置Class的名字,也就是說,內(nèi)容根據(jù)當(dāng)前的瀏覽器。

點擊查看預(yù)覽效果
點擊下載源文件

jQuery 瀏覽器選擇器

這里有另外一個基于jQuery的非常簡單的處理瀏覽器選擇器的方法,你需要做的只是加載jQuery庫文件,并添加下面的一塊兒代碼。

$(document).ready(function(){
$(‘html').addClass($.browser);
});

現(xiàn)在你可以準(zhǔn)備你的樣式,如.msie,.mozilla, .opera, .safari 或其它目標(biāo)瀏覽器。

點擊查看預(yù)覽效果

5. 最小/最大 高度/寬度支持

針對CSS min-width, min-height, max-width, max-height, border-*-width, margin, 和padding 屬性,這里有一些很好的jQuery修正。

5.1 jQMinMax

這是一個為沒有原聲的支持min-width, max-width,min-height和max-height的地方添加支持的jQuery插件。

點擊查看預(yù)覽效果
點擊下載源文件

5.2 JSizes

這個小jQuery插件為CSS min-width, min-height, max-width, max-height, border-*-width, margin, 和padding 屬性添加支持。特別是他提供一種方法來確定一個元素在那里可見。由于所有的型號的方法返回數(shù)值,所以這些也可以安全的使用在嚴(yán)格的DOM元素方面。

jQuery(function($) {
     var myDiv = $(‘#myDiv');

     // set margin-top to 100px and margin-bottom to 10em
     myDiv.margin({top: 100, bottom: ‘10em'});

     // displays the size of the top border in pixels
     alert(myDiv.border().top);

     // displays true if the element is visible, false otherwise
     alert(myDiv.isVisible());

     // set padding-right to 10px and margin-left to 15px using chaining
     myDiv.padding({right: 10}).margin({left: 15});
});

點擊查看預(yù)覽效果
點擊下載源文件

6. 元素垂直/水平居中

你可能之前遇到過這個問題:水平或垂直居中某個元素。垂直居中在CSS里面相當(dāng)麻煩,特別是你想支持所有主流瀏覽器。

javascrpt-垂直居中

6.1 Center element plugin

這個插件可以使頁面中的所有元素居中,垂直和水平居中采用css負(fù)margin的方法。

$(“element”).center(); //vertical and horizontal
$(“element”).center({
horizontal: false // only vertical
});

點擊查看預(yù)覽效果
點擊下載源文件

6.2 我是怎么把一個元素垂直居中的?

在這個視頻教程里, Jeffrey Jordan Way將為你展示如何使用jQuery的力量結(jié)合CSS在你的瀏覽器里面使一個圖片垂直居中.

7. 在IE里使用Q標(biāo)簽

人們期望使用的Q標(biāo)簽而不是blockquote標(biāo)簽來顯示引號。然而IE/Win不支持Q標(biāo)簽,因為這一點,大部分網(wǎng)站的作者選擇不使用Q標(biāo)簽。

7.1 QinIE

當(dāng)你在你的文件的頭部添加這個腳本在IE瀏覽器里自動掃描的網(wǎng)頁Q的標(biāo)記,并正確的顯示它們(包括嵌套引用) 。當(dāng)(如果)IE瀏覽器將來支持Q標(biāo)簽,這個插件將會添加瀏覽器版本檢查。

點擊下載源文件

8. 增加點擊目標(biāo)的大小和獲得更多的響應(yīng)轉(zhuǎn)換

javascript-js

通過把你的所有內(nèi)容放到一個可點擊的標(biāo)簽來和單調(diào)的“read more…”鏈接說拜拜吧。

點擊下載源文件

9. Lazy loader

Lazy loader 是一個jQuery。它可以延遲加載頁面里面的圖片. 在用戶瀏覽視界(頁面中可見部分)以外的圖片之前,它將不會被加載。這和image preloading的作用正好相反.

點擊查看預(yù)覽效果
點擊這里下載源文件

10. bgiframe

輕松的解決IE下的z-index的問題。

javascript-bgiframe

點擊查看預(yù)覽效果
點擊這里下載源文件

11. ieFixButtons

ieFixButtons 是一個修正IE6和7的<button>標(biāo)簽的bug的jquery插件。

點擊查看預(yù)覽效果
點擊這里下載源文件

12. 溢出(overflow)修正

修正ie下的水平溢出。IE在溢出的元素里面顯示一個滾動條,特別是如果元素里面只有一行,滾動條就會遮住這行內(nèi)容。這個插件通過修改padding來修正這個問題。

javascript-overflow-解決

點擊查看預(yù)覽效果
點擊這里下載源文件

英文原文:Using Javascript to Fix 12 Common Browser Headaches

中文翻譯原文:用JAVASCRIPT修正12個常見的瀏覽器問題

相關(guān)文章

  • 微信小程序tabBar用法實例詳解

    微信小程序tabBar用法實例詳解

    這篇文章主要介紹了微信小程序tabBar用法,結(jié)合實例形式詳細(xì)分析了微信小程序中tabBar的功能、配置項使用方法與操作注意事項,并附帶完整demo源碼供讀者下載參考,需要的朋友可以參考下
    2017-12-12
  • JavaScript中繼承原理與用法實例入門

    JavaScript中繼承原理與用法實例入門

    這篇文章主要介紹了JavaScript中繼承原理與用法,結(jié)合實例形式分析了JavaScript中繼承的基本概念、原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2020-05-05
  • JavaScript運(yùn)行機(jī)制之事件循環(huán)(Event Loop)詳解

    JavaScript運(yùn)行機(jī)制之事件循環(huán)(Event Loop)詳解

    這篇文章主要介紹了JavaScript運(yùn)行機(jī)制之事件循環(huán)(Event Loop)詳解,本文從多個方面講解了Event Loop,需要的朋友可以參考下
    2014-10-10
  • undefined==null引發(fā)的兩者區(qū)別與聯(lián)系

    undefined==null引發(fā)的兩者區(qū)別與聯(lián)系

    undefined==null引發(fā)的兩者區(qū)別與聯(lián)系
    2007-12-12
  • js中對象和面向?qū)ο笈cJson介紹

    js中對象和面向?qū)ο笈cJson介紹

    今天小編就為大家分享一篇關(guān)于js中對象和面向?qū)ο笈cJson介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Promise對象all與race方法手寫示例

    Promise對象all與race方法手寫示例

    這篇文章主要為大家介紹了Promise對象all與race方法手寫示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • JS實現(xiàn)異步上傳壓縮圖片

    JS實現(xiàn)異步上傳壓縮圖片

    這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)異步上傳壓縮圖片,并立即顯示圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • js 設(shè)置選中行的樣式的實現(xiàn)代碼

    js 設(shè)置選中行的樣式的實現(xiàn)代碼

    設(shè)置選中的行樣式的js代碼,需要的朋友可以參考下,這里只給出了函數(shù),具體的自己發(fā)揮。
    2010-05-05
  • javascript appendChild,innerHTML,join性能比較代碼

    javascript appendChild,innerHTML,join性能比較代碼

    在實際應(yīng)用中,應(yīng)該避免直接用innerHTML,對于大量的字符連接運(yùn)算,應(yīng)該考慮先運(yùn)算再輸出。
    2009-08-08
  • 微信小程序上線發(fā)布流程圖文詳解

    微信小程序上線發(fā)布流程圖文詳解

    這篇文章主要介紹了微信小程序上線發(fā)布流程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論