前端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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...