HTML與CSS學習基礎總結
第一天學習:
先了解學習的知識點有哪些:
HTML
HTML指的是超文字標記語言(Hyper Text Markip Language),它不是一種程式語言而是一種標記語言,通過使用標籤來描述網頁。
CSS
CSS (Cascading Style Sheets)是層疊樣式表用來定義網頁的顯示效果。
可以解決html程式碼對樣式定義的重複,提高了後期樣式程式碼的可維護性,並增強了網頁的顯示效果功能。
簡單一句話:CSS將網頁內容和顯示樣式進行分離,提高了顯示功能。
JS
JS 全稱(javascript)中文是java指令碼的意思 。
它的由來(在網際網路剛興起的時候,網路速度比較慢,而體驗又是放在伺服器端的,所以使用者體驗度非常差,為了瞭解這一難題,網景公司發明了livescript liverscript主要把表單驗證功能從後臺提升到了前端,因為不依賴網路,所以使用者體驗比較好。
但是由於知名度比較差,知道的人很少,後來由於sum公司的java語言一飛沖天,爆紅程式設計世界,為了跟風,博取知名度,網景公司把livescript 改成javascript. 後來微軟眼紅網景公司的成就,就發明了jscript。但是正因為此,導致了js的標準不同,所以給個大瀏覽器廠家帶來了很大的麻煩。
為了有一個統一的標準,js被提交到一個ecma組織,也正因為此,後來的js都是採用ecma標準(ECMAScript))
其次js的作用“增強頁面的趣味性,響應使用者的行為”; 特點(弱解釋指令碼語言,可以被瀏覽器直接解析 不需要編譯)
js的輸出,有兩種:
1.控制檯輸出(console.log())不會對文件造成影響
2.文件中輸出 document.write("xxxx") 會對文件造成影響
順便插入瞭解javaEE
什麼是JAVAEE?
主要是面向企業級開發(基礎的概念,實際上遠遠不止如此),對於我們來說
主要還是從事B/S架構的開發。
軟體結構的分類:
C/S架構的開發(客戶端到伺服器的開發):
例如:吃雞、QQ、LOL(有實體的應用客戶端)
特點:
1.有客戶端、必須要安裝客戶端程式
2.要進行客戶端的升級,除了伺服器進行程式碼的更新,客戶端也必須
重新安裝或者線上進行升級。
B/S架構的開發(瀏覽器到伺服器的開發):
例如:淘寶、天貓、騰訊網、網頁遊戲
特點:
1.不需要安裝任何的實體客戶端,只需要一個瀏覽器(核心)即可
2.要進行客戶端升級,只需要伺服器進行程式碼更新,客戶端不需要進行任何操作
其實,現在太部分的企業採用都是B/S架構(並不是說C/S比較少)
兩者來說,他們在各自的領域應該是怎麼樣的?
C/S:消耗的是你的系統資源(CPU/GPU/記憶體),所以執行的速度會比較流暢
而且對於圖層渲染來說,B/S架構是永遠達不到C/S架構的地步,適合做有動畫效果
、啟動速度快等等軟體
B/S:無法直接獲取你的系統資源,所有的系統資源的調配其實是由瀏覽器來做的
但是,瀏覽器本質是上也是基於C/S,B/S不適合特大型的實體軟體(遊戲開發)
第二天學習:
1.什麼是前端?
1.前端其實就是將設計師設計好的效果圖,通過網頁的形式展現給客戶
2.什麼是網頁?
2.網頁是由圖片、文字、連結、視訊、音樂、輸入框、表單等組成
3.WEB標準
HTML: 結構標準 相當於建房子的地基和框架,相當於人的身體
CSS: 表現標準 相當於房子的裝修,相當於妹子化妝
JS: 行為標準 相當於房子裡面只智慧家居,相當於妹子跳舞
4.瀏覽器
瀏覽器的核心(渲染引擎):也就是瀏覽器所採用的引擎,這個渲染引擎決定了你的網頁的
顯示方式以及排版佈局等等相關資訊(遵循標準)
IE/谷歌/歐朋/火狐/蘋果(這樣就會造成瀏覽器相容的問題)
5.html
xhtml1.0 W3C推薦的版本 2000年釋出
xhtml2.0 因為改變太大,最終胎死腹中
HTML4.0 W3C推薦的版本1997年12月
HTML5 2004年提出,2006年開始火爆,而且這個版本跟之前所有的版本都不同,改變太大
而且是一個完全新的團隊在做(火爆的主要原因還是因為移動端)。
HTML:超 文字 標記 語言
文字:說明HTML是由文字組成
超:說明HTML是由超連結組成
標記語言:說明HTML是使用標記進行組合的(解釋性語言,由瀏覽器進行解釋執行)
6.HTML怎麼寫?
標準結構:
<!doctype html> //文件宣告(告訴瀏覽器以什麼標準來執行下面的程式碼)
<html> // HTML的根標籤 所有的HTML都必須寫在根標籤裡面
<head></head> //HTML的頭部標籤,裡面的內容不顯示在瀏覽器主體,一般用於設定、匯入等相關檔案
<body></body>// HTML的主體標籤,裡面的所有內容會直接的顯示在瀏覽器
</html>
7.HTML的標籤分類:
單標籤:<!doctype html> <br/> <img/>
雙標籤:<head></head> <body></body>
可單可雙:<a/>
包含關係:<head><title>這個程式碼賊棒棒</title></head>
並列關係:<head></head><body></body>
8.HTML的開發工具:
1.記事本(推薦使用)
2.DW(,給設計師用的 很老)
3.sublime(專業級開發,外掛式安裝 缺什麼補什麼)
4.webstorm(很牛逼,介面非常好看 但是收費,而且太智慧)
5.Hbuilder(你們必須得支援,國產的,而且是Java寫的 非常適合H5的開發,用著很舒服)
9.HTML的基礎標籤
9.1 文字標籤
文字加粗:<b></b> <strong></strong>
文字斜體:<i></i> <em></em>
下劃線:<u></u> <ins></ins>
刪除線:<s></s> <del></del>
注意:上面多個實現方式,在xhtml1.0版本當中,明確推薦使用後者
因為後者是語義化標籤,針對瀏覽器來說,更加喜愛後者。
9.2 功能標籤
換行:<br/>
水平線:<hr/>
9.3 標題標籤
<h1> ~ <h6>
h6以下的字型均為預設字型,h系列的標籤,具備加粗和換行的功能
9.4 段落標籤
<p></p>
段落標籤,在每一個段落都是單獨顯示,除了進行分段,他還是一個容器(使用頻率非常大)
影象標籤:
<img src="影象的路徑"
alt="當圖片無法載入所給予使用者的文字提示"
title="滑鼠懸浮至圖片所給予的文字提示"
width="設定圖片的寬度(可以是畫素也可以是百分比)"
height="設定圖片的高度(可以是畫素也可以是百分比)"
/>
超連結標籤:
<a href="路徑" target="開啟方式">點選我到百度</a>
開啟方式:
_blank:新開視窗
_self:預設視窗
注意:
如果需要訪問的是一個具體路徑,你直接寫路徑就可以了
如果需要訪問的是網路上的資源,則需要寫上資源的協議名(http://www.baidu.com / ftp://172.18.33.10)
同時,還可以下載指定的壓縮檔案
列表:
無序列表:
<!-- ul是對瀏覽器宣告,他的子項是無序列表
type="disc" 預設
type="square" 實心方塊
type="circle" 空心圓
注意:一般情況下,我們不會去設定列表項的顯示圖案,只會儘可能的幹掉他
-->
<ul type="circle">
<!--li是這個無序列表的每個列表項-->
<li>林月如</li>
<li>胡歌</li>
<li>趙麗穎</li>
</ul>
有序列表:
<!-- ol是對瀏覽器宣告,他的子項是有序列表
type="2" 預設
type="A/a" 使用字母
type="I/i" 使用羅馬字元
注意:一般情況下,我們不會去設定列表項的顯示圖案,只會儘可能的幹掉他
-->
<ol type="6-15">
<!--li是這個有序列表的每個列表項-->
<li>林月如</li>
<li>胡歌</li>
<li>林月如</li>
<li>林月如</li>
<li>胡歌</li>
<li>林月如</li>
</ol>
定義列表:
<dl>
<!--宣告為列表的標題-->
<dt>橘梨紗最愛的</dt>
<!--宣告為這個標題下面的內容-->
<dd>蘇緒</dd>
<dd>阿香</dd>
<dt>阿香的</dt>
<dd>蘇緒</dd>
<dd>阿香</dd>
</dl>
練習:
我的電腦檔案
<ul>
<li>我的電腦
<ul>
<li>本地磁碟C
<ul>
<li>我的電影</li>
<li>我的香格里拉</li>
</ul>
</li>
<li>本地磁碟D
<ul>
<li>我的資料</li>
<li>我的全家福</li>
</ul>
</li>
</ul>
</li>
</ul>
表格:
<!--說明這是一個表格的結構-->
<table>
<!--一個tr即代表表格的一行-->
<tr align="center" bgcolor="fuchsia">
<!--一個td即代表這個行裡面的一個單元格-->
<td bgcolor="aqua">香格里拉</td>
</tr>
</table>
表格的邊框:border="1"
表格的寬度:width="300px"
表格的高度:height="100px"
單元格與單元格之間的間距:cellspacing="0px"
單元格內容與單元格內間距:cellpadding="10px"
水平對齊的方式:align="center"(左/中/右)[如果是table設定,則設定的是表格的對齊的方式]
設定背景顏色:bgcolor="fuchsia"
設定邊框的顏色:bordercolor="red"
合併同一個行上的單元格:colspan="2"
合併同一個列上的單元格:rowspan="2"
表格語義化:
<table>
<thead></thead> -- 表頭
<tbody></tbody> -- 表身
<tfoot></tfoot> -- 表尾
</table>
表格語義化寫法和普通表格沒有任何區別,只不過表格語義化有益於搜尋引擎的摘取
網頁的常用設定:
<!--設定網頁關鍵字-->
<meta name="keywords" content="胡歌,最有涵養的明星,比較崇拜的之一,槍支迷藥" />
<!--設定網頁描述-->
<meta name="description" content="阿香何時離開的" />
<!--設定網頁的作者-->
<meta name="author" content="香格里拉" />
<!--設定網頁的字符集編碼-->
<meta charset="utf-8" />
<!--網頁重定向-->
<meta http-equiv="refresh" content="5,http://www.baidu.com" />
表單:
表單的作用:負責資料採集
表單主要分為:表單控制元件、提示資訊、表單域
表單控制元件:
包含了具體的表單功能,比如按鈕、輸入框、單選框、複選框、密碼框、下拉框等等
提示資訊:
一個完整的表單應該包含對於使用者的友好提示,或者一些能夠對事件進行解釋說明的文字
表單域:
其實就相當於一個容器,這個容器包含了所有的控制元件和提示資訊,可以通過定義相關控制元件
來處理不同的資訊,也可以將這些資訊傳送到伺服器後臺當中,如果不定義表單域,也就
意味著你這裡輸入的所有資訊是無法傳送到服務端。
表單怎麼寫?
表單域:
<form action="login.do" name="login" method="get/post">
</form>
action:用於提交表單資訊到服務端的某個(指令碼)程式
name:你這個表單域的名字,主要使用者後端進行獲取 前端並沒有多大用處
method:你這個表單的提交方式,預設引數為get
get:所有的資料以引數進行提交,所提交的引數會直接顯示在你的url(如果是敏感資料或者大容量資料,一般不建議使用get進行提交)
post:適合敏感資料和大容量資料的提交,他提交的方式為實體引數,url並不會直接顯示
表單控制元件:
<!--文字框 readonly-->
賬號:<input type="text" maxlength="6" name="username" value="請輸入你的賬號"/>
<!--密碼框-->
密碼:<input type="password"/>
<!--密碼框-->
性別:<input type="radio" name="y"/>男<input type="radio" name="y" />女
<!--複選框-->
愛好:<input type="checkbox" name="kl"/>喝可樂<input type="checkbox" name="lm"/>撩妹<input type="checkbox"/>愛林月如<input type="checkbox"/>學習JAVA
<!--下拉框-->
家庭住址:<select>
<option value="hn">湖南</option>
<option selected>廣東</option>
<option>湖北</option>
<option>福建</option>
<option>江蘇</option>
<option>北京</option>
</select> <select>
<option>湘潭</option>
<option>永州</option>
<option>深圳</option>
<option>湘西</option>
<option>長沙</option>
<option>張家界</option>
</select>
<!--上傳元件-->
請上傳文件:<input type="file" />
<!--提交按鈕-->
<input type="submit" value="提交" />
<!--重置按鈕-->
<input type="reset" value="重寫" />
<!--圖片-->
<input type="image" src="img/img.png" />
<!--普通按鈕-->
<input type="button" value="提交" />
關鍵字的功能解釋:
maxlength="6" 設定輸入框的輸入長度
name="username" 設定控制元件的名字,這個引數主要給後端工程師進行呼叫
value="請輸入你的賬號" 控制元件的實際內容,後端工程師所需要的其實就是這個內容
readonly="readonly" 設定控制元件只讀狀態(不可編輯)
selected="selected" 用於設定下拉框的預設選項
submit:提交後立即執行到伺服器
image:理論上跟submit一致,但是一般只配合js使用
button:普通按鈕,沒有任何效果,但是用的非常多 一般配合js使用
第三天學習
什麼是CSS?
1. CSS是指層疊樣式
2. CSS的作用是用於美化HTML頁面的中的內容(字型、顏色、高寬、大小)
3. CSS另外的作用就是可以對網頁進行佈局(CSS+DIV)
CSS的優勢?
1.內容與表現分離
2.網頁的表現形式高度統一,便於後期維護
3.具備極為豐富的樣式,頁面美化更加靈活
4.減少網頁的程式碼量,增加網頁的瀏覽速度 可以節省網路頻寬
5.用於獨立於頁面的CSS,有利於搜尋引擎的收錄
CSS如何去寫?
選擇器:就是你要選擇誰,然後改變什麼
CSS的匯入方式:
內部樣式:
位置:<head>範圍內
格式:
<style type="text/css">
...
</style>
特點:
適合同一個頁面的效果實現,其他頁面無效
行內樣式:
位置:所需要實現的標籤內
格式:
<p style="color:red">
特點:
適合某一個標籤的樣式修改
外部樣式:
獨立建立一個css檔案,這個檔案裡面不需要寫style,直接寫樣式即可
1.在head當中,<link href="css/style_demo.css" rel="stylesheet" type="text/css" />
2.在head當中的style當中,@import url("css/style_demo.css" );
一般來說只會使用第一種,第二種幾乎不用,因為link標籤是屬於xhtml的
而@import屬於css2.1的規則,如果瀏覽器不支援@import,也就意味著你的樣式無效
如果你使用的是link進行匯入,先載入CSS樣式,然後再去顯示整個網頁
如果你使用的@import,是先載入網頁,再去顯示CSS樣式
適合多個頁面共享一個CSS樣式
樣式表的優先順序:
行內樣式表 > 內部樣式表 > 外部樣式表
一般來說,我們只會使用外部樣式表
格式:
選擇器{
屬性:屬性值;
}
選擇器分類:
基礎選擇器:
標籤選擇器:
標籤名{
屬性:屬性值;
}
注意:屬性值後的分號,你可以不寫的 但是W3C的標準是必須要寫的,而大部分
瀏覽器都遵循了W3C的標準,如果不寫 可能會有部分瀏覽器無法使用。
特點:
一旦符合規則的標籤,全部會實現同樣的CSS效果
類選擇器:
<i class="class">類選擇器</i>
.類名{
屬性:屬性值;
}
特點:
所有符合類名的標籤,都會實現同樣的效果
類名不能以數字開頭
ID選擇器:
<p id="id">ID選擇器我</p>
#ID名{
屬性:屬性值;
}
特點:
所有符合ID名的標籤,都會實現同樣的效果
但是,在同一個頁面當中,標籤不能出現同名的ID(js會出現問題)
選擇器的優先順序:ID選擇器 > 類選擇器 > 標籤選擇器
練習:
望廬山瀑布:
詩正文使用14px字型,顏色為綠色
水調歌頭:
標題為紅色,字型大小為18px,
正文第一段字型大小為12px,字型為紅色
第二段字型顏色為黑色,字型大小為12px
如夢令:
使用標籤選擇器設定標題字型大小為20px
頁面當中所有段落的文字為16px
使用類選擇器設定譯文和正文內容字型顏色為綠色
想辦法將譯文字型顏色改變為藍色
複合選擇器:
指兩個及兩個以上的選擇器進行組合使用。
交集選擇器:
標籤選擇器+類(ID)選擇器{
屬性:屬性值;
}
特點:既要滿足是否使用了某個標籤選擇器,也要滿足是否使用了某個類或者ID選擇器(也就說明標籤選擇器和類或者ID選擇器必須同時滿足)
後代選擇器:
選擇器+空格+選擇器{
屬性:屬性值;
}
特點:無隔代限制,必須包含巢狀關係,例如p標籤下面的span標籤
子代選擇器:
選擇器>選擇器{
屬性:屬性值;
}
特點:子代必須是父類的直接子代,不能存在隔代關係
並集選擇器:
選擇器,選擇器,選擇器,選擇器,選擇器,選擇器{
屬性:屬性值;
}
特點:所有的選擇器都實現同一個效果。
CSS繼承性的問題:
html -> head ->title
body ->h1
p
ul -> li -> ol ->li ->ul
div
如果存在巢狀關係,父元素的屬性發生了改變,子元素也會隨之改變,
但是h標籤無法繼承父元素的字型大小,a標籤無法繼承父元素的顏色
文字樣式:
background: firebrick;
/*設定字型樣式*/
color: khaki;
/*設定水平對齊方式*/
text-align:center;
/*文字的首行縮排*/
text-indent:2em;
/*文字的樣式修飾 一般只用下劃線和取消下劃線*/
text-decoration:underline;
字型樣式:
/*文字大小*/
font-size:20px;
/*文字樣式*/
font-family:"宋體";
/*文字風格*/
font-style:oblique;
/*文字粗細*/
font-weight:bold;
/*字型連寫 字型風格 字型粗細 字型大小 樣式(順序不能亂)*/
/*font:oblique bold 36px "微軟雅黑";*/
超鏈偽類:
/ *滑鼠懸浮所觸發的樣式*/
.baidu:hover{
color: thistle;
font-size:10px;
}
/*當超連結被訪問之後的連結(雞肋)*/
.wangyi,
.baidu:visited {
color: darkcyan;
font-size: 50px;
}
/*當滑鼠點選當中所觸發的樣式*/
.tencent:active{
color: green;
}
/*未訪問之前的顏色*/
.tencent:link {
color:deepskyblue;
font-size: 180px;
}
第四天學習
CSS+DIV
用途:
div+css是現在主流的web設計模式
div主要的作用:
對網頁進行佈局
對網頁內容進行對應的排版
div一般配合CSS,並且設定高和寬,否則無意義。
顏色的表示形式:
三原色:rgba(46,61,73,.4)
進位制:#000000
單詞:red
背景顏色:background-color:red;
圖片背景:background-image: url(img/timg.jpg);
背景重複方式:background-repeat:no-repeat;
repeat-x:沿著x軸平鋪
repeat-y:沿著y軸平鋪
no-repeat:影象不平鋪
repeat:影象平鋪
影象大小:background-size: 50%;
影象定位:
background-position-y:沿著y軸移動
background-position-x:沿著x軸移動
移動方式:
y%/x%:依照百分比來移動
ypx/xpx:依照畫素移動
x軸:left/center/right
y軸:top/center/bottom
背景連寫:顏色/路徑/x軸/y軸/平鋪方式
background: red url(img/timg.jpg) 250px 150px no-repeat;
第五天學習
W3C:HTML 結構標準 / CSS 表現標準 / JavaScript 行為標準
世界上第一款瀏覽器 94年網景(Netscape Communications Corporation)公司開發。
95年和sun公司開發出Java
網景和sun進行了深度的合作 java+script= javascript
2003年之前,js其實很少有人使用,因為js就是垃圾廣告的代名詞。
2004年,一家偉大的公司徹底改變了js的命運,這就公司就谷歌,因為谷歌推出了一種
技術,這種技術一直沿用至今,仍然都是目前主流的技術(AJAX)
ajax:非同步載入
認識js:
1.js是什麼?
js一個可以嵌入到HTML網頁當中,是基於物件和事件驅動的指令碼語言
2.js的特點?
1.對於使用者有非常良好的互動性
2.具備非常強的安全性(對於使用者),JS沒有任何的許可權可以訪問你的系統資源和磁碟
3.是跨平臺,因為是基於瀏覽器的
3.js能做什麼?
1.js能夠實時動態的修改你的CSS和你的HTML程式碼
2.能夠動態的校驗資料
4.js的組成
DOM(文件物件模型)
BOM(瀏覽器物件模型)
5.怎麼去使用js?
1.行內
<input type="button" value="我是個沒用的東西" onclick="alert('我被點選了')"/>
2.內部
<script type="text/javascript"/>
alert('我被載入了');
</script>
3.外部
<script type="text/javascript" src="../js/js_demo.js"/>
JS程式碼放在哪兒?
原則上,你JS放任意位置都沒問題,但是在不影響功能的前提下,建議越晚載入越好
二:JS的基本語法
typeof獲取當前資料的型別
js當中的原始資料型別:
number:數字
string:字串型別
boolean:布林型別
null:空型別
underfind:未定義
number/string/boolean 偽資料型別(等同於java的自動拆裝箱)
型別轉型:
number/boolean型別轉成string
toString();
string/boolean轉number
parseInt();
parseFloat();
string轉成number parseInt(x) 字串必須開頭包含數字,最後的結果就是開頭的數字
強制型別轉換:
Boolean(),強轉布林
數字如果轉成布林,false即0 true即1
字串如果轉成布林,空內容即false,有內容及true
Number()
布林轉數字,true即1 false即0
字串轉數字,不能轉
引用資料型別
java:Object ob = new Object();
js:var ob = new Number();
運算子:
賦值運算:
var x = 5;
算數運算:
+ - * /(操作跟java一致,你們不讓我講)
邏輯運算:
&& ||
比較運算:
< > <= >= != == ===
全等:需要資料型別和資料值完全匹配
三元運算:
3 > 2 ? 3 : 2;
void運算:
<a href="javascript:void(0)">點選我跳轉</a>
型別運算子:
typeof:獲取資料型別
instanceof:判斷某一個數據是否為某種資料型別
邏輯語句:
1.if
if(x > 5){
alert("大於");
}
2.if else
if(x > 5){
alert("大於");
}else{
alert('小於');
}
3.switch(){
case "css":
alert("xxx");
break;
default:
alert("xxx");
}
4.for
for(var a = 0;a < 5;a++){
alert(a);
}
5.for in
var arr = [1,56,1,5,"s"];
for(s in arr){
//alert(s);//索引編號
alert(arr[s]);
}