基礎 HTML & CSS


Posted by chihyu on 2021-01-25

關於網頁

通常主頁面都是 index.html 這個檔案,我們所看到的網頁是由 html 檔案經過瀏覽器渲染,才能看到網頁的畫面

HTML (HyperText Markup Language)

超文本標記語言,是標記語言,不是程式語言

常用標籤

<!DOCTYPE HTML> :告訴瀏覽器要用 HTML 這個格式去 render
<head></head>:放網頁相關資訊 ex.<meta /><title></title>
<body></body>:放網頁主要內容
<!-- -->:註解內容

<h1></h1>:h 代表 heading,有 h1 ~ h6,數字越大字越大
<p></p>:p 代表 paragraph,內文大小的字

<div></div>:div 代表 division,用來分組,會換行
<span></span>:行內分組,不換行
<img alt="" title="" src="" />:顯示圖片用,alt 放替代文字(無法顯示圖片時),title 放圖片文字(游標移到圖片上時),src 放圖片來源

<ul></ul>:unordered list,沒有排序的清單
<li></li>:list item,放在 ul 裡面,一個個項目
<ol></ol>:ordered list,有排序的清單,前面會有 1、2、3... 序號

<pre></pre>:preformated text,怎麼打就怎麼顯示,換行跟空格會被考慮進去
<br>:line break,換行

<table></table>:表格
<tr></tr>:table row,一列(橫)
<td></td>:table data,一排(直)
<th></th>:table head,第一列標題,字體會變粗

<a href="" target=""></a>:anchor,連結,可以連結到網頁外面或網頁裡面的東西,href 前者放網址,後者放 #id 名稱,target 連結開啟的方法(ex.新開分頁)

<iframe src="" width="" height=""></iframe>:遷入網頁,src 放網址,(ps. 不想讓別人遷入自己的網站可以加上 X-Frame-Options 的設定)

<form></form>:表單
<input type="" value="" name="" id=""/>:表單內的輸入框,type 有 text、password、email、submit、checkbox、radio、date,value 設值(ex. 男、女),name 設類別(ex. gender),id 作為 label 對應的地方
<label for=""></label>:指定對應的 input,for 裡面的值對應 input 裡的 id

Escape 跳脫

讓標籤原始呈現,而不會被當作標籤
&lt: <
&gt: >
&amp: &

Semantic elements 語意化元素

使用語意化元素可以讓機器或其他人更簡易的辨識內容
<main></main>:放主要內容
<nav></nav>:navigation,導覽列
<footer></footer>:網頁底部資訊

SEO (Search Engine Optimization)

搜尋引擎優化,幫助搜尋引擎理解你的網頁

工程師在 HTML 裡可以做的 SEO

<meta name="keywords" content="" />:網頁關鍵字
<meta name="description" content="" />:網頁簡介
<meta prooerty="og:title" content="" />:網頁標題
og,open graph protocol,告訴 facebook 要呈現的內容
<link rel="alternate" hreflang="en" href="">:有提供其語言的版本,告訴搜尋引擎是同一個頁面但不同語言

<meta property="al:ios:app_name" content="">
<meta property="al:ios:app_store_id" content="">
:告訴搜尋引擎有 app 版,會跳出詢問下載的東西

JSON-ld (JSON for Linking Data):用一種格式化的方式告訴機器網頁有哪些內容,讓機器可以理解網頁裡面的內容

robots.txt:給網頁爬蟲看的檔案

  • Disallow-不允許爬蟲爬的東西
  • Allow-允許爬蟲爬的東西
  • Sitemap.xml-網站地圖,告訴搜尋引擎有哪些網址要爬

CSS (Cascading Style Sheets)

階層樣式表

使用 CSS 的方法:

  • 直接寫在元素上
  • 寫在 <style></style> 裡面
  • 獨立在另一個檔案,再用 link 引入進來

Selector 選擇器

*:選擇所有
標籤名稱:選擇到是那個標籤名稱的東西
#id 名稱:選到對應 id 的東西
.class 名稱:選到對應 class 的東西
.class1.class2:選到同時有 class1 跟 class2 的東西
.class1 > .class2:選到 class1 底下一層的 class2
.class1 .class2:選到 class1 底下所有的 class2(下一層或下下一層都會被選)
.class1 + .class2:選到 class1 正旁邊的 class2
.class1 ~ .class2:選到 class1 旁邊所有的 class2

Pseudo-classes
:hover:移到元素上才會有效果
:nth-child():()裡面是幾,就會選到第幾個元素

Pseudo-elements(偽元素)
::before:在元素前面用 css 加上東西
::after:在元素後面用 css 加上東西
可以用 attr() 把屬性的值取出來放到 content

// html
<div class="price" data-symbol="NTD">
<div class="price" data-symbol="SGD">

// css
.price::after {
    content: attr(data-symbol);
}

Selector 權重

id > class > tag
!important 大於所有

inline-style id class, pseudo class, attribute tag
0 (千位) 0 (百位) 0 (十位) 0 (個位)

裝飾

bakcground:背景顏色、圖片 + url("圖片來源")
border:內邊框,可以用 border 畫三角形
border-radius:圓角 50% 會變圓形
outline:外邊框
margin:外距
padding:內距

color:文字顏色
font-size:字體大小
font-weight:字的粗細
font-family:字體
letter-spacing:字距
line-height:行高,用 em 相對字體大小
text-align:字對齊方式
word-break:字句被切斷的方式
white-space:字句呈現的方式

overflow:設定超出的東西如何處理
text-overflow:針對文字的 overflow

transition:漸變效果,可以設定秒數、漸變方式
transform:變形、轉換,可以縮放、旋轉、位移(不會影響到其他元素)

Box Model 盒模型

元素的尺寸:內容 + padding + border,尺寸不會被限制
設定 box-sizing:bodrer-box,把尺寸限制,即便加了 border,整體尺寸也不會變

排版定位

Display-元素的排列方式
block: 自己一行,可以調寬高
inline: 可以並排,不可調寬高、上下的 margin、padding
inline-block:可以並排,可以調寬高、margin、padding

Position-元素定位方式
static:預設
relative:相對定位,相對自己原本的位置定位
abosolute:絕對定位,相對於某個參考點(往上層找第一個不是 static 的東西) 做定位
fixed:固定定位,對瀏覽器(實際是 viewport)做定位
sticky:網頁往上滑到某個點就會固定
z-index:元素前後位置


#Web #html #css #Front-End #語意標籤 #跳脫 #SEO







Related Posts

Arc 瀏覽器:新型態的瀏覽器

Arc 瀏覽器:新型態的瀏覽器

【單元測試的藝術】Chap 2: 第一個單元測試

【單元測試的藝術】Chap 2: 第一個單元測試

Day 66 留言板 - Part 2

Day 66 留言板 - Part 2


Comments