.html<!Doctype html>: Đây là khai báo kiểu tài liệu, cho trình duyệt biết rằng tài liệu này sử dụng phiên bản HTML5.<html></html>: Thẻ này bao bọc toàn bộ tài liệu HTML.<head></head>: Phần này chứa các thông tin "meta" về trang, như tiêu đề trang, charset (mã hóa ký tự), viewport (đối với thiết bị di động), và liên kết đến các file CSS, JavaScript bên ngoài.<meta charset="UTF-8">: Xác định mã hóa ký tự, thường sử dụng UTF-8.<meta name="viewport" content="width=device-width, initial-scale=1.0">: Đảm bảo trang web hiển thị đúng trên thiết bị di động.→ Mục đích của các thẻ <meta>: cung cấp thông tin về trang web cho trình duyệt từ đó cải thiện SEO (tối ưu hóa công cụ tìm kiếm)
<title>: Tiêu đề của trang web, xuất hiện trên tab của trình duyệt....<body></body>: Phần chứa những nội dung hiển thị trên trang web<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tiêu đề trang web</title>
</head>
<body>
Phần thân đặt ở đây
</body>
</html>

Tag name: Tên các thẻ trong HTML được sử dụng để tạo ra các phần tử, thành phần trong web. Ví dụ: <h1></h1>, <p></p>, <a></a>,...Attribute: Các thuộc tính sẽ cung cấp thêm thông tin cho các phần tử HTMLAttribute name: Tên thuộc tínhAttribute value: Gía trị của thuộc tínhContent: Các nội dung bên trong thẻ HTMLStart tag và End tag. Có một số thẻ chỉ có End tag hay còn gọi là Self closing tag ví dụ như thẻ <img/>Attribute phải đặt trong Start tag. Còn các Self closing tag các thuộc tính đặt trong chính nó<h1> đây gọi là 1 thẻ nhưng <h1>Heading</h1> được gọi là 1 thành phần HTML hay 1 Element HTML<body></body>Trước khi bắt đầu tìm hiểu các thẻ cơ bản, các bạn hãy thực hiện theo các bước sau đây để có thể mở thư mục HIT_WEB_PUBLIC trong VSCode
File → Chọn Open Folder hoặc nhấn tổ hợp phím Ctrl + K Ctrl + O.
HIT_WEB_PUBLIC và nhấn AddNếu các bạn đã thêm được thư mục trên ,hãy tiếp tục thực hiện theo các bước dưới đây để tạo ra thư mục week-2 và file index.html đầu tiên:
week-2HIT15_WEB_PRIVATEindex.html và nhấn enterCác bước ở trên là cách thêm 1 folder vào VS Code, cách tạo folder, tạo file trong VSCode. Lúc này hãy nhìn sang bên phải chính là phần editor của VSCode.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tiêu đề trang web</title>
</head>
<body>
Hello world
</body>
</html>
Open with Live Server. Sau khi thực hiện sẽ xuất hiện 1 trang web với chữ Hello world trên màn hình❗ Một chút lưu ý:
Live Server đã cài ở buổi trước. Mỗi lần có sự thay đổi trong file .html, .css hay .js.
Chỉ cần Ctrl+S lưu lại file thì trang web đang chạy live server sẽ tự động reload lại với mã nguồn mới nhất của bạn. Tránh việc phải mở file index.html thủ công trong folder
Nếu như bạn nào chưa cài live server thì chưa thể thực hiện mở live server được
! và nhấn Enter hoặc Tap. Một cấu trúc cơ bản của HTML sẽ tự động được sinh ra trên màn hình. Hãy thử để biết kết quả nhé~→ Như vậy, các bạn đã biết cách tạo 1 file .html và chạy Live Server để mở trang web của bạn. Chúng ta cùng tiếp tục tìm hiểu các thẻ cơ bản HTML, đi qua nội dung từng thẻ, hãy copy chúng và đặt vào trong <body>Đặt ở đây</body> để biết được kết quả hiển thị của nó sẽ như thế nào
<h1>, <h2>, <h3>, <h4>, <h5>, <h6><h1>Heading 1</h1>
<h2>Heading 2</h2>
<h3>Heading 3</h3>
<h4>Heading 4</h4>
<h5>Heading 5</h5>
<h6>Heading 6</h6>
<p>This is a paragraph</p>
<a href="https://google.com">Google</a>
href và đường dẫn sẽ đặt trong 2 dấu " "target với 2 trong những giá trị như sau:_self: Mặc định target của thẻ liên kết sẽ là _self. Khi đó đường liên kết đặt trong attribute href sẽ được mở ngay tại trang web của mình_target: Khi mở đường liên kết, một trang web sẻ được mở ra tại tab mới.→ Hãy thử cả hai giá trị trên để biết được kết quả.
href ngoài liên kết của 1 trang web còn có thể là: Email, Số điện thoại hoặc là một phần nội dung trên trang web của bạn<img src="image.jpg" alt="Image" width="500" height="600" />
Self Closing Tagsrc: đây là thuộc tính chứa đường dẫn của ảnhalt: đây là thuộc tính dùng để mô tả cho hình ảnh khi nó bị lỗi không thể hiển thịwidth: đây là thuộc tính thiết lập chiều rộng cho hình ảnhheight: đây là thuộc tính thiết lập chiều cao cho mình ảnhCopy Image Link. Hãy đặt đoạn html dưới đây vào body của bạn để biết được kết quả.
<img
src="https://i.pinimg.com/originals/85/97/43/8597430660c7fec44b74cb3e695e7554.jpg"
width="100"
height="100"
/>

.html, tức cùng cấp, bạn chỉ cần ghi tên file ảnh:Ví dụ như hình dưới đây có file image.png và file index.html cùng cấp

<img src="image.png" alt="image" />

Lúc này các bạn sử dụng ../ để quay lại thư mục cha chứa 2 folder images và pages, ở đây sẽ là thư mục week-2, sau đó tìm tới folder images → image.png
<img src="../images/image.png" alt="image" />
index.html:
Lúc này các bạn sử dụng ./ sẽ chỉ đến thư mục hiện tại chứa file index.html, tức folder week-2
<img src="./images/image.png" alt="image" />
❗Bạn có thể sử dụng nhiều lần ../. Hãy thử viết nó để biết kết quả như thế nào nhé.
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ol>
❗Chú ý:
<li> là các item phải nằm trong thẻ <ul> hoặc <ol><table border="1">
<tr>
<th>Company</th>
<th>Contact</th>
<th>Country</th>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
</table>
<table> bọc ngoài cùng là thẻ quyết định tạo nên một bảngborder được đặt trong thẻ mở của thẻ <table> và đặt bằng 1 để tạo viền cho bảng. Border càng lớn, viền càng dày<tr> dùng để định nghĩa hàng trong bảng<td> dùng để định nghĩa cột trong bảng<th> cũng tương tự như thẻ <td> nhưng nó để định nghĩa các ô là tiêu đề. Mặc định nội dung trong thẻ này sẽ được in đậm và căn giữa<thead>: Dùng để nhóm phần tiêu đề của bảng<tbody>: Dùng để nhóm phần thân của bảng<tfoot>: Dùng để nhóm phân cuối, phân chân của bảng→ Mục đích của những thẻ này để giúp đoạn html xây dựng bảng cụ thể, dễ nhìn hơn
<td> và <th> còn có 2 thuộc tính như sau:colspan: Thuộc tính này được dùng để gộp các cột với giá trị là số cột muốn gộp<table border="1">
<tr>
<th colspan="2">Name</th>
<th>Age</th>
</tr>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>43</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>57</td>
</tr>
</table>
rowspan: Thuộc tính này được dùng để gộp các hàng với giá trị là số hàng muốn gộp<table border="1">
<tr>
<th>Name</th>
<td>Jill</td>
<tr>
</tr>
<th rowspan="2">Phone</th>
<td>555-1234</td>
</tr>
<tr>
<td>555-8745</td>
</tr>
</table>
<form>. Bên trong nó có thể một trong những thẻ sau đây:<label>: Được sử dụng để định nghĩa một nhãn cho một số thành phần của form.
Trong <label> có một thuộc tính là for nên được gán giá trị bằng thuộc tính id trong <input>,... để ràng buộc chúng với nhau
<input>: Đây là thẻ được sử dụng phần lớn trong form và nó cũng hiển thị theo nhiều cách dựa trên thuộc tính type của nó. Có thể liệt kê một số type như sau:text: đây là type mặc định của ô nhập dữ liệu<form>
<label for="fname">First name:</label><br />
<input type="text" id="fname" name="fname" /><br />
<label for="lname">Last name:</label><br />
<input type="text" id="lname" name="lname" />
</form>
password:<form>
<label for="username">Username:</label><br />
<input type="text" id="username" name="username" /><br />
<label for="pwd">Password:</label><br />
<input type="password" id="pwd" name="pwd" />
</form>
radio:<form>
<input type="radio" id="html" name="fav_language" value="HTML" />
<label for="html">HTML</label><br />
<input type="radio" id="css" name="fav_language" value="CSS" />
<label for="css">CSS</label><br />
<input
type="radio"
id="javascript"
name="fav_language"
value="JavaScript"
/>
<label for="javascript">JavaScript</label>
</form>
checkbox:<form>
<input type="checkbox" id="vehicle1" name="vehicle1" value="Bike" />
<label for="vehicle1"> I have a bike</label><br />
<input type="checkbox" id="vehicle2" name="vehicle2" value="Car" />
<label for="vehicle2"> I have a car</label><br />
<input type="checkbox" id="vehicle3" name="vehicle3" value="Boat" />
<label for="vehicle3"> I have a boat</label>
</form>
...
<select>: Tạo ra một danh sách drop-down:<label for="cars">Choose a car:</label>
<select id="cars" name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
<textarea>: Tạo ra một trường nhập có thể nhập 1 đoạn văn nhiều dòng<textarea name="message" rows="10" cols="30">
The cat was playing in the garden.
</textarea>
rows: thiết lập số dòng trong textareacols: thiết lập độ rộng của textarea<button type="button">Click Me!</button>
<div> mặc định là một block element, tức là nó sẽ chiếm hết rộng của màn hình<div> không có thuộc tính attribute, nhưng có thể dùng style, class, id<div> thường được sử dụng để nhóm các thành phần HTML với nhau<div style="background-color: #FFF4A3">
<h2>London</h2>
<p>London is the capital city of England.</p>
<p>London has over 13 million inhabitants.</p>
</div>
❗❗❗ Lưu ý:
tên thẻ + tag in html
🔍 Giải thích từng thẻ
<header><nav><section><aside><article><footer>non-semantic ta có thẻ <div> hay <span>semantic ta có thẻ như <form> hay <table><header>: Đại diện cho phần đầu của một tài liệu hoặc một phần của tài liệu. Nó thường chứa nội dung giới thiệu hoặc các liên kết điều hướng như logo, tiêu đề, hoặc thanh điều hướng chính.<header>
<h1>Welcome to My Blog</h1>
<nav>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
</header>
<nav>: Đại diện cho một phần trên trang chứa các liên kết điều hướng. Nó thường chứa các menu hoặc danh sách liên kết dẫn đến các phần khác nhau trong website.<nav>
<ul>
<li><a href="#services">Our Services</a></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#contact">Contact Us</a></li>
</ul>
</nav>
<footer>: Đại diện cho phần cuối của một tài liệu hoặc một phần của tài liệu. Nó thường chứa thông tin về tác giả, bản quyền, liên kết đến chính sách bảo mật, hoặc thông tin liên hệ.<footer>
<p>© 2024 My Website. All Rights Reserved.</p>
<nav>
<a href="#privacy-policy">Privacy Policy</a> |
<a href="#terms">Terms of Service</a>
</nav>
</footer>
<aside>: Đại diện cho nội dung phụ liên quan đến nội dung chính của tài liệu. Thường được sử dụng cho sidebar, hiển thị thông tin bổ sung như quảng cáo, danh sách bài viết nổi bật, hoặc thông tin liên hệ.<section>: Đại diện cho một phần hoặc một phân đoạn nội dung có liên quan trong tài liệu. Nó thường được dùng để nhóm các nội dung có cùng một chủ đề hoặc chức năng cụ thể.❗❗❗ Giải thích những thẻ trên có vẻ dài dòng và khó hiểu nhưng những thẻ này cũng không khác gì so với thẻ <div> được thêm thuộc tính id="header" hoặc class="header". Tuy nhiên với các thẻ ngữ nghĩa trên sẽ giúp đoạn HTML sẽ dễ đọc hơn và hiểu được nội dung bên trong nó là gì