display:inline;javascript
多個元素佔一行css
不能夠設置寬高html
常見行級元素java
<a> <span> <i> <strong> <em>
複製代碼
行級元素 只能嵌套行級元素正則表達式
display:block;數組
本身佔一行瀏覽器
能夠設置寬高函數
不設置width的時候 width 默認是100%spa
不設置height的時候 高被裏面內容撐開指針
塊級元素能夠嵌套 行級元素、行級塊元素、塊級元素
特例:h1~h6 p 不能夠嵌套塊級元素
常見塊級元素
<div> <p> <ul> <li> <ol> <h1~h6> <table>
複製代碼
id選擇器
#id{
}
複製代碼
class選擇器
.class{
}
複製代碼
標籤選擇器
標籤{
}
複製代碼
後代選擇器
a b{
}
複製代碼
⼦代選擇器
a>b{
}
複製代碼
僞類選擇器
:
複製代碼
僞元素選擇器
::
複製代碼
優先級總結排序:
!important > 行內樣式 > ID選擇器 > 類選擇器 > 元素 > 通配符 > 繼承 > 瀏覽器默認屬性
標準盒模型
Number類型
Number類型包含整數和浮點數(浮點數數值必須包含一個小數點,且小數點後面至少有一位數字)兩種值。
NaN:非數字類型。特色:① 涉及到的 任何關於NaN的操做,都會返回NaN ② NaN不等於自身。
isNaN() 函數用於檢查其參數是不是非數字值。
isNaN(123) //false isNaN("hello") //true
String類型
字符串有length屬性。
字符串轉換:轉型函數String(),適用於任何數據類型(null,undefined 轉換後爲null和undefined);toString()方法(null,defined沒有toString()方法)。
Boolean類型
該類型只有兩個值,true和false
Undefined類型
只有一個值,即undefined值。使用var聲明瞭變量,但未給變量初始化值,那麼這個變量的值就是undefined。
Null類型
null類型被看作空對象指針,前文說到null類型也是空的對象引用。
嵌套關係
1.給父元素設置邊框(透明的transparent),若是有外邊距的大小要求,要把加上的邊框減去
2.給父元素設置 overflow:hidden(溢出隱藏)
3.給父元素或子元素設置 絕對定位(position:absolute)
4.給父元素或子元素設置 浮動
並列關係
1.把兩個元素的外邊距所有設置在一個元素上
2.當元素沒有邊框或背景色等影響因素存在時,能夠給元素加內邊距,也能達到效果。
元素浮動會形成塌陷問題
1.父元素溢出隱藏 overflow:hidden;
2.新增一個空的子元素 (id="clear") 而後設置樣式 (清除浮動)clear:both/right/left
#clear{
clear:both
}
複製代碼
3.把全部浮動的元素加入一個相同的類:clearfix 而後把該類設置爲僞元素(::)並設置樣式
.clearfix::after{
content:'';
display:block;
clear:both;
}
複製代碼
僞元素有兩種:after(在容器的最後面) before(在容器的最前面)
4.給父元素設置高度
常規取值: 1.static(靜態) 2.Relative(相對) 3.Absolute(絕對) 4.fixed(固定)
position: relative;相對定位
1> 不影響元素自己特性(不管區塊元素仍是內聯元素會保留其本來特性)
2> 不會使元素脫離文檔流(元素本來位置會被保留,即改變位置也不會佔用新位置)
3> 沒有定位偏移量時對元素無影響(相對於自身本來位置進行偏移)
4>提高層級(用z-index樣式的值能夠改變一個定位元素的層級關係,從而改變元素的覆蓋關係,值越大越在上面,z-index只能在position屬性值爲relative或absolute或fixed的元素上有效。)(兩個都爲定位元素,後面的會覆蓋前面的定位)
position: absolute;絕對定位
1> 使元素徹底脫離文檔流(在文檔流中再也不佔位)
2> 使內聯元素在設置寬高的時候支持寬高(改變內聯元素的特性)
3> 使區塊元素在未設置寬度時由內容撐開寬度(改變區塊元素的特性)
4> 相對於最近一個有定位的父元素偏移(若其父元素沒有定位則逐層上找,直到document——頁面文檔對象)
5> 相對定位通常配合絕對定位使用(將父元素設置相對定位,使其相對於父元素偏移)
6> 提高層級(同相對定位)
position: fixed;固定定位
fixed生成固定定位的元素,相對於瀏覽器窗口進行定位。
static(靜態)
HTML元素的默認值,不受top、bottom、left、right屬性影響,元素出如今正常的文檔 流中
js中有5種數據類型:Undefined、Null、Boolean、Number和String
Undefined
Undefined類型只有一個值,即undefined。在使用var聲明變量但未對其加以初始化時,這個變量的值就是undefined。 但使人困惑的是,對未初始化的變量執行typeof會返回undefined。
Null
Null類型只有一個值,即null。從邏輯角度來看,null值表示一個空對象指針,而這也正是使用typeof操做符檢測null值時會返回「object」的緣由。 若是定義的變量準備在未來用於保存對象,那麼最好將該變量初始化爲null而不是其餘值。這樣一來,只要直接檢查null值就能夠知道相應的變量是否已經保存了一個對象的引用。 實際上,undefined值是派生自null值,所以ECMA-262規定對它們的相等性檢測要返回true。
Boolean
boolean值有兩個字面值:true和false。這兩個值和數字值不是一回事,ture不必定等於1,而false也不必定等於0
Number
最基本的數值字面量格式是十進制整數,十進制整數能夠直接輸入。 整數能夠經過八進制或十六進制的字面值來表示。 其中八進制字面值的第一位必須是0,而後是八進制數字序列(0-7)。若是字面值中的數值超出了範圍,那麼前導零將被忽略,後面的數值將被看成十進制數值解析。 八進制字面量在嚴格模式是無效的,會致使支持該模式的JavaScript引擎拋出錯誤。 十六進制的前兩位必須是0x,後跟任何十六進制數字,其中A-F能夠大寫也能夠小寫。 進行算術計算時,全部以八進制和十六進制表示的數值最終都將被轉換爲十進制數值。
String
String類型用於標識由零活多個16位Unicode字符組成的字符序列,即字符串。
一、棧(stack)和堆(heap)
stack爲自動分配的內存空間,它由系統自動釋放;而heap則是動態分配的內存,大小也不必定會自動釋放
二、數據類型
JS分兩種數據類型:
基本數據類型:Number、String、Boolean、Null、 Undefined、Symbol(ES6),這些類型能夠直接操做保存在變量中的實際值。
引用數據類型:Object(在JS中除了基本數據類型之外的都是對象,數據是對象,函數是對象,正則表達式是對象)
三、基本數據類型(存放在棧中)
基本數據類型是指存放在棧中的簡單數據段,數據大小肯定,內存空間大小能夠分配,它們是直接按值存放的,因此能夠直接按值訪問
複製代碼
四、引用數據類型(存放在堆內存中的對象,每一個空間大小不同,要根據狀況進行特定的配置)
引用類型是存放在堆內存中的對象,變量實際上是保存的在棧內存中的一個指針(保存的是堆內存中的引用地址),這個指針指向堆內存。
引用類型數據在棧內存中保存的其實是對象在堆內存中的引用地址。經過這個引用地址能夠快速查找到保存中堆內存中的對象
複製代碼
var a = [1,2,3,4,5];
var b = a;//傳址 ,對象中傳給變量的數據是引用類型的,會存儲在堆中;
var c = a[0];//傳值,把對象中的屬性/數組中的數組項賦值給變量,這時變量C是基本數據類型,存儲在棧內存中;改變棧中的數據不會影響堆中的數據
alert(b);//1,2,3,4,5
alert(c);//1
//改變數值
b[4] = 6;
c = 7;
alert(a[4]);//6
alert(a[0]);//1
複製代碼
從上面咱們能夠得知,當我改變b中的數據時,a中數據也發生了變化;可是當我改變c的數據值時,a卻沒有發生改變。
這就是傳值與傳址的區別。由於a是數組,屬於引用類型,因此它賦予給b的時候傳的是棧中的地址(至關於新建了一個不一樣名「指針」),而不是堆內存中的對象。而c僅僅是從a堆內存中獲取的一個數據值,並保存在棧中。因此b修改的時候,會根據地址回到a堆中修改,c則直接在棧中修改,而且不能指向a堆內存中。
複製代碼