主要工做,作頁面。PC端的網站、移動APP、小遊戲、小程序css
H5是HTML語言的簡稱,是HTML語言的第五個版本html
web標準:結構標準 表現標準 行爲標準前端
HTML 指的是超文本標記語言 (Hyper Text Markup Language)css3
XHTML指可擴展超文本標記語言(標識語言)(EXtensible HyperText Markup Language)。「超文本」就是指頁面內能夠包含圖片、連接,甚至音樂、程序等非文字元素。web
HTML5指的是HTML的第五次重大修改(第5個版本)canvas
1.XHTML 元素必須被正確地嵌套。 XHTML是HTML的嚴格模式。小程序
2.XHTML 元素必須被關閉。瀏覽器
3.標籤名必須用小寫字母。緩存
4.XHTML 文檔必須擁有根元素。微信
定義文檔類型,讓瀏覽器解析器知道應該用哪一個規範來解析文檔。<!DOCTYPE>聲明必須在 HTML 文檔 的第一行,這並非一個 HTML 標籤。
標準模式(Standards mode)以瀏覽器支持的最高標準運行;混雜模式(Quirks mode)中頁面是一種比較寬鬆的向後兼容的方式顯示。
一共有三種類型,分別是:
特色:自上而下排列的,能夠設置寬和高,獨佔一行h1-h六、p、ul、li、ol、dl、dt、dd、form、 table。。。
特色:橫向排列的,不能設置寬和高,大小是由內容撐開的 span、font、b、strong、em、i、 a。。。
特色:橫向排列的,能夠設置寬和高 img、全部的input、select、textarea。。。
<video src="video/mov_bbb.mp4" controls="controls"></video>
source能夠有多個,若是當前瀏覽器不支持此格式的視頻,有其餘的格式作備用 支持的視頻格式:mp四、ogg(ogv)、webm scr表示路徑 controls 播放控件 autoplay自動播放 loop循環播放 poster 視頻封面 muted 靜音 在實際的開發中,須要本身給設定樣式 複製代碼
<audio src="music/金志文 - 夏洛特煩惱.mp3" controls="controls" autoplay="autoplay" loop="loop"></audio>
屬性跟video差很少... 複製代碼
datalist:提供一個事先定義好的列表,經過id與input關聯,當在input內輸入時,用戶將會看到一個下 拉列表供選擇
<input list="sd"/> <datalist id="sd"> <option value="寶馬">寶馬</option> <option value="奔馳">奔馳</option> </datalist> 複製代碼
WebSocket SharedWorker
也能夠調用 localstorge、cookies 等本地存儲方式。 localstorge 在另外一個瀏覽上下文裏被添加、修改或刪除時,它都會觸發一個事件,咱們經過監聽事件,控制它的值來進行頁面信息通訊。
注意:Safari 在無痕模式下設置 localstorge 值時會拋出QuotaExceededError 的異常
css就是層疊樣式表,是web標準的表現標準語言,對網頁信息的顯示的控制 層疊,對於樣式表來講就是優先級的問題,選擇器是權重大小
內部樣式表包含在 style 標籤內,一個 style 標籤就表示一個內部樣式表。
而經過標籤的 style 屬性定義的樣式屬性就不是樣式表。若是一個網頁文檔中包含多個 style 標籤,就表示該文檔包含了多個內部樣式表。
例如:
<style> 選擇器{屬性:屬性值;} </style> 複製代碼
若是 CSS 樣式被放置在網頁文檔外部的文件中,則稱爲外部樣式表,實際上,外部樣式表也就是一個文本文件,擴展名爲.css。而後須要使用的時候,導入html文件便可。
例如:
<link rel="stylesheet" type="text/css" href=""/>
<style> @import url(); </style> 複製代碼
兩種引入方式的區別:
在標籤內部的style屬性裏面寫
內聯樣式表的優先級最高,內部樣式表和外部樣式表的優先級和書寫的順序有關。 後寫的會把前面的相同屬性覆蓋掉,其餘屬性依舊會繼承
經過html的標籤名進行選擇,例如:p{}
經過html中標籤的class屬性進行選擇,例如:
html:<div class="div1"></div>
css: .div1{屬性:屬性值;屬性:屬性值} class選擇器通常給css使用,id選擇器留給js使用. 標籤的一個class能夠取多個名 <div class="div1 big">這是猴子</div> 複製代碼
經過html中標籤的id屬性進行選擇,例如:
<div id="top"></div> css: #top{屬性:屬性值;屬性:屬性值} 複製代碼
選擇全部的標籤,通常用來清除內外邊距,重置樣式。
/*重置樣式*/ *{margin:0;padding:0;} a{text-decoration:none;} li{list-style:none;} 複製代碼
選擇器之間用空格隔開。修改選擇器1下的全部選擇器2
選擇符1 選擇符2{屬性:屬性值;}
僞類選擇器使用時須要按照上面的順序書寫,以避免發生錯誤。 不要給其餘標籤使用除了hover之外的僞類選擇器
僞對象選擇器有::after、::before、::first-letter、::first-line,僞對象選擇符也稱爲僞元素選擇器----可讓咱們把一個元素當作兩個來使用。
div::after{content:url(logo.jpg);}
div::after{content:"文本內容";} 複製代碼
div::before{content:"放在前面的內容"}
複製代碼
::first-letter定義對象內第一個字符的樣式。(該僞元素只能用於塊級元素)
::first-line定義對象內第一行的樣式。該僞元素只能用於塊級元素。
ie6如下版本不支持僞對象選擇符
選擇器以逗號隔開,能夠同時選中多個,例如
//多個選擇器有相一樣式的時候,用羣組選擇器,合併爲一組 div,p,span{color:red;} 複製代碼
上面已經說過,css是層疊樣式表,有優先級。權重越大的樣式的優先級越高,css權重以四位數表示分別以下:
1.序列選擇器(同級別)
2.同類型,能夠被隔開
input[name]{ width: 200px; height: 50px; } input[id]{ border: 1px solid red; } 複製代碼
input[type="text"]{
border: 1px solid red; } input[type="tel"]{ border: 1px solid blue; } 複製代碼
a[href^="#"]{
background-color: red; } 複製代碼
a[title$="叫"]{
background-color: orange; } 複製代碼
a[href*="#"]{
background-color: red; } 複製代碼
就是網頁的正常排版順序 --- 元素排序方式根據元素類型來的
一個元素設置了float屬性,就會變成浮動流,不遵循標準流的規則
一個元素若是設置了浮動,再也不遵循標準流中的規則,它看起來就像從標準流中刪除了同樣,原先 在標準流的中位置會發生改變
浮動的元素對標準流元素原本不佔位了,但文字卻不能到浮動的元素的位置,所以 會出現文本環繞現象
高度塌陷就是若是沒有給父元素設置高度而但願父元素高度自適應的時候,若是給子元素設置了浮動, 會發生高度塌陷。
在標準流中子元素能夠撐開容器的高度,可是浮動後,脫離了標準流,子元素撐不開容器的高度了,把 這種現象叫高度塌陷。
高度塌陷會引發元素重疊。
清除浮動:清除浮動的負面影響
注意點:並非只要設置了浮動就要必須清除,只有在發生高度塌陷和元素重疊時才須要清除
清除浮動的方法:
一、給父元素設置overflow:hidden
overflow:hidden本來意思是文本溢出隱藏,有清除浮動的功能
二、使用空元素(空盒子)的方法
在浮動的子元素的同級下增長一個空(div)的元素
這個空的元素不能有任何其餘樣式,再給空元素設置clear:both/left/right/none;
三、萬能清除法
定義一個類名,使用僞元素:after,並把類名賦給浮動元素的父級元素
.clear:after{
display:block; clear:both; content:"."; visibility:hidden; height:0; } .clear{ //兼容ie瀏覽器 zoom:1; } 複製代碼
盒模型是css佈局的基石,決定了網頁元素如何顯示以及元素相互之間的關係,盒模型是一種形象的稱呼,在css裏面規定了全部的標籤都有一個盒模型。
盒模型組成:margin(邊界、外邊距)、padding(內邊距、填充、補白)、border(邊框)、 content(內容---width和height)
盒模型有如下兩種:
w3c標準盒模型
盒模型的寬度 = 左右margin + 左右padding + 左右border + width(內容)
IE怪異盒模型
盒模型的寬度 = 左右margin + width(內容)--- 包含了padding和border
區別:
標準盒模型和怪異盒模型的區別在於計算方式的不一樣,怪異盒模型的寬度在計算時包含了padding和border
設置怪異盒模型的方法: 在css3裏面提供了一個屬性,能夠把標準盒模型轉成怪異盒模型使用
box-sizing:border-box(把標準盒模型轉成怪異盒模型)/content-box;(標準盒模型--默認值)
若是但願所有轉成怪異盒模型,在*裏面設置box-sizing:border-box;
省略號顯示:text-overflow:clip/ellipsis 不顯示省略號/顯示省略號標記。
單行省略號顯示的條件:
.test{
width:200px; white-space:nowrap; overflow: hidden; text-overflow: ellipsis; } 複製代碼
在WebKit瀏覽器或移動端(絕大部分是WebKit內核的瀏覽器)的頁面實現比較簡單,能夠直接使用WebKit的CSS擴展屬性(WebKit是私有屬性)-webkit-line-clamp ;注意:這是一個 不規範的屬性(unsupported WebKit property),它沒有出如今 CSS 規範草案中。
-webkit-line-clamp用來限制在一個塊元素顯示的文本的行數。 爲了實現該效果,它須要組合其餘的WebKit屬性。常見結合屬性:
例子:
overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; 複製代碼
比較靠譜簡單的作法就是設置相對定位的容器高度,用包含省略號(…)的元素模擬實現;
例如:
p {
position:relative; line-height:1.4em; /* 3 times the line-height to show 3 lines */ height:4.2em; overflow:hidden; } p::after { content:"..."; font-weight:bold; position:absolute; bottom:0; right:0; padding:0 20px 1px 45px; background:url(/newimg88/2014/09/ellipsis_bg.png) repeat-y; } 複製代碼
注意:
用js也能夠根據上面的思路去模擬,實現也很簡單
語法:position:static(默認值-靜態定位) /absolute(絕對定位)/relative(相對定 位)/fixed(固定定位),其也是爲了解決佈局問題。
所謂的定位其實就是讓元素的位置進行移動,給元素設置了position屬性後,元素就變成了定位流。
定位屬性,必須配合其餘值來使用,left、right、top、bottom。
定位元素有參照物。
特色:
相對定位是相對於本身之前在標準流中的位置進行定位的(注意點:相對定位是半脫落狀態)
不脫落文檔流(標準流)的,佔位置(空間)
區分元素類型的(區分是塊級元素、內聯元素、行內塊元素),元素之前是什麼類型,設置了相對定位後仍是什麼類型
對元素進行微調,主要的做用是配合絕對定位來使用
特色:
脫離文檔流的,不佔位置的
不區分元素類型
絕對定位是相對於父元素進行定位的,若是父元素不是定位流,元素會往上查找有定位流的元素,找到最上級仍是沒有定位流,會相對於body進行定位(相對於祖先元素進行定位的)
特色:
脫落文檔流的,不佔空間
不區分元素類型
相對於body進行定位的
不會隨着滾動條的滾動而滾動
能夠相互之間重疊
position: sticky; 粘性定位
粘性定位是相對定位和固定定位的混合。元素在跨越特定閾值前爲相對定位,以後爲固定定位。
父元素相對定位
子元素絕對定位
子元素left,right,top,bottom=0
子元素margin:auto;
示例:
html
<div class="transform"><img src="favicon.ico" /></div>
複製代碼
css
.transform {
width: 300px; height: 300px; text-align: center; line-height: 300px; background: #90EE90; margin: 0 auto; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .transform img { width: 50px; height: 50px; vertical-align: middle; } 複製代碼
css示例:
.flex{ font-size: 25px; height: 200px; border: 1px solid black; display: flex; align-items: center; justify-content: center; } 複製代碼
css示例:
.table-cell { display: table-cell; vertical-align: middle; text-align: center; width: 120px; height: 120px; background: purple; } 複製代碼
BFC全稱Block Formatting Context ,中文直譯爲塊級格式上下文。它是W3C CSS 2.1 規範中的 一個概念,它決定了元素如何對其內容進行定位,以及與其餘元素的關係和相互做用。
特色:
如何觸發BFC:
主要應用場景:
兩者均爲隱藏顯示區域。於前者而言,該屬性會使對象不可見,但該對象在網頁中所佔的空間沒有改 變;於後者而言,該屬性則使對象徹底完全消失
簡單的來講就是個大瀏覽器使用的內核版本是不同的,有着具備本身的內核。其中不得不說ie六、7了。
做爲咱們前端人員來講ie無疑成爲咱們前端開發人員的一大阻礙,有人就說ie是垃圾瀏覽器,是奇葩瀏覽器。而爲何還會用它呢,那是它在市場上佔據着重要地位。
其實在很早之前ie就佔據了絕大部分的瀏覽器市場擁有者霸主地位,以谷歌,火狐爲表明的瀏覽器商家爲了爭奪市場,從新瓜分瀏覽器市場這塊大的蛋糕,因而就組織起來制定了w3cschool的這樣的一套規範來與ie來進行抗衡。就是這樣ie瀏覽器和w3c下的個大瀏覽器纔會有這麼多的兼容性問題。
說到這裏其實瀏覽器兼容性緣由很簡單那是由於ie先於爲w3c誕生。在w3c誕生以前ie就有着本身的的一套執行的標準。之因此以谷歌,火狐爲表明的瀏覽器商家會指定一套屬於本身的標準,究其根源是爲了爭奪市場的佔有力。兩個字「利益」。
其實ie並無錯,咱們不能只看到事物的一面,還要看到實物的本質。用哲學的話來講,咱們要從感性認識上升到理性認識透過事物的表象抓住事物的本質。能夠看到在後來的ie8之後,ie爲了在市場上生存下去,只有向w3c妥協。慢慢接近於爲w3c的標準
圖片默認會給容器撐大3px,給圖片display:block,這樣圖片就會自上而下排列,不橫向排列。。
圖片並排中間有間隙,給圖片左浮動。。
給圖片display:block;
img{border:none;}
如何在低版本IE下寫出1px的高度?
IE6及如下版本,會出現50%+50%>100%的狀況
給右面的元素clear:right;才能解決
子元素的margin-top,被瀏覽器誤認爲設置給父元素,致使父元素往下掉。
解決方法:給父元素overflow:hidden;或者讓子元素浮動。
以上就是我對css、html的一些總結,但願能夠幫到你們,後期會更新我對JavaScript的一些總結,想持續瞭解的請關注我公衆號
我是monkeysoft,你的【三連】就是monkeysoft創做的最大動力,若是本篇博客有任何錯誤和建議,歡迎你們留言!
文章持續更新,能夠微信搜索 【小猴子的web成長之路】關注公衆號第一時間閱讀,關注以後後臺回覆知識體系,更可領取小編精心準備的前端知識體系,將來學習再也不迷茫,更可加入技術羣交流討論。
本文使用 mdnice 排版