Web前端幻術(持續更新)
title: 前端法術
tags: 前端,Html!][1],Css,JavaScript
grammar_cjkRuby: true
---
跳轉到文章結尾
前端被我稱為幻術,這篇文章還是待完善的。其他我有空會寫。
目錄:
目錄還沒寫,有空會寫。
Web幻術
作業系統:Windows10
編譯器:sublime
常用操作:- 新增資料夾到當前介面 Project>Add Folder to Project
- 開啟資料夾到新的介面 File>Open Folder
- 從Sublime中移除 右鍵>Remove Folder from Project
- 顯示或開啟控制檯 Ctrl+`
- 開啟命令面板 Tools > Command Palette/Ctrl+Shift+P
- sublime建立h5 !+Tab/html:5+Tab
- sublime建立xthml html:xt+Tab
安裝外掛:在命令面板中輸入install,然後輸入外掛名稱
推薦書單:《HTML佈局之路》
前端說的就是網頁的前端
- 前端工程師是新興職業
- 最初的撥號上網,連線簡單的網頁
- 網頁從最初的頁面顯示已經發展到應用程式,技術含量越來越大。職位由美工演變成了UI設計師和前端工程師。
- 互動效果,處理資料,頁面改口為介面
- 技術更新特別快
- 前端三大塊
- HTML:頁面結構
- CSS:頁面表現:元素大小、顏色、位置、隱藏或顯示、部分動畫效果
- JavaScript:頁面行為:部分動畫效果、頁面與使用者的互動、頁面功能
HTMl
- 單標籤與雙標籤
- 標籤的巢狀
- 學習html語言就是學習標籤的用法
HTML是 HyperText Mark-up Language 的首字母簡寫,意思是超文字標記語言,超文字指的是超連結,標記指的是標籤,是一種用來製作網頁的語言,這種語言由一個個的標籤組成,用這種語言製作的檔案儲存的是一個文字檔案,檔案的副檔名為html或者htm,一個html檔案就是一個網頁,html檔案用編輯器開啟顯示的是文字,可以用文字的方式編輯它,如果用瀏覽器開啟,瀏覽器會按照標籤描述內容將檔案渲染成網頁,顯示的網頁可以從一個網頁連結跳轉到另外一個網頁。
- 文件宣告:頂格寫
<!DOCTYPE html>
- meta宣告:宣告,編碼方式,快取,關鍵詞(位於頭部標籤內)
<meta charset="UTF-8">
- lang的en與zh-CN文件語言宣告,可以不寫,主要用於統計
<!--<html lang="en">-->
<html lang="zh-CN">
- Ctrl+S儲存是一個好習慣
- 不論大廠還是小廠,檔案就是工程師的產出物
H5(html)與XHTML1.0
- 兩者的文件宣告和編碼宣告不同,H5比xhtml更精簡,而且向下相容,
- H5新增了更多標籤
html文件規範
xhtml制定了文件的編寫規範,html5可部分遵守,也可全部遵守,看開發要求。
- 所有的標籤必須小寫
- 所有的屬性必須用雙引號括起來
- 所有標籤必須閉合
- img必須要加alt屬性(對圖片的描述)
註釋
- 上線的時候,把註釋中無意義的東西刪掉,包括沒用的空格刪掉,這對於網路傳輸是有意義的。
- html中的註釋:
<!--我是註釋-->
html標題與段落
- h標籤與p標籤均是雙標籤
- 搜尋引擎會使用標題將網頁的結構和內容(根據網頁的排版和優化)編制索引,所以網頁上使用標題是很重要的。
<h1>
用作主標題(最重要的),其後是<h2>
(次重要的),再其次是<h3>
,以此類推最多至<h6>
。- p標籤不會自動換行
修飾標籤,div標籤與span標籤
<br />
是單標籤:換行 與 
空格實體和縮排實體- 網頁中寫"
<
"或是">
"會被轉義,所以寫做">
“與”<
“ <span></span>
行內標籤,沒有具體語義,表示一行內的一小段內容,在我看來span標籤是div的兒子,但是兩者沒有可替代性。<div></div>
標籤是塊級標籤,是最常用的標籤之一。表示一塊內容,沒有具體語義。- 語義化標籤:
- em標籤 行內元素,表示語氣中的強調詞
- i標籤 行內元素,原本沒有語義,w3c強加了語義,表示專業詞彙
- b標籤 行內元素,原本沒有語義,w3c強加了語義,表示文件中的關鍵字或者產品名
- strong標籤 行內元素,表示非常重要的段落內容
語義化的標籤是方便所搜引擎能認識這些標籤,理解文件結構,方便網站的收錄、被搜尋。
圖片新增、超連結、絕對路徑與相對路徑
- 圖片新增的img標籤是單標籤,行內標籤src與alt我們約定必填
- a標籤中的html檔案絕對路徑前,加上"file:///"或者"\"("/"也可以)就可以訪問,title屬性是標籤的提示,
- 空連結的兩種寫法:herf="#"號是空連結,作用是連線到當前頁面頂部。
- 第二種寫法:herf="JavaScript:;"這表示告訴js什麼也不做
- 錨點跳轉,也叫頁面內部跳轉。就是herf指定一個標籤的id,比如herf="#title01".
- target屬性的預設值是在當前視窗開啟頁面
target="_self"
,修改為在新的視窗開啟頁面:target="_blank"
- 絕對位置是相對於磁碟的根目錄去尋找的位置,絕對路徑的相容性不好,就是遷移不好。
- 相對位置是相對於當前資料夾的位置去尋找的位置,相對路徑遷移性比較好
- 超文字連結"a"是雙標籤,行內標籤,支援巢狀。
列表
- dl>(dt+dd)*3 生成自定義列表
- ol>li*3 生成有序列表
- ul>li*3 生成無序列表
html表格
- 曾作為主流佈局方法應用在網頁上
- table>((tr>th3)+(tr>td3))生成兩行三列的表格
- table是表格,tr是行,th是表頭,td是普通單元格:巢狀關係是:table>tr>th/td
- table常用屬性:
- border 定義表格的邊框
- cellpadding 定義單元格內內容與邊框的距離(內邊距)
- cellspacing 定義單元格與單元格之間的距離(外邊距)
- align 設定單元格中內容的水平對齊方式,設定值有:left | center | right
- valign 設定單元格中內容的垂直對齊方式 top | middle | bottom
- colspan 設定單元格水平合併
- rowspan 設定單元格垂直合併
舊版table佈局方式
- 製作網頁是根據UI設計師的圖紙來參照製作的,而不是憑空想出來的。
html表單
- 表單用於蒐集不同型別的使用者輸入,表單由不同型別的標籤組成,實現一個特定功能的表單區域(比如:註冊),首先應該用
<form>
標籤來定義表單區域整體,在此標籤中再使用不同的表單控制元件來實現不同型別的資訊輸入. - form定義表單區域
- label標籤定義表單控制元件的文字標註,提高使用者體驗的細節
- for屬性:for="某標籤的id",用於操作啟用標籤,比如Inpu輸入框,選擇框等
- input設定資訊輸入框
- textarea定義多行文字輸入(大文字)
- select>option定義下拉列表選擇框
post提交方式資料不會暴露在URL中
input的屬性
- input標籤是一個單標籤,行內標籤。也是表單中最常用的控制元件,它擁有很多屬性,為表單提供了豐富的控制元件。
- text文字
- password密碼
- radio單選
- checkbox多選
- file檔案型別
- submit提交內容
- reset重置內容
- hidden隱藏標籤
html內嵌框架
<iframe>
標籤會建立包含另外一個html檔案的內聯框架(即行內框架),src屬性來定義另一個html檔案的引用地址,frameborder屬性定義邊框,scrolling屬性定義是否有滾動條
<iframe src="http://www..." frameborder="0" scrolling="no"></iframe>
Javascript
歷史:
1.源於網景公司,初衷是為了表單快速驗證,通過瀏覽器解釋
2.起初前臺後臺都不太願意學
3.flash一度鼎盛,遊戲,動畫,網頁。幾乎能取代html和JavaScript。但是對外掛依賴。後來因為一些歷史的原因。
4.V8引擎由谷歌公司發明,加速了JavaScript的解析速度
5.隨之而來出現了ajax技術:實現無重新整理、區域性重新整理。
6.全世界的Flash網頁幾乎都被JavaScript取代了。
7.ActionScript語言主要用於操作視訊中的操作(.flv),源於Adobe公司。
8.Jscript是上不了檯面的語言
- JavaScript的執行環境試在瀏覽器上的,相當於買了的電腦都有解釋的能力。
- JavaScript是嵌入到html中執行的,而不是單獨執行,它是一把寶劍,它也沒有劍柄。
JavaScript介紹
JavaScript是執行在瀏覽器中的解釋性指令碼語言,它3主要解決的是前端與使用者互動。前端指令碼語言還有JScript(微軟,IE獨有),ActionScript( Adobe公司,需要外掛)等。
- jQuery是一個前後臺都通的JS庫,全球百分之四十二的網站在使用jQuery。jQuery是JavaScript語言課程內的重點分支。
- 學習原生JavaScript是為了熟悉和深入瞭解它的語法,另一方面也是為了面試。
- jQuery是一個經常被初學者遺忘的,但是它實際上是非常重要的東西,所以要重點學習和練習。
- 大學裡也沒有開JavaScript的課程,我這裡補充一句,好多大學連python語言都沒有開。
JavaScript也是完整的程式語言,巨有高階語言的特性:面向物件、類等。
JavaScript一種直譯式指令碼語言,是一種動態型別、弱型別、基於原型的語言,內建支援型別。那麼問題來了,為什麼我們要學JavaScript?尤其是當你已經掌握了某些其他程式語言如Java、C++的情況下。簡單粗暴的回答就是:因為你沒有選擇。在Web世界裡,只有JavaScript能跨平臺、跨瀏覽器驅動網頁,與使用者互動。——廖雪峰
JavaScrtipy的誤解
很多人認為,寫JavaScript程式碼很簡單。並且編寫它只是為了在網頁上新增一點互動和動畫效果。但是這是完全錯誤的理解,它的精髓不為大多數開發人員所熟知。
ECMAScript標準
因為網景開發了JavaScript,一年後微軟又模仿JavaScript開發了JScript,為了讓JavaScript成為全球標準,幾個公司聯合ECMA(European Computer Manufacturers Association)組織定製了JavaScript語言的標準,被稱為ECMAScript標準。
所以簡單說來就是,ECMAScript是一種語言標準,而JavaScript是網景公司對ECMAScript標準的一種實現。
那為什麼不直接把JavaScript定為標準呢?因為JavaScript是網景的註冊商標。
不過大多數時候,我們還是用JavaScript這個詞。如果你遇到ECMAScript這個詞,簡單把它替換為JavaScript就行了。
JavaScript嵌入頁面的方式
- JavaScript嵌入頁面的方式與CSS極度相似,分為行間(行內)事件,頁面內部(嵌入)事件,外鏈事件
- 每一個標籤都有自己的事件屬性
- 第一種行間屬性,不推薦批量使用
- 第二種是內部事件(嵌入事件),可以寫在頭部或者尾部。
<script type="text/javascript">
/* 暴露在script中的語句會直接順序執行。*/
alert("here not a world.")
</script>
- 第三種在js檔案中寫程式碼,導進來就好。
<script type="text/javascript" src="js/hello.js"></script>
- 在大的公司,常常是html和css是一幫人做,script是另一幫人做。html和css雖然入門門檻很低,但是要想做好做精,也是不容易的事情。JavaScript是前端三大塊的最後一大塊。
- JavaScript單行註釋與多行註釋:// 單行註釋 /* 多行註釋 */
變數
- JavaScript 是一種弱型別語言,也就是說我們定義變數時候不用指定變數型別。javascript的變數型別由它的值來決定。 定義變數需要用關鍵字 'var'
- 學到這裡我們應該發現語言之間的知識體系都是相似的,變數,運算子,演算法,表示式,函式等
- 宣告變數的關鍵字:var
電話面試裡常考的變數型別:五種基本型別、一種複合型別。
- 5種基本資料型別:
- number、string、boolean、undefined、null
- 1種複合型別:
- object
- 命名規範的三點:
- 區別大小寫,順便踩一腳《悟空傳》電影版
- 第一個字元必須是字母、下劃線或者$符號
- 其他字字元可以是字母、下劃線、$、數字
- 定義number型別變數:var num1 = 1;
- 定義string型別變數: var str1 = 'k';
- 定義boolean型別變數: var bool1 = true 或者 var bool2 = false
- 定義undefined型別變數: var var1; // 除了變數名什麼都不寫。
這是一些未完善的東西
外邊距margin
id選擇器 #id
浮動 float
CSS :hover 選擇器
選擇滑鼠指標浮動在其上的元素,並設定其樣式:
a:hover
{
background-color:yellow;
}
{# 這裡的A標籤在滑鼠浮動其上之時,則會變色。#}
絕對定位與相對定位
前端頁面收藏