css3
1.CSS3的選擇器
1)E:last-child 匹配父元素的最後一個子元素E。
2)E:nth-child(n)匹配父元素的第n個子元素E。
3)E:nth-last-child(n) CSS3 匹配父元素的倒數第n個子元素E。
2. @Font-face 特性
Font-face 可以用來載入字型樣式,而且它還能夠載入伺服器端的字型檔案,讓客戶端顯示客戶端所沒有安裝的字型。
@font-face {
font-family: BorderWeb;
src:url(BORDERW0.eot);
}
@font-face {
font-family: Runic;
src:url(RUNICMT0.eot);
}
.border { FONT-SIZE: 35px; COLOR: black; FONT-FAMILY: "BorderWeb" }
.event { FONT-SIZE: 110px; COLOR: black; FONT-FAMILY: "Runic" }複製程式碼
淘寶網字型使用
@font-face {
font-family: iconfont;
src: url(//at.alicdn.com/t/font_1465189805_4518812.eot);
}複製程式碼
3. 圓角
border-radius: 15px;
4. 多列布局 (multi-column layout)
多列布局的幾個重要屬性來設定多列布局的樣式 但是多列布局有相容性問題 所以不建議使用
5.陰影(Shadow)
box-shadow: 10px 10px 5px #888888;
6.css彈性盒子模型
父級定義
father { display: box; }複製程式碼
似乎也可以是:
father { display: inline-box; }複製程式碼
後,即為允許子級元素按盒模型分配空間
子級元素可以這樣分配資源
first_boy { box-flex: 2; }
second_boy { box-flex: 1; }
three_boy { box-flex: 1; }複製程式碼
也可以這樣
first_boy { box-flex: 2; }
second_boy { box-flex: 1; }
three_boy { width:300px;}複製程式碼
7. CSS3製作特效
1) Transition 物件變換時的過渡效果
- transition-property 物件參與過渡的屬性
- transition-duration 過渡的持續時間
- transition-timing-function 過渡的型別
- transition-delay 延遲過渡的時間
2) Transforms 2D轉換效果
主要包括 translate(水平移動)、rotate(旋轉)、scale(伸縮)、skew(傾斜)
3) Animation動畫特效
transforms與animation的區別:
其實可以將animation理解為有好多幀的動畫,而transform是隻有兩個幀的特殊的animation
BFC塊原理(塊級格式上下文)
Box是CSS佈局的物件和基本單位, 直觀點來說,就是一個頁面是由很多個Box(即boxes)組成的。元素的型別和display屬性,決定了這個Box的型別。 不同型別的Box, 會參與不同的Formatting context(一個決定如何渲染文件的容器),因此Box內的元素會以不同的方式渲染。常見的盒子型別block-level box: display屬性為block, list-item, table的元素,會生成block-level box。並且參與block fomatting context。 inline-level box: display屬性為inline, inline-block, inline-table的元素,會生成inline-level box。並且參與inline formatting context。
這裡我們也通俗的理解一下:
BFC就是“塊級格式化上下文”的意思,建立了 BFC的元素就是一個獨立的盒子,不過只有Block-level box可以參與建立BFC, 它規定了內部的Block-level Box如何佈局,並且與這個獨立盒子裡的佈局不受外部影響,當然它也不會影響到外面的元素。
less是如何寫css檔案的:
客戶端
我們可以直接在客戶端使用 .less(LESS 原始檔),只需要從 lesscss.org下載 less.js 檔案,然後在我們需要引入 LESS 原始檔的 HTML 中加入如下程式碼:
<link rel="stylesheet/less" type="text/css" href="styles.less">複製程式碼
LESS 原始檔的引入方式與標準 CSS 檔案引入方式一樣:
<link rel="stylesheet/less" type="text/css" href="styles.less">複製程式碼
需要注意的是:在引入 .less 檔案時,rel 屬性要設定為“stylesheet/less”。還有更重要的一點需要注意的是:LESS 原始檔一定要在 less.js 引入之前引入,這樣才能保證 LESS 原始檔正確編譯解析。
伺服器端
@import “variables.less”;複製程式碼
.less 檔案也可以省略字尾名,像這樣:
@import “variables”;複製程式碼
引入 CSS 同 LESS 檔案一樣,只是 .css 字尾名不能省略。
變數
LESS 允許開發者自定義變數,變數可以在全域性樣式中使用,變數使得樣式修改起來更加簡單。
@border-color : #b5bcc7;
.mythemes tableBorder{
border : 1px solid @border-color;
}複製程式碼
LESS 中的變數和其他程式語言一樣,可以實現值的複用,同樣它也有生命週期,也就是 Scope(變數範圍,開發人員慣稱之為作用域),簡單的講就是區域性變數還是全域性變數的概念,查詢變數的順序是先在區域性定義中找,如果找不到,則查詢上級定義,直至全域性。下面我們通過一個簡單的例子來解釋 Scope。
清單 5. LESS 檔案
@width : 20px;
#homeDiv {
@width : 30px;
#centerDiv{
width : @width;// 此處應該取最近定義的變數 width 的值 30px
}
}
#leftDiv {
width : @width; // 此處應該取最上面定義的變數 width 的值 20px
}複製程式碼
經過編譯生成的 CSS 檔案如下:
清單 6. CSS 檔案
#homeDiv #centerDiv {
width: 30px;
}
#leftDiv {
width: 20px;
}複製程式碼
繼承
less也有繼承方法,這樣可以我們的css也可以像js檔案一樣避免程式碼的冗餘,更高效的開發。
巢狀的規則
在我們書寫標準 CSS 的時候,遇到多層的元素巢狀這種情況時,我們要麼採用從外到內的選擇器巢狀定義,要麼採用給特定元素加 CLASS 或 ID 的方式。在 LESS 中我們可以這樣寫:
清單 16. HTML 片段
<div id="home">
<div id="top">top</div>
<div id="center">
<div id="left">left</div>
<div id="right">right</div>
</div>
</div>複製程式碼
清單 17. LESS 檔案
#home{
color : blue;
width : 600px;
height : 500px;
border:outset;
#top{
border:outset;
width : 90%;
}
#center{
border:outset;
height : 300px;
width : 90%;
#left{
border:outset;
float : left;
width : 40%;
}
#right{
border:outset;
float : left;
width : 40%;
}
}
}複製程式碼