頁面渲染時,dom 元素所採用的 佈局模型。可經過 box-sizing
進行設置。主要分爲 標準盒模型 與 IE盒模型。css
根據計算寬高的區域可分爲:html
content-box
(W3C 標準盒模型)border-box
(IE 盒模型)padding-box
(僅Firefox實現過,後來已廢除)margin-box
(瀏覽器未實現)<div class = 'box'><div>
.box {
width:200px;
height:100px;
border:1px solid red;
padding: 10px;
margin:20px;
box-sizing: ···;
}
複製代碼
以上面的box爲例,在標準盒模型(box-sizing: content-box
)下,整個div
寬度爲:200 + (1 + 10 + 20) * 2 = 262px
; 內容部分content
寬度爲200px
;瀏覽器
在IE盒模型(box-sizing: border-box
)下,整個div寬度爲:200 + 20 * 2 = 240px;
內容部分content
寬度爲200 - (1 + 10) * 2 = 178px
。bash
塊格式化上下文(Block Formatting Context,BFC) 是Web頁面的可視化CSS渲染的一部分,是塊盒子的佈局過程發生的區域,也是浮動元素與其餘元素交互的區域。dom
下列常見的方式會建立塊格式化上下文:函數
根元素或包含根元素的元素佈局
塊格式化上下文包含建立它的元素內部的全部內容。flex
做用:ui
link
功能較多,能夠定義 RSS
,定義 Rel
等做用,而@import
只能用於加載 css
link
時,頁面會同步加載所引的 css
,而@import
所引用的 css
會等到頁面加載完才被加載@import
須要 IE5
以上才能使用,link
能夠使用 js
動態引入,@import
不行ES6 class 類的繼承使用this
將如下用 ES6 實現
//函數名和實例化構造名相同且大寫(非強制,但這麼寫有助於區分構造函數和普通函數)
function Person(name,age) {
this.name = name;
this.age=age;
}
Person.prototype.say = function(){
return "個人名字叫" + this.name+"今年"+this.age+"歲了";
}
var obj=new Person("laotie",88);//經過構造函數建立對象,必須使用new 運算符
console.log(obj.say());//個人名字叫laotie今年88歲了
複製代碼
ES6 實現
class Person{//定義了一個名字爲Person的類
constructor(name,age){//constructor是一個構造方法,用來接收參數
this.name = name;//this表明的是實例對象
this.age=age;
}
say = () => `個人名字叫${this.name},今年${this.age}歲了`
}
var obj=new Person("laotie",88);
console.log(obj.say());
複製代碼
應用場景: