HTML、CSS 和 JavaScript 基礎知識點

HTML、CSS 和 JavaScript 基礎知識點

一、HTML 基礎

1. HTML 文檔結構

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>文檔標題</title>
</head>
<body><!-- 頁面內容 -->
</body>
</html>

2. 常用 HTML 標簽

  • 文本標簽

    <h1><h6>標題、<p>段落、<span>行內元素、<br>換行、<hr>水平線
    
  • 列表

    <ul>無序列表、<ol>有序列表、<li>列表項、<dl>定義列表
    
  • 表格

    <table><tr>行、<td>單元格、<th>表頭、<thead><tbody><tfoot>
    
  • 表單

    <form><input><textarea><select><option><button><label>
    
  • 多媒體

    <img><audio><video><iframe>
    

3. HTML5 新特性

  • 語義化標簽:<header>, <footer>, <nav>, <article>, <section>, <aside>
  • 表單增強:<input type="date">, <input type="email">, <input type="range">
  • 多媒體支持:<video>, <audio>, <canvas>
  • Web存儲:localStorage, sessionStorage
  • Web Workers
  • 地理定位 API

二、CSS 基礎

1. CSS 引入方式

<!-- 內聯樣式 -->
<div style="color: red;"></div><!-- 內部樣式表 -->
<style>div { color: red; }
</style><!-- 外部樣式表 -->
<link rel="stylesheet" href="styles.css">

2. CSS 選擇器

  • 基礎選擇器

    /* 元素選擇器 */
    p { color: blue; }/* 類選擇器 */
    .class-name { color: red; }/* ID選擇器 */
    #id-name { color: green; }/* 通配符選擇器 */
    * { margin: 0; padding: 0; }
    
  • 組合選擇器

    /* 后代選擇器 */
    div p { color: red; }/* 子元素選擇器 */
    div > p { color: blue; }/* 相鄰兄弟選擇器 */
    h1 + p { color: green; }/* 通用兄弟選擇器 */
    h1 ~ p { color: yellow; }
    
  • 屬性選擇器

    /* 存在屬性 */
    [title] { color: red; }/* 屬性值等于 */
    [type="text"] { color: blue; }/* 屬性值包含 */
    [class*="btn"] { color: green; }
    
  • 偽類和偽元素

    /* 偽類 */
    a:hover { color: red; }
    li:nth-child(odd) { background: #eee; }/* 偽元素 */
    p::first-letter { font-size: 2em; }
    p::after { content: "★"; }
    

3. CSS 盒模型

  • 組成:content(內容) + padding(內邊距) + border(邊框) + margin(外邊距)

  • box-sizing

    /* 標準盒模型 */
    box-sizing: content-box; /* 默認值 *//* 怪異盒模型 */
    box-sizing: border-box; /* 寬度包含padding和border */
    

4. 布局技術

  • 浮動布局

    .float-left { float: left; }
    .clearfix::after {content: "";display: block;clear: both;
    }
    
  • Flex 布局

    .container {display: flex;justify-content: center; /* 主軸對齊 */align-items: center;    /* 交叉軸對齊 */flex-wrap: wrap;       /* 換行 */
    }
    .item {flex: 1;               /* 彈性比例 */
    }
    
  • Grid 布局

    .container {display: grid;grid-template-columns: 1fr 2fr 1fr; /* 列定義 */grid-template-rows: 100px auto;     /* 行定義 */gap: 10px;                          /* 間距 */
    }
    .item {grid-column: 1 / 3;                 /* 跨列 */grid-row: 1;                        /* 行位置 */
    }
    

5. 響應式設計

  • 媒體查詢

    @media (max-width: 768px) {body { font-size: 14px; }
    }
    
  • 視口單位

    .box {width: 50vw;    /* 視口寬度的50% */height: 100vh;  /* 視口高度的100% */font-size: 2vmin; /* 視口較小尺寸的2% */
    }
    

三、JavaScript 基礎

1. 基礎語法

  • 變量聲明

    // ES5
    var name = "張三";// ES6+
    let age = 25;       // 塊級作用域變量
    const PI = 3.14;    // 常量
    
  • 數據類型

    // 原始類型
    typeof "hello"      // "string"
    typeof 42           // "number"
    typeof true         // "boolean"
    typeof undefined    // "undefined"
    typeof null         // "object" (歷史遺留問題)
    typeof Symbol()     // "symbol"
    typeof BigInt(10)   // "bigint"// 引用類型
    typeof {}           // "object"
    typeof []           // "object"
    typeof function(){} // "function"
    

2. 運算符

// 算術運算符
let sum = 10 + 5;    // 15// 比較運算符
10 == "10"           // true (值相等)
10 === "10"          // false (值和類型都相等)// 邏輯運算符
true && false        // false
true || false       // true
!true               // false// 三元運算符
let result = age > 18 ? '成年' : '未成年';

3. 流程控制

  • 條件語句

    if (score >= 90) {console.log('優秀');
    } else if (score >= 60) {console.log('及格');
    } else {console.log('不及格');
    }// switch語句
    switch(day) {case 1: console.log('周一'); break;case 2: console.log('周二'); break;default: console.log('周末');
    }
    
  • 循環語句

    // for循環
    for (let i = 0; i < 5; i++) {console.log(i);
    }// while循環
    let j = 0;
    while (j < 5) {console.log(j);j++;
    }// for...of (ES6)
    for (let item of array) {console.log(item);
    }// for...in (遍歷對象屬性)
    for (let key in obj) {console.log(key, obj[key]);
    }

4. 函數

  • 函數定義

    // 函數聲明
    function add(a, b) {return a + b;
    }// 函數表達式
    const multiply = function(a, b) {return a * b;
    };// 箭頭函數 (ES6)
    const divide = (a, b) => a / b;// 默認參數 (ES6)
    function greet(name = 'Guest') {console.log(`Hello, ${name}`);
    }// 剩余參數 (ES6)
    function sum(...numbers) {return numbers.reduce((acc, num) => acc + num, 0);
    }
    
  • 高階函數

    // 函數作為參數
    function operate(a, b, operation) {return operation(a, b);
    }operate(5, 3, (x, y) => x * y); // 15// 函數返回函數
    function multiplier(factor) {return function(number) {return number * factor;};
    }const double = multiplier(2);
    double(5); // 10
    

5. 對象和數組

  • 對象

    // 對象字面量
    const person = {name: '張三',age: 25,greet() {console.log(`我是${this.name}`);}
    };// 訪問屬性
    person.name;        // "張三"
    person['age'];      // 25
    person.greet();     // "我是張三"// ES6增強
    const { name, age } = person; // 解構賦值
    const newPerson = { ...person, age: 26 }; // 擴展運算符
    
  • 數組

    // 數組方法
    const numbers = [1, 2, 3, 4, 5];numbers.map(x => x * 2);      // [2, 4, 6, 8, 10]
    numbers.filter(x => x > 2);   // [3, 4, 5]
    numbers.reduce((a, b) => a + b); // 15// ES6數組操作
    const newArr = [...numbers, 6, 7]; // [1, 2, 3, 4, 5, 6, 7]
    const [first, second, ...rest] = numbers; // 解構賦值
    

6. DOM 操作

// 獲取元素
const btn = document.getElementById('myButton');
const items = document.querySelectorAll('.item');// 事件監聽
btn.addEventListener('click', function(event) {console.log('按鈕被點擊了');
});// 修改內容
const heading = document.querySelector('h1');
heading.textContent = '新標題';
heading.style.color = 'red';// 創建元素
const newDiv = document.createElement('div');
newDiv.className = 'box';
document.body.appendChild(newDiv);// 表單處理
const form = document.querySelector('form');
form.addEventListener('submit', function(e) {e.preventDefault();const input = this.querySelector('input');console.log(input.value);
});

7. 異步編程

  • 回調函數

    function fetchData(callback) {setTimeout(() => {callback('數據加載完成');}, 1000);
    }fetchData(function(data) {console.log(data);
    });
    
  • Promise

    function fetchData() {return new Promise((resolve, reject) => {setTimeout(() => {resolve('數據加載完成');// 或 reject('加載失敗');}, 1000);});
    }fetchData().then(data => console.log(data)).catch(error => console.error(error));
    
  • async/await

    async function loadData() {try {const data = await fetchData();console.log(data);} catch (error) {console.error(error);}
    }loadData();
    

四、綜合案例

1. 簡單的待辦事項應用

<!DOCTYPE html>
<html>
<head><title>待辦事項</title><style>body { font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; }#todo-form { display: flex; margin-bottom: 20px; }#todo-input { flex: 1; padding: 8px; }button { padding: 8px 16px; background: #4CAF50; color: white; border: none; }ul { list-style: none; padding: 0; }li { padding: 10px; border-bottom: 1px solid #ddd; display: flex; }li.completed { text-decoration: line-through; color: #888; }.delete-btn { margin-left: auto; color: red; cursor: pointer; }</style>
</head>
<body><h1>待辦事項</h1><form id="todo-form"><input type="text" id="todo-input" placeholder="輸入待辦事項..." required><button type="submit">添加</button></form><ul id="todo-list"></ul><script>document.addEventListener('DOMContentLoaded', function() {const form = document.getElementById('todo-form');const input = document.getElementById('todo-input');const list = document.getElementById('todo-list');// 從本地存儲加載待辦事項let todos = JSON.parse(localStorage.getItem('todos')) || [];// 渲染待辦事項列表function renderTodos() {list.innerHTML = '';todos.forEach((todo, index) => {const li = document.createElement('li');if (todo.completed) {li.classList.add('completed');}li.innerHTML = `<span>${todo.text}</span><span class="delete-btn" data-index="${index}">×</span>`;li.addEventListener('click', function() {toggleTodo(index);});list.appendChild(li);});// 保存到本地存儲localStorage.setItem('todos', JSON.stringify(todos));}// 添加新待辦事項form.addEventListener('submit', function(e) {e.preventDefault();const text = input.value.trim();if (text) {todos.push({ text, completed: false });input.value = '';renderTodos();}});// 切換完成狀態function toggleTodo(index) {todos[index].completed = !todos[index].completed;renderTodos();}// 刪除待辦事項list.addEventListener('click', function(e) {if (e.target.classList.contains('delete-btn')) {const index = e.target.dataset.index;todos.splice(index, 1);renderTodos();}});// 初始渲染renderTodos();});</script>
</body>
</html>

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80767.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80767.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80767.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

亞遠景-對ASPICE評估體系的深入研究與分析

一、ASPICE評估體系的定義與背景 ASPICE&#xff08;Automotive Software Process Improvement and Capability Determination&#xff09;即汽車軟件過程改進及能力測定模型&#xff0c;是由歐洲20多家主要汽車制造商共同制定的&#xff0c;專門針對汽車行業的軟件開發過程評…

灰度圖像和RGB圖像在數據大小和編碼處理方式差別

技術背景 好多開發者對灰度圖像和RGB圖像有些認知差異&#xff0c;今天我們大概介紹下二者差別。灰度圖像&#xff08;Grayscale Image&#xff09;和RGB圖像在編碼處理時&#xff0c;數據大小和處理方式的差別主要體現在以下幾個方面&#xff1a; 1. 通道數差異 圖像類型通道…

從爬蟲到網絡---<基石9> 在VPS上沒搞好Docker項目,把他卸載干凈

1.停止并刪除所有正在運行的容器 docker ps -a # 查看所有容器 docker stop $(docker ps -aq) # 停止所有容器 docker rm $(docker ps -aq) # 刪除所有容器如果提示沒有找到容器&#xff0c;可以忽略這些提示。 2.刪除所有鏡像 docker images # 查看所有鏡像 dock…

Centos 上安裝Klish(clish)的編譯和測試總結

1&#xff0c;介紹 clish是一個類思科命令行補全與執行程序&#xff0c;它可以幫助程序員在nix操作系統上實現功能導引、命令補全、命令執行的程序。支持&#xff1f;&#xff0c;help, Tab按鍵。本文基于klish-2.2.0介紹編譯和測試。 2&#xff0c;klish的編譯 需要安裝的庫&…

理解計算機系統_并發編程(3)_基于I/O復用的并發(二):基于I/O多路復用的并發事件驅動服務器

前言 以<深入理解計算機系統>(以下稱“本書”)內容為基礎&#xff0c;對程序的整個過程進行梳理。本書內容對整個計算機系統做了系統性導引,每部分內容都是單獨的一門課.學習深度根據自己需要來定 引入 接續上一帖理解計算機系統_并發編程(2)_基于I/O復用的并發…

系統可靠性分析:指標解析與模型應用全覽

以下是關于系統可靠性分析中可靠性指標、串聯系統與并聯系統、混合系統、系統可靠性模型的相關內容&#xff1a; 一、可靠性指標 可靠度&#xff1a;是系統、設備或元件在規定條件和規定時間內完成規定功能的概率。假設一個系統由多個部件組成&#xff0c;每個部件都有其自身…

數字高程模型(DEM)公開數據集介紹與下載指南

數字高程模型&#xff08;DEM&#xff09;公開數據集介紹與下載指南 數字高程模型&#xff08;Digital Elevation Model, DEM&#xff09;廣泛應用于地理信息系統&#xff08;GIS&#xff09;、水文模擬、城市規劃、環境分析、災害評估等領域。本文系統梳理了主流的DEM公開數據…

Python+大模型 day01

Python基礎 計算機系統組成 基礎語法 如:student_num 4.標識符要做到見名知意,增強代碼的可讀性 關鍵字 系統或者Python定義的,有特殊功能的字符組合 在學習過程中,文件名沒有遵循標識符命名規則,是為了按序號編寫文件方便查找復習 但是,在開發中,所有的Python文件名稱必須…

C++引用編程練習

#include <iostream> using namespace std; double vals[] {10.1, 12.6, 33.1, 24.1, 50.0}; double& setValues(int i) { double& ref vals[i]; return ref; // 返回第 i 個元素的引用&#xff0c;ref 是一個引用變量&#xff0c;ref 引用 vals[i] } // 要調用…

機密虛擬機的威脅模型

本文將介紹近年興起的機密虛擬機&#xff08;Confidential Virtual Machine&#xff09;技術所旨在抵御的威脅模型&#xff0c;主要關注內存機密性&#xff08;confidentiality&#xff09;和內存完整性&#xff08;integrity&#xff09;兩個方面。在解釋該威脅可能造成的問題…

【Rust trait特質】如何在Rust中使用trait特質,全面解析與應用實戰

?? 歡迎大家來到景天科技苑?? &#x1f388;&#x1f388; 養成好習慣&#xff0c;先贊后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者簡介&#xff1a;景天科技苑 &#x1f3c6;《頭銜》&#xff1a;大廠架構師&#xff0c;華為云開發者社區專家博主&#xff0c;…

Simulink模型回調

Simulink 模型回調函數是一種特殊的 MATLAB 函數&#xff0c;可在模型生命周期的特定階段自動執行。它們允許用戶自定義模型行為、執行初始化任務、驗證參數或記錄數據。以下是各回調函數的詳細說明&#xff1a; 1. PreLoadFcn 觸發時機&#xff1a;Simulink 模型加載到內存之…

FPGA:Xilinx Kintex 7實現DDR3 SDRAM讀寫

在Xilinx Kintex 7系列FPGA上實現對DDR3 SDRAM的讀寫&#xff0c;主要依賴Xilinx提供的Memory Interface Generator (MIG) IP核&#xff0c;結合Vivado設計流程。以下是詳細步驟和關鍵點&#xff1a; 1. 準備工作 硬件需求&#xff1a; Kintex-7 FPGA&#xff08;如XC7K325T&…

Python爬蟲實戰:研究進制流數據,實現逆向解密

1. 引言 1.1 研究背景與意義 在現代網絡環境中,數據加密已成為保護信息安全的重要手段。許多網站和應用通過二進制流數據傳輸敏感信息,如視頻、金融交易數據等。這些數據通常經過復雜的加密算法處理,直接分析難度較大。逆向工程進制流數據不僅有助于合法的數據獲取與分析,…

Java Spring Boot項目目錄規范示例

以下是一個典型的 Java Spring Boot 項目目錄結構規范示例&#xff0c;結合了分層架構和模塊化設計的最佳實踐&#xff1a; text 復制 下載 src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── myapp/ │…

圖像顏色理論與數據挖掘應用的全景解析

文章目錄 一、圖像顏色系統的理論基礎1.1 圖像數字化的本質邏輯1.2 顏色空間的數學框架1.3 量化過程的技術原理 二、主要顏色空間的深度解析2.1 RGB顏色空間的加法原理2.2 HSV顏色空間的感知模型2.3 CMYK顏色空間的減色原理 三、圖像幾何屬性與高級特征3.1 分辨率與像素密度的關…

mysql兩張關聯表批量更新一張表存在數據,而另一張表不存在數據的sql

一、mysql兩張關聯表批量更新一張表存在、另一張表不存在的數據 創建user和user_order表 CREATE TABLE user (id varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,id_card varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NU…

PNG轉ico圖標(支持圓角矩形/方形+透明背景)Python腳本 - 隨筆

摘要 在網站開發或應用程序設計中&#xff0c;常需將高品質PNG圖像轉換為ICO格式圖標。本文提供一份基于Pillow庫實現的&#xff0c;能夠完美保留透明背景且支持導出圓角矩形/方形圖標的格式轉換腳本。 源碼示例 圓角方形 from PIL import Image, ImageDraw, ImageOpsdef c…

在線SQL轉ER圖工具

在線SQL轉ER圖網站 在數據庫設計、軟件開發或學術研究中&#xff0c;ER圖&#xff08;實體-關系圖&#xff09; 是展示數據庫結構的重要工具。然而&#xff0c;手動繪制ER圖不僅耗時費力&#xff0c;還容易出錯。今天&#xff0c;我將為大家推薦一款非常實用的在線工具——SQL…

繪制時間對應的數據曲線

頭文件#pragma once #include "ChartControl.h" #include <vector> #include "DBOperate.h&