HTML相容問題——HACK技術

来源:http://www.cnblogs.com/hyea/archive/2016/04/23/5425405.html
-Advertisement-
Play Games

有話先說:本文的目的主要是向大家描述一下我們在遇見IE8版本一下以及Firefox相容的問題。 針對不同的瀏覽器寫不同的CSS的過程,這就叫CSS hack,也叫寫CSS hack,相信您會對一些比較不易解決的相容問題有一定的興趣。 註意點: 網上很多資料中常常把!important也作為 個hac ...


有話先說:本文的目的主要是向大家描述一下我們在遇見IE8版本一下以及Firefox相容的問題。

針對不同的瀏覽器寫不同的CSS的過程,這就叫CSS hack,也叫寫CSS hack,相信您會對一些比較不易解決的相容問題有一定的興趣。

註意點:

    網上很多資料中常常把!important也作為 個hack 段,其實這是 個誤區。!important常常被我們 來更改樣式, 不是相容hack。造成這 個誤區的原因是IE6在某些情況下不主動識別!important,以 於常常被 誤 做識別IE6的hack。可是, 家註意 下,IE6只是在某些情況下 不識別(ie6下,同 個 括弧 對同 個樣式屬性定義,其中 個加important 則important標記是被忽略的,例:{background:red!important; background:green;} ie6下解釋為背景 green,其它瀏覽器解釋為背景 red;如果這同 個樣式在不同 括弧 定義,其中 個加important 則important發揮正常作 ,例:div{background:red!important} div{background:green},這時所有瀏覽器統一解釋為背景色為紅色)

CSS HACK區別IE6、IE7、IE8、Firefox相容問題

1.區別IE和非IE瀏覽器

例:

#tip{ background:blue;/* IE背景藍 */ background:red\9;/*IE6、IE7、IE8背景紅 */ }

2.區別IE6,IE7,IE8,FF

區別符號:「\9」、「*」、「_」

例:#tip{ background:blue;/*Firefox背景變藍 */ background:red\9;/*IE8背景變紅色*/ *background:black;/*IE7背景變黑色*/ _background:orange;/*IE6背景變橘 */ }

說明:因為IE系列瀏覽器可讀「\9」, IE6和IE7可讀「*」( 字型大小),另外IE6可辨識「_」(底線),因此可以依照 順序寫下來,就會讓瀏覽器正確的讀取到 看得懂得CSS語法,所以就可以有效區分IE各版本和 IE瀏覽器(像是Firefox、Opera、GoogleChrome、Safari等)。

3.區別IE6、IE7、Firefox

區別符號:「*」、「_」

例:

#tip{ background:blue;/*Firefox背景變藍 */ *background:black;/*IE7背景變 */_background:orange;/*IE6背景變橘 */ }

說明:IE7和IE6可讀「*」( 字型大小),IE6 可以讀「_」(底線),但是IE7卻 法讀取「_」, 於Firefox( IE瀏覽 器)則完全 法辨識「*」和「_」,因此就可以透過這樣的差異性來區分IE6、IE7、Firefox

4.區別IE7、Firefox

區別符號:「*」、「!important」

例:

#tip{ background:blue;/*Firefox背景變藍 */ *background:green!important;/*IE7背景變綠 */ }

說明:因為Firefox可以辨識「!important」但卻 法辨識「*」, IE7則可以同時看懂「*」、「!important」, 因此可以兩個辨識符號來區隔IE7和Firefox。

5.區別IE6、IE7( 法1)

區別符號:「*」、「_」

例:

#tip{ *background:black;/*IE7背景變 */ _background:orange;/*IE6背景變橘 */ }

說明:IE7和IE6都可以辨識「*」( 字型大小),但IE6可以辨識「_」(底線),IE7卻 法辨識,透過IE7 法讀取「_」 的特性就能輕鬆區隔IE6和IE7之間的差異。

6.區別IE6、IE7( 法2)

區別符號:「!important」

例:

#tip{ background:black!important;/*IE7背景變 */ background:orange;/*IE6背景變橘 */ }

說明:因為IE7可讀取「!important;」但IE6卻不 , CSS的讀取步驟是從上到下,因此IE6讀取時因 法辨識 「!important」 直接跳到下 讀取CSS,所以背景 會呈現橘 。

7.區別IE6、Firefox

區別符號:「_」 【 例】:

#tip{ background:black;/*Firefox背景變 */ _background:orange;/*IE6背景變橘 */ }

說明:因為IE6可以辨識「_」(底線),但是Firefox卻不 ,因此可以透過這樣的差異來區隔Firefox和IE6,有效達 成CSShack。

總結:

希望這些HACK技術總結能夠幫到需要幫助的開發者。也希望大家不會再IE系列的相容問題上糾結的太多!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ng-include directive is used to embed an HTML page into another HTML page. This technique is extremely useful when you want to reuse a specific view i ...
  • The ng-init directive allows you to evaluate an expression in the current scope. In the following example, the ng-init directive initializes employees ...
  • 在進行定時器的製作時,我想先把我們需要用到的一些東西介紹給大家。 定時器的作用 開啟定時器 setInterval 間隔型 setTimeout 延遲型 停止定時器 clearInterval clearTimeout 數位時鐘思路效果 獲取系統時間: date對象 getHours getMinu ...
  • 最近在做文件上傳的功能,因為界面設計比較簡單,就沒有引用jq,但是網上大部分的上傳插件都需要jq的支持。為了一個上傳功能引用90多k的jq文件有點太小題大做了,所以就自己動手寫了一個原生js上傳的demo。下麵是代碼: HTML代碼 伺服器端用的是.Net c#代碼 說明: 根據網上相關資料,據說支 ...
  • 通配選擇器 可以與任何元素匹配,就像是一個通配符 元素選擇器 指示文檔元素的選擇器。 分組 選擇器分組 聲明分組 結合選擇器和聲明分組 類選擇器和ID選擇器 獨立於文檔元素的方式來指定樣式 類選擇器 ID選擇器 ID選擇器和類選擇器的不同之處: 類選擇器和ID選擇器可能是區分大小寫的,這取決於文檔語 ...
  • CSS3新增的動畫幀非常絢麗,可以簡單實現一些動畫效果,目前除IE外各大主流瀏覽器都支持 本文演示三個:transform: scale3d(x, y, z)-縮放;、transform: translate3d(x, y, z)-位移;、transform:rotateX/Y(?deg)-旋轉; ...
  • 一、元素選擇器 HTML文檔元素就是最基本的選擇器 如: 示例將<p>元素的字體顏色設置為了藍色,元素選擇器將作用於文檔內所有的<p>元素。同樣,我們也能夠同時為多個元素應用一種樣式,如: 為多個元素應用樣式時,用逗號分隔。 *作為通配選擇器,可以與任何元素匹配。 格式:元素|通配符 二、類選擇器 ...
  • 所謂的瀏覽器相容性問題,是指因為不同的瀏覽器對同 段代碼有不同的解析,造成 顯 效果不統 的情況。在 多 數情況下,我們的需求是, 論 戶 什麼瀏覽器來查看我們的 站或者登陸我們的系統,都應該是統 的顯 效果。所 以瀏覽器的相容性問題是前端開發 員經常會碰到和必須要解決的問題。 在學習瀏覽器相容性之 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...