1. 程式人生 > >#CSS-階段性查缺補漏(1)

#CSS-階段性查缺補漏(1)

1.    瀏覽器字首(無字首屬性總是放在最後)

    對於任何新的樣式,最終規範可能與瀏覽器渲染它的方式稍微不同。

-webkit-border-radius: 10px;     //蘋果Safari瀏覽器和谷歌的Chrome瀏覽器
-moz-border-radius: 10px;       //Firefox瀏覽器
-o-border-radius: 10px;         //Opera瀏覽器
border-radius: 10px;

注:Autoprefixer:一個以最好的方式處理瀏覽器字首的後處理程式。

2.    IE盒模型

IE8及以上和其他瀏覽器:width和height指的是內容(content);

IE8以下為IE 盒子模型,width和height包括content、padding、border.

3.  IE6、7下display:inline-block的相容性

大致描述:IE6、IE7支援對html行內元素設定inline-block。實際上只是看起來支援而已,IE6、IE7並不識別inline-block這個屬性值,只是觸發了layout,讓行內元素有了inline-block的表徵,比如說:行內顯示且可設定寬高等等。

實現塊級元素的inline-block屬性值設定:詳解

div { display:inline-block; _zoom:1;_display:inline;}/*推薦IE6*/
div { display:inline-block; *zoom:1;*display:inline;}/*推薦IE6或IE7*/

下劃線(_)是隻有IE6才能識別,而星號(*)是隻有IE6和IE7可識別,作用就是用於區分不同瀏覽器的。

zoom始終可以觸發layout, 而_display:inline;或者*display:inline;是為了讓元素重新獲得display:inline;的屬性。

4.    haslayout是IE7-瀏覽器的特有屬性

有兩種狀態:true或false。當其為true時,代表該元素有自己的佈局,否則代表該元素的佈局繼承於父元素。

CSS屬性

  可以觸發hasLayout的有如下CSS屬性:

  【1】display:inline-block
  【2】height/width:除了auto
  【3】float:left/right
  【4】position:absolute
  【5】writing-mode(IE專有屬性,設定文字的垂直顯示):tb-rl
  【6】zoom(IE專有屬性,設定或檢索物件的縮放比例):除了normal

【IE7專有的觸發hasLayout的CSS屬性】

  【1】min-height/max-height/min-width/max-width:除none
  【2】overflow\overflow-x\overflow-y:除visible
  【3】position:fixed

  5.    em、px、rem

        em是相對於應用於當前元素的字型尺寸,而百分比則是相對於父元素的尺寸。

em:如當前對行內文字的字型尺寸未被人為設定,則相對於瀏覽器的預設字型尺寸。我們在寫CSS的時候,需要注意三點:

        1. body選擇器中宣告Font-size=62.5%;

        2. 將你的原來的px數值除以10,然後換上em作為單位;

        3. IE底下,“em”會有一個問題存在。調整字型大小的時候,同樣會打破我們的彈性佈局,需要設定:

     html {font-size: 100%}

rem:只是相對HTML根元素大小,(IE8以上,對於不支援它的瀏覽器,就多寫一個絕對單位的宣告)

如果你的使用者群都使用最新版的瀏覽器,那推薦使用rem,如果要考慮相容性,那就使用px,或者兩者同時使用。

        如果希望隨著當前元素的字型尺寸em是相對於應用於當前當前元素的字型尺寸;而百分比則是相對於父元素的尺寸。寸而改變尺寸,則使用em最佳,如:行高、字型大小。相反,如果是隨著父容器或者是整體頁面佈局而改變尺寸,則使用%更好,如元素的高度和寬度設定。

6、繼承的樣式權重最小

<div class="box">
    <a href="#">層疊</a>
</div>
.box { color: red}

    繼承的顏色並不會顯示,因為繼承的樣式權重最小,瀏覽器對a標籤設定了預設樣式,將繼承的樣式層疊了。

7、calc() 函式 (結合媒體查詢,實現響應式佈局)

.box img {
    width:calc(100%/4 - 40px);
    margin:20px;
    float: left;
}
@media (max-width :600px){
    .box img {
      width:calc(100%/2 - 40px);
    }
}
螢幕不小於600px時,最多顯示4張圖片。螢幕小於或等於600px時,一行最多隻能放兩張。

 8、垂直外邊距合併


判斷兩個margin是否會摺疊,要判斷他們是否滿足以下三個條件:

  1. 都在普通流中
  2. 在同一個塊級格式化上下文中
  3. 沒有被行盒、空隙、內填充、邊框阻斷

9、透明度設定

.alert {
    opacity:0.8;
    filter:alpha(opacity=80); //相容IE
}

10、浮動float

因為浮動元素脫離文件流,所以包圍的圖片的文字的div不佔據空間。

浮動的特點:1.  .item {float: left;} ,則item2 除了文字,其他內容都不可見

                    2.    行內元素設定浮動後形成一個塊框,因此可以使用width、height、margin和padding 

清除浮動:

    1、父級元素設定

.parent {
       overflow: hidden;
       *zoom: 1; //相容IE6、7
}

    2、偽類元素清除浮動

選擇符  .clear::after{
            content:".";
            clear:both;
            display:block;
            height:0;
            overflow:hidden;
            visibility:hidden;
              }
.clear{zoom:1;} //相容IE6、7

11、BFC(block formating context):塊級格式化上下文

  • 特點:  1.  在一個塊級格式化上下文中,塊框會朝著垂直方向一個接一個的排列    2.在一個塊級格式化上下文中,包含裡面的所有元素,但不包含建立了新塊格式化上下文的元素。(結合上一點理解)
  • 建立BFC的情況: a. 浮動float不為none; b. position值為absolute、fixed的元素  c. display不為block 的元素 d.overflow不為visible的元素。

12、overflow :hidden;  能清除浮動的原因

        不僅對超出的內容進行了處理,而且建立了BFC,使父元素重新自適應了子元素,順便清除了浮動。

13、高度設定百分比的情況 height:100%;

  •     父元素在不設定高度的情況下,是自適應子元素的高度的
  •     在高度為0或不設定高度的情況下,高度是文字的行高,但是設定了高度則用的是設定的高度而不再是行高
{
    height:100px;
    line-height:30px;
    }    高度為100px

14、行內元素(或display:inline;)

有兩個特點:1.  上下外邊距、width、height不會起作用

                    2.  padding會起作用,但是padding-top、padding-bottom不會佔據位置,而且會把其他元素蓋住。

15. inline和inline-block會引起間距的空格

解決方法:1.  可以給父元素新增font-size:0;  但是文字的內容會消失;

                 2.  父元素letter-spacing: -5px; 設定合理的值,

                3.   直接設定浮動  

16、auto

無意義的auto:      

  •   對於行內元素,左右外邊距設定為auto,其結果為0  (因為行內和行內塊的空間只有自身的那些位置,那些位置都讓高度和寬度佔據,而寬度和高度是根據內容決定的)

相關推薦

#CSS-階段性補漏1

1.    瀏覽器字首(無字首屬性總是放在最後)    對於任何新的樣式,最終規範可能與瀏覽器渲染它的方式稍微不同。-webkit-border-radius: 10px;     //蘋果Safari瀏覽器和谷歌的Chrome瀏覽器 -moz-border-radius:

JavaScript補漏1

<script>標籤 一些老舊的例項可能會在 <script> 標籤中使用 type=”text/javascript”。現在已經不必這樣做了。JavaScript 是所有現代瀏覽器以及 HTML5 中的預設指令碼語言。 cons

遊戲程式設計補漏1

 1.cocos2d-x中的物件,如果是使用create之內的函式建立的,就得特別注意,如果程式執行過程中突然崩潰掉了,而且涉及到此物件,十有八九是被自動釋放掉了,此時直接檢視該物件建立的那段程式碼,執行下retain就行了。  2.CCNode與CCSprite都可以執行

補漏2

結果 endpoint lan 如何 得到 標準差 維基 過程 例子 問題1: 怎麽理解置信區間(Confidence Interval【CI】)? 參考維基百科:https://en.wikipedia.org/wiki/Confidence_interval做出的理解:

java提高篇——基礎補漏面試

連結:http://blog.csdn.net/xiaokang123456kao/article/details/54233595 連結失效請複製改連結至位址列 一.java基本資料型別所佔的記憶體大小 在Java中一共有8種基本資料型別,其中有4種整型,2種浮點型別,1種用於表示Uni

Golang補漏

效率 for rem 函數參數 mov printf col .com println Go語言高級編程(Advanced Go Programming) Go語言高級編程(Advanced Go Programming)golang都是傳值,與其他語言不同的是數組作為參數

Android補漏View篇--事件分發機制

touch事件 滑動沖突 今天 version schema ttr 步驟 isp win 事件分發機制是Android中非常重要的一個知識點,同時也是難點,相信到目前為止很多Android開發者對事件分發機制並沒有一個非常系統的認識,當然也包括博主個人在內。可能在平時的開

Android補漏View篇--布局文件中的“@+id”和“@id”有什麽區別?

新增 布局 parent 直接 使用 margin 移除 控件 Coding Android布局文件中的“@+id”和“@id”有什麽區別? +id表示為控件指定一個id(新增一個id),如: <cn.codingblock.view.customer_view.

Android補漏IPC篇-- 進程間通訊基礎知識熱身

內部 eat ack 學習過程 and ... 綁定 his nec 本文作者:CodingBlock 文章鏈接:http://www.cnblogs.com/codingblock/p/8479282.html 在Android中進程間通信是比較難的一部分,同時又非常重要

Android補漏線程篇-- AsyncTask的使用及原理詳細分析

catch 返回 rri 理解 ams tee ive lean keyword 本文作者:CodingBlock 文章鏈接:http://www.cnblogs.com/codingblock/p/8515304.html 一、AsyncTask的使用 AsyncT

Android補漏線程篇-- IntentService的源碼淺析

per .com 隨著 nds public message 這一 這樣的 系統 本文作者:CodingBlock 文章鏈接:http://www.cnblogs.com/codingblock/p/8975114.html 在Android中有兩個比較容易弄混的概念,Se

HTML和CSS中的居中效果1

htm inner height overflow n-1 txt posit splay read HTML和CSS中的居中效果 單行上下左右居中 Html: <div class=”container”></div> CSS:

【pandas】[2] DataFrame 基礎,建立DataFrame和增刪改基本操作1

作者:lianghc 地址:http://blog.csdn.net/zutsoft         DataFrame 是pandas最常用的資料結構,類似於資料庫中的表,不過DataFrame不僅僅限制於2維,可以建立多維資料表。DataFrame既有行索引,也有列

css補漏1

css可以寫在哪裡 1.和要裝飾的標籤寫在一起 2.內部樣式表(內嵌式)是寫在head頭部標籤中,並且用style標籤定義 3.外部樣式表(外鏈式) <head><link rel="stylesheet" href="commons.css"></head>

看進程運行時間1

技術 tar 技術分享 運行時間 comm sta grep png 時間 [[email protected]/* */ ~]# ps -eo pid,tty,user,comm,lstart,etime |grep 1897 1897 ?

python的算法:二分法1

port == 歸類 算法 開始 log spa loop __name__ 1.什麽是二分法查找: 1.從數組的中間元素開始,如果中間元素正好是要查找的元素,則搜素過程結束; 2.如果某一特定元素大於或者小於中間元素,則在數組大於或小於中間元素的那一半中查找,而且跟開始

2017前端面試題之Css1

margin 沒有 width ati clas 經驗 visible import tom 1 . CSS 屬性是否區分大小寫? 答:不區分。 HTML,CSS都對大小寫不敏感,但為了更好的可讀性和團隊協作一般都小寫,而在XHTML 中元素名稱和屬性是必須小寫的。

zookeeper curator學習增刪改1

oid lis edge java catch clas 獲得 data on() 主要參考的是curator,github地址:https://github.com/apache/curator/tree/master/curator-examples。 zookeepe

CSS知識點整理1CSS語法,層疊次序,選擇器,其他重要方面。

屬性。 偽類選擇器 css語法 wid cape image 整理 樣式 以及 1. css的全稱 2. CSS的層疊次序:優先級由低到高 ·瀏覽器設置 ·外部樣式表 ·內部樣式表 ·內聯樣式 3. CSS的3種形式,以及每種形式的語法格式 ——註意樣式表的為什麽常

Linux看日誌方法總結1

關鍵字 http grep 定時 abd cab 我們 做的 ext 註:日誌文件為:test.log 1.tail -f test.log 查看當前打印的日誌(平時就知道這方法!打印出的長度有限制。) 以下為網上搜集的: 2.先必須了解兩個最基本的命令: tai