html瀏覽器的區別是什么意思,不同瀏覽器對css的識別有區別嗎?

不同瀏覽器對css的識別是有區別,因此針對不同的瀏覽器去寫不同的CSS。下面本篇文章給大家介紹一些常用CSS書寫技巧(不同瀏覽器之間的差異)。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

f42891c838ada1705532ea931b8d406d.png

不同的瀏覽器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,對CSS的解析認識不一樣,因此會導致生成的頁面效果不一樣,得不到我們所需要的頁面效果。這個時候我們就需要針對不同的瀏覽器去寫不同的CSS,讓它能夠同時兼容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁面效果。這個針對不同的瀏覽器寫不同的CSS code的過程,就叫CSS hack,也叫寫CSS hack。

由于不同的瀏覽器對CSS的支持及解析結果不一樣,還由于CSS中的優先級的關系。我們就可以根據這個來針對不同的瀏覽器來寫不同的CSS。

比如 IE6能識別下劃線"_"和星號" * ",IE7能識別星號" * ",但不能識別下劃線"_",而firefox兩個都不能認識。等等

書寫順序,一般是將識別能力強的瀏覽器的CSS寫在后面。下面列舉常用的CSS hack方法

1:!important

!important作用是提高指定樣式規則的應用優先權。

IE7以及所有標準瀏覽器能識別!important

區別IE6與IE7與其他瀏覽器.browserTest

{

border:20px solid #60A179 !important;

border:20px solid #00F;

}

在Mozilla中或者IE7瀏覽時候,能夠理解!important的優先級,因此顯示#60A179的顏色:

在IE6中瀏覽時候,不能夠理解!important的優先級,因此顯示#00F的顏色:

2:*

IE都能識別*;標準瀏覽器(如火狐)不能識別*

區別IE6與火狐.browserTest

{

border:20px solid #60A179;

*border:20px solid #00F;

}

區別IE7與火狐.browserTest

{

border:20px solid #60A179;

*border:20px solid #00F;

}

區別IE7,IE6與火狐

.browserTest

{

border:20px solid #60A179;

*border:20px solid #00F !important;

*border:20px solid ###;

}

3:_

IE6支持下劃線,IE7和firefox均不支持下劃線

區別IE7,IE6與火狐.browserTest

{

border:20px solid #60A179;

*border:20px solid #00F;

_border:20px solid ###;

}

/*不管是什么方法,書寫的順序都是firefox的寫在前面,IE7的寫在中間,IE6的寫在最后面*/

4:*+html 與 *html

*+html 與 *html 是IE特有的標簽, firefox 暫不支持.而*+html 又為 IE7特有標簽.browserTest { width: 120px; } /* FireFox fixed */

*html .browserTest { width: 80px;} /* ie6 fixed */

*+html .browserTest { width: 60px;} /* ie7 fixed */

注意:

*+html 對IE7的HACK 必須保證HTML頂部有如下聲明:

/*****************************************************************************/

/*****************************************************************************/

以下是一些常用的CSS兼容技巧

1)火狐下給div設置padding后會導致width和height 增加, 但IE不會.(可用!important解決)

2)垂直居中,將 line-height設置為當前div相同的高度, 再通過vertical-align: middle;( 注意內容不要換行)

3)水平居中,margin:0 auto;(當然不是萬能)

4)若需給a標簽內內容加上樣式, 需要設置 display: block;(常見于導航標簽)

5)浮動IE產生的雙倍距離

在IE下,當一個div設置了float后,然后給他設置margin,就會出現加倍的margin,解決的辦法是給div設置display:inline。

相應的css為#float

{

float:left;

margin:5px;/*IE下理解為10px*/

display:inline;/*IE下再理解為5px*/

}

Block元素的特點是:總是在新行上開始,高度,寬度,行高,邊距都可以控制(塊元素);Inline元素的特點是:和其他元素在同一行上,...不可控制(內嵌元素);

6)IE和FF對盒模型的解釋區別#browserTest{ width: 650px !important;width: 648px;padding-left:2px;background:#fff; }

browserTest顯示的寬度是650px;

IE Box的總寬度是:width+padding+border+margin寬度總和;

FF Box的總寬度就是:width的寬度,padding+border+margin的寬度在含在width內。

如果有BOX{WIDTH:"300"; PADDING:"5PX";}

則BOX在IE的寬度應該為:310

而在FF的寬度則是300

所以在BOX有填充的情況下應該這樣使用BOX{WIDTH:"300" !IMPORTANT; WIDTH:"290";}

7)ul標簽在FF下面默認有list-style和padding, 最好事先聲明, 以避免不必要的麻煩;(常見于導航標簽和內容列表)

8)作為外部wrapper的div不要定死高度, 最好還加上 overflow: hidden;以達到高度自適應;

9)頁面的最小寬度

min-width是個非常方便的CSS命令,它可以指定元素最小也不能小于某個寬度,這樣就能保證排版一直正確。但IE不認得這個,

而它實際上把width當做最小寬度來使。為了讓這一命令在IE上也能用,可以把一個

放到 標簽下,然后為div指定一個類:

然后CSS這樣設計:#container{ min-width: 600px; width:expression(document.body.clientWidth < 600? "600px": "auto" );}

第一個min-width是正常的;但第2行的width使用了Javascript,這只有IE才認得,這也會讓你的HTML文檔不太正規。它實際上通過Javascript的判斷來實現最小寬度。

10:萬能float閉合

將以下代碼加入Global CSS 中,給需要閉合的div加上

.clearfix:after

{

content:".";

display:block;

height:0;

clear:both;

visibility:hidden;

}

*html .clearfix{

height:1%;

}

*+html .clearfix{

height:1%;

}

.clearfix

{

display:inline-block;

}

/* Hide from IE Mac */

.clearfix {display:block;}

/* End hide from IE Mac */

/* end of clearfix */

/**********************************************/

Float left

Float right

#wrap{ border:6px #ccc solid; overflow:auto; _height:1%;}

.column_left{ float:left; width:20%; padding:10px;}

.column_right{ float:right; width:75%; padding:10px; border-left:6px #eee solid;}

更多web前端開發知識,請查閱 HTML中文網 !!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454523.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454523.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454523.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于python

你是如何自學 Python 的&#xff1f; https://www.zhihu.com/question/20702054 Python 的練手項目有哪些值得推薦&#xff1f;https://www.zhihu.com/question/29372574 Python編碼規范 -- Python Style Guide http://www.cnblogs.com/lxw0109/p/Python-Style-Guide.htm…

python讀寫文件的文本模式_Python中文件的讀寫、寫讀和追加寫讀三種模式的特點...

本文主要討論一下文件的三種可讀可寫模式的特點及互相之間的區別,以及能否實現修改文件的操作 由于前文已經討論過編碼的事情了&#xff0c;所以這里不再研究編碼&#xff0c;所有打開操作默認都是utf-8編碼&#xff08;Linux系統下&#xff09; 首先我們看r&#xff08;讀寫&a…

html顏色疊加代碼,html代碼大全(基礎使用代碼)(顏色代碼完整版)

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓您在使用以下基礎使用代碼時請把{}換成<>&#xff01;&#xff01;&#xff01;)(這樣這個命令才成立&#xff01;&#xff01;&#xff01;)基礎使用代碼&#xff1a;1)貼圖&#xff1a;{img src"圖片地址"}2)加入…

如何看懂源代碼

如何看懂源代碼--(分析源代碼方法) 【轉載】 由于今日計劃著要看Struts 開源框架的源代碼 昨天看了一個小時稍微有點頭緒,可是這個速度本人表示非常不滿意,先去找了下資料, 覺得不錯... 摘自(繁體中文Traditional Chinese):http://www.ithome.com.tw/itadm/article.php?c477…

面試之 Python 進階

前端相關 1.談談你對http協議的認識。 瀏覽器本質&#xff0c;socket客戶端遵循Http協議   HTTP協議本質&#xff1a;通過\r\n分割的規范 請求響應之后斷開鏈接 > 無狀態、 短連接 具體&#xff1a;   Http協議是建立在tcp之上的&#xff0c;是一種規范&#xff0c;它…

Lync Server外部訪問系列PART5:模擬公網DNS

因為要實現外部用戶訪問&#xff0c;所以我們必然需要在公網DNS中添加我們所需要的一些A記錄&#xff0c;而這樣的測試需要我們擁有一個公網的域名以及一個可發布、可訪問的IP。如果沒有的話就沒辦法這樣測試&#xff0c;所以我們今天在物理局域網中搭建一臺DNS服務器&#xff…

C語言運算符和表達式

參考鏈接&#xff1a;http://blog.csdn.net/qq_31059475/article/details/51195091 概述 C語言一共有34種運算符&#xff0c;10種運算類型&#xff1a;算術運算符&#xff08;、-、*、/、%&#xff09;、關系運算符&#xff08;>、>、、&#xff01;、<、<&#xf…

oracle對查詢結果求和_Oracle 閃回技術詳解

概述閃回技術是Oracle強大數據庫備份恢復機制的一部分&#xff0c;在數據庫發生邏輯錯誤的時候&#xff0c;閃回技術能提供快速且最小損失的恢復(多數閃回功能都能在數據庫聯機狀態下完成)。需要注意的是&#xff0c;閃回技術旨在快速恢復邏輯錯誤&#xff0c;對于物理損壞或是…

html整人js代碼大全,Fool.js惡搞整人網頁特效jQuery插件

Fool.js是一個 jQuery 插件&#xff0c;包含了幾種頁面特效&#xff0c;可以用來在愚人節的時候整人&#xff0c;來實現更多的更變態的愚人功能&#xff0c;當然你也可以使用這個插件完成更多好看的效果。支持的特效消失的滾動條莫名其妙播放的音樂隨機消失的頁面元素不間斷的彈…

HDU - 5934

tarjan 視頻講解 /*** 題目鏈接&#xff1a;https://vjudge.net/problem/HDU-5934* 題意&#xff1a;給你n個炸彈&#xff0c;引爆每個炸彈會有一定的花費。每個炸彈給出坐標x&#xff0c;y&#xff0c;半徑r&#xff0c;引爆花費&#xff1b;* 引爆一個炸彈會把范圍內的炸…

Centos7-Lvs+Keepalived架構實驗詳解

Centos7-LvsKeepalived架構 LVSKeepalived 介紹 1 、 LVS LVS 是一個開源的軟件&#xff0c;可以實現 LINUX 平臺下的簡單負載均衡。 LVS 是 Linux Virtual Server 的縮寫&#xff0c;意思是 Linux 虛擬服務器。目前有三種 IP 負載均衡技術&#xff08; VS/NAT 、 VS/TUN 和 …

python調用matlab環境配置、非常詳細!!!_[python][matlab]使用python調用matlab程序

問題引入 在做實驗的時候&#xff0c;需要用到python和matlab工具來進行不同的處理&#xff0c;比如在run神經網絡的時候&#xff0c;需要使用pytorch框架得到網絡的各個參數&#xff0c;在得到參數后需要使用matlab進行聚類規劃。之前的做法是用python腳本耦合其聯系&#xff…

html里寫js ajax嗎,js、ajax、jquery的區別是什么?

js、ajax、jquery的區別1、JS是一門前端語言。2、Ajax是一門技術&#xff0c;它提供了異步更新的機制&#xff0c;使用客戶端與服務器間交換數據而非整個頁面文檔&#xff0c;實現頁面的局部更新。3、jQuery是一個框架&#xff0c;它對JS進行了封裝&#xff0c;使其更方便使用。…

Flask 基礎

Flask是一個基于Python開發并且依賴 jinja2 模板和 Werkzeug WSGI 服務的一個微型框架&#xff0c;對于Werkzeug本質是Socket服務端&#xff0c;其用于接收http請求并對請求進行預處理&#xff0c;然后觸發Flask框架&#xff0c;開發人員基于Flask框架提供的功能對請求進行相應…

IIS 部署asp.net Core程序注意事項

Install the .NET Core Windows Server Hosting bundleInstall the.NET Core Runtime修改應用程序池的.net framework版本為無托管代碼轉載于:https://www.cnblogs.com/Qos8/p/7616036.html

泰安第一中學2021年高考成績查詢,等級考第一天結束 泰安部分考生已完成2021年高考...

6 月 9 日&#xff0c;山東新高考進入第三天&#xff0c;也是學業水平等級考試的第一天&#xff0c;物理、思想政治、化學三門選考科目的考試已全部完成。由于選考科目不同&#xff0c;考生結束高考的進程也不同&#xff0c;9 日下午&#xff0c;選考物理、思想政治、化學的考生…

基于FFMPEG 的跨平臺視頻編解碼研究

第33卷 第11期2011年11月武 漢 理 工 大 學 學 報JOURNALOF WUHANUNIVERSITYOFTECHNOLOGY Vol.33 No.11??????????????????????????????????????????????????Nov.2011DOI:10.3963/j.issn.1671-4431.2011.11.029基于FFMPEG 的…

python邏輯型數據也叫什么_Python入門 | 運算符和數據類型

自用總結。 零散知識 1.Python的計算方法&#xff1a;運算符、函數、方法 1) 方法與函數的區別&#xff1a; 方法與特定類型的對象有關&#xff0c;是屬于某個對象的函數&#xff0c;對象始終是該方法的第一個參數。e.g. islower()方法是檢查字符串中字符是否為小寫形式的方法&…

Flask 第三方組件之 WTForms

簡介 WTForms是一個支持多個web框架的form組件&#xff0c;主要用于對用戶請求數據進行驗證。 安裝&#xff1a; pip3 install wtforms 用戶登錄注冊示例 1. 用戶登錄 當用戶登錄時候&#xff0c;需要對用戶提交的用戶名和密碼進行多種格式校驗。如&#xff1a; 用戶不能為…

機器學習原理與算法(六) 支持向量機

版權聲明&#xff1a;本系列文章為博主原創文章&#xff0c;轉載請注明出處&#xff01;謝謝&#xff01; 本章索引&#xff1a; 從第3章的Logistic回歸算法開始&#xff0c;我們一直在討論分類問題。在各種不同的分類算法中&#xff0c;...&#xff0c;我們一直在討論如何分類…