前端css相容性與易混淆的點

来源:http://www.cnblogs.com/zqzjs/archive/2016/10/29/6011139.html
-Advertisement-
Play Games

一.常用的骨灰級清除浮動 解讀浮動閉合最佳方案:clearfix 二.唯一使用斜杠/分割的關鍵字 分割的分別是 字體大小 與 行高 ,其他關鍵是用空白符分割。 三.內聯元素相連之間存在間隙 原因:內聯元素是當做字體來處理的,字體之間是有間隔的 解決: 1.多個標簽寫在一行 2.將要閉合標簽的地方與開 ...


一.常用的骨灰級清除浮動


.clearfix:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
    overflow: hidden;
}

解讀浮動閉合最佳方案:clearfix

 

二.唯一使用斜杠/分割的關鍵字


H2{
    font:12px/100% sans-serif;
}

分割的分別是 字體大小 與 行高 ,其他關鍵是用空白符分割。

 

三.內聯元素相連之間存在間隙


原因:內聯元素是當做字體來處理的,字體之間是有間隔的

解決:

1.多個標簽寫在一行

2.將要閉合標簽的地方與開始標簽的地方重合

3.使用註釋頭尾相連

4.在父級上寫:font-size:0;

5.使用display:block(img是內聯元素)

6.使用letter-spacing屬性

多個Img標簽之間的間隙處理方法

 

四.佈局


註意父元素的定位方式 是相對 還是靜態 這決定了其內部絕對定位與浮動元素

 

五.塊級元素包裹內聯元素的時候,總會出現幾像素的差


<!--例子1-->
<div>
<img src="http://images.cnblogs.com/cnblogs_com/zqzjs/757818/o_u=3986871593,628400456_fm=21_gp=0.jpg">
</div>

<!--例子2-->
<ul>
<li>
<img src="http://images.cnblogs.com/cnblogs_com/zqzjs/757818/o_u=3986871593,628400456_fm=21_gp=0.jpg">
</li>
</ul>

<!--例子3-->
<div>
<span>asdasdasd</span>
</div>

解決:設置內聯元素屬性:display:block;

 

六.css hack(hack有風險,使用需謹慎)


1.html hack

<!--[if lt IE 7 ]><html class="ie6" lang="zh-cn"><![endif]-->
<!--[if IE 7 ]><html class="ie7" lang="zh-cn"><![endif]-->
<!--[if IE 8 ]><html class="ie8" lang="zh-cn"><![endif]-->
<!--[if IE 9 ]><html class="ie9" lang="zh-cn"><![endif]-->

在css中使用:

.ie6 body{
    background-color:red;
}


2.選擇器 hack

* html .test{color:#090;} /* For IE6 */
* + html .test{color:#ff0;} /* For IE7 */


3.屬性hack

color:#fff\0; /*:選擇IE8+和Opera*/
color:#090\9; /* For IE瀏覽器 */
*color:#f00; /* For IE7 */
_color:#ff0; /* For IE6 */


七.box-sizing


1.常規的盒模型: box-sizing : content-box(width == content 不包括padiing border)

2.box-sizing : border-box width == content + padiing + border(相當於低級瀏覽器的怪異模式)

 

八.圖片格式區別


格式 區別

jpg 有損壓縮
png 無損壓縮,透明圖
gif 動態圖像
webp 支持有損壓縮和無損壓縮的圖片文件,壓縮率極高,且畫面豐富(有瀏覽器相容性問題)


九.px,em,rem的區別


em,rem 相對大小

em相對父元素font-size

rem相對html根元素的font-size

px 絕對大小

 

十.不能繼承的屬性


多數邊框類屬性:如邊框,補白,背景等。

 

十一.css中選擇器的權重


依次變小:id>class>標簽

 

十二.css顏色的問題


儘量使用16進位的顏色,類似#fff;一位內16進位的顏色是確定的一個色值。

而red這類的顏色值不是確定的,可能會受到用戶代理即user agent stylesheet的影響。

 

十三.ie6.7不支持box-sizing: border-box;


解決:使用https://github.com/Schepp/box-sizing-polyfill這個墊片

註意:*behavior: url(../resource/js/lab/boxsizing.htc);這個URL是相對於HTML頁面的!!

 

十四.IE6.7 font與font-family


font起作用了 但是微軟雅黑不起作用

解決:必須要設置font-family:"microsoft yahei"

 

十五.text-align text-indent vertical-align


1.text-align:作用於塊級元素

  如果要使得img居中,使用text-align是不行的,因為img不是塊狀元素。只需要在img外面套一層div即可。

<div style="text-align:center">
    <img src="XXX.jpg"/>
</div>

2.text-indent:作用於塊級元素

3.vertical-align:作用於行內元素,基於baseline的位置調整

 

十六.ul中li下麵的間隔線用li佈局邊框問題


在IE低版本下有bug,會多出li的寬高

間隔線使用li的border去做

 

十七.ie8及一下的瀏覽器不支持:befor.:after


使用jquery的一個庫:jquery.pseudo.js 做相容 相容低版本瀏覽器的時候

註意:不要使用太高的JQuery版本,會報錯!(我用的是1.10)

 

十八.IE6不支持position:fixed


.leftTop{
    position:absolute;
    left:expression(eval(document.documentElement.scrollLeft));
    top:expression(eval(document.documentElement.scrollTop));
}

position:fixed; 閃動問題

解決: *html{ background-image:url(about:blank); background-attachment:fixed;

 

十九.IE6雙倍margin,padding邊距的問題


一旦元素浮動,就會出現雙倍的bug

解決:display:inline

 

二十.IE6中設置寬高位10px的時候出現的是長方形


這個現象的另一種情況是:在IE6中定義比較小的高度問題。

原因:IE6有預設行高

解決:使用font-size:0;line-height:0;

 

二十一.IE6無法識別偽對象:first-letter/:first-line


p:first-letter {}

解決;在first-letter與"{"間增加空格

 

二十二.IE6下忽略!important


div{color:#f00!important;color:#000;}

解決:分開寫,並且將!important的屬性且在前面

div{color:#f00!important;}
div{color:#000;}

 

不定期更新。。。

 


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

-Advertisement-
Play Games
更多相關文章
  • 我的博客園博文地址:http://www.cnblogs.com/tenglongwentian/ Lucene,最新版是Lucene6.2.1,匹配的jdk版本是1.8正式版。這裡用jdk7最後一版,所以用Lucene5.3.3。 新建一個maven項目,如果不會可以參考前面的博文,前面的博文有專 ...
  • 以太坊是區塊鏈開發領域最好的編程平臺,而truffle是以太坊(Ethereum)最受歡迎的一個開發框架,這是我們第一篇區塊鏈技術文章介紹truffle的原因,實戰是最重要的事情,這篇文章不講原理,只搭建環境,運行第一個區塊鏈程式(Dapp)。 安裝truffle $ npm install -g ...
  • 1.計算程式運行時常 2.文件讀寫 3.立flag 設置布爾變數,用來在程式運行時對一些邏輯進行標記。其中false和true需要自己定義其含義。因此在設置flag的時,需要註意false以及true對應的含義。否則這些邏輯上的錯誤很難被檢查出來。 4.使用HashMap 聲明myMap為HashM ...
  • 這個案例類似於在地圖上滾動滾輪,能縮小或者放大地圖,分別用zoomIn和zoomOut來命名。 代碼如下: 另外,detail在滾輪事件中,向上滾——放大(detail == -3),觸發zoomOut;向下滾——縮小(detail == 3),觸發zoomIn。 自定義事件需要trigger來主動 ...
  • 通過資料庫和ajax方法寫出地圖 客戶端部分:html、js、css代碼部分: 服務端部分:app.js(一個JavaScript): 資料庫mysql信息: 最終結果: ...
  • 類似的文章園子里已有,請看這裡,個人感覺稍顯複雜,日前也打算寫一個簡單的給項目用,一些關鍵點記錄於此。最終效果如下: 後端使用Asp.net mvc5,前端框架有:jquery.validate、jquery.validate.unobtrusive、requirejs、Bootstrap,都是當前 ...
  • 直入正題,用JS實現一個簡單的打地鼠游戲 因為功能比較簡單就直接裸奔JS了,先看看效果圖,或者 線上玩玩 吧 如果點擊顏色比較深的那個(俗稱壞老鼠),將扣分50;如果點擊顏色比較淺的那個(俗稱好老鼠),將得分100 實現 老鼠好像有點難畫,又不想用圖片,就直接用CSS畫個簡單的圖代表老鼠和坑吧 ht ...
  • 動畫原理 SVG動畫,就是元素的屬性值關於時間的變化。 如下圖來說,元素的某個屬性值的起始值(from)到結束值(to)在一個時間段(duration)根據時間函數(timing-function)計算出每一幀(frame)的插值(interpolation)作為變換的行為。 PS:SVG動畫是幀動 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...