---
# System prepended metadata

title: HTML5 /CSS3 About Grid - Position

---

# Thẻ Div trong HTML 5
Thẻ `<div>` là một phần tử HTML rất phổ biến và quan trọng trong việc tạo và định dạng trang web. Thẻ `<div>` không phải là một phần tử cụ thể với mục đích hiển thị nội dung cụ thể, mà nó được sử dụng để tạo ra một khối hoặc container trong trang web. Khái niệm "khối" trong HTML liên quan chặt chẽ đến việc sử dụng thẻ `<div>` và cách nó tạo ra các phần tử có thể được định dạng và kiểm soát một cách linh hoạt.

Dưới đây là một số điểm quan trọng về thẻ `<div>` và khái niệm "khối" trong HTML:

1. **Tạo khối container**: Thẻ `<div>` được sử dụng để tạo ra một phần tử có khả năng chứa nhiều phần tử con bên trong nó. Điều này cho phép bạn nhóm và tổ chức nội dung trên trang web một cách logic.

2. **Định dạng và kiểm soát vị trí**: Thẻ `<div>` thường được sử dụng kết hợp với CSS để định dạng và kiểm soát vị trí của các phần tử trên trang. Bạn có thể áp dụng các thuộc tính CSS như `width`, `height`, `margin`, `padding`, `position`, và nhiều thuộc tính khác để tạo giao diện trang web theo ý muốn.

3. **Phân chia trang**: Thẻ `<div>` thường được sử dụng để chia trang web thành các khu vực khác nhau như tiêu đề, thanh điều hướng, nội dung chính, chân trang, và nhiều phần khác. Điều này giúp tạo cấu trúc trang web dễ quản lý và dễ duyệt.

4. **CSS Classes và IDs**: Bạn có thể thêm các lớp (classes) hoặc định danh (IDs) cho các thẻ `<div>` để tùy chỉnh kiểu dáng của chúng bằng CSS hoặc thực hiện các thao tác JavaScript cụ thể.

5. **Sự linh hoạt**: Thẻ `<div>` rất linh hoạt và có thể được sử dụng để tạo gần như bất kỳ loại giao diện nào trên trang web.

Dưới đây là một ví dụ về việc sử dụng thẻ `<div>` để tạo một khối chứa nội dung trên trang web:

```html
<!DOCTYPE html>
<html>
<head>
    <title>Ví dụ về thẻ div và khái niệm khối trong HTML</title>
    <style>
        .container {
            width: 500px;
            height: 300px;
            background-color: lightblue;
            padding: 20px;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>Đây là một khối</h1>
        <p>Nội dung khối có thể ở đây.</p>
    </div>
</body>
</html>
```

Trong ví dụ trên, thẻ `<div>` với lớp (class) "container" được sử dụng để tạo một khối có kích thước, màu sắc và định dạng cụ thể, chứa các phần tử HTML khác nhau.

Trong HTML, khái niệm "khối" thường được sử dụng để mô tả các phần tử HTML cơ bản như div, p, h1, h2, h3,... Về cơ bản, khối là một phần tử HTML có khả năng hiển thị nội dung trên trang web. Các khối có thể chứa văn bản, hình ảnh, đường viền, màu sắc, và các thuộc tính khác để định dạng và trình bày nội dung theo cách mong muốn.

Khối chứa khối là một khái niệm trong HTML mà bạn có thể sử dụng để định nghĩa một phần tử chứa nhiều phần tử con. Một ví dụ cụ thể là sử dụng thẻ `<div>` để tạo một khối chứa khối. Ví dụ:

```html
<div class="container">
    <div class="child-block">Nội dung 1</div>
    <div class="child-block">Nội dung 2</div>
</div>
```

Trong đoạn mã trên, `<div class="container">` là một khối chứa khối, và nó chứa hai khối con `<div class="child-block">`.

Bây giờ, hãy thảo luận về các thuộc tính width, height, max width, và max height khi áp dụng cho các khối và khối chứa khối:

1. `width` và `height`: Đây là các thuộc tính được sử dụng để xác định kích thước của một khối hoặc khối chứa khối. Bạn có thể đặt giá trị của chúng theo pixel, phần trăm, hoặc các đơn vị đo khác. Ví dụ:

```css
.container {
    width: 300px;
    height: 200px;
}

.child-block {
    width: 100%;
    height: 50px;
}
```

2. `max-width` và `max-height`: Các thuộc tính này giới hạn kích thước tối đa của một khối hoặc khối chứa khối. Nếu nội dung bên trong khối lớn hơn giá trị được xác định, thì khối sẽ không tăng kích thước quá giới hạn được đặt. Ví dụ:

```css
.container {
    max-width: 500px;
    max-height: 300px;
}

.child-block {
    width: 100%;
    height: 50px;
}
```

Trên đây là một số khái niệm cơ bản liên quan đến khối và khối chứa khối trong HTML cũng như cách sử dụng các thuộc tính width, height, max width, và max height để điều chỉnh kích thước của chúng.

Trong HTML5, bạn có thể sử dụng các đơn vị đo khác nhau cho width (chiều rộng) và height (chiều cao) của các phần tử HTML. Dưới đây là một số đơn vị thường được sử dụng:

1. Pixels (px): Pixels là đơn vị đo thường được sử dụng và thường được hiểu là kích thước tương đối cố định trên màn hình. Ví dụ: width="200px" sẽ đặt chiều rộng của một phần tử thành 200 pixels.

2. Percent (%): Percent là đơn vị đo tương đối dựa trên kích thước của phần tử cha hoặc khung. Ví dụ: width="50%" sẽ đặt chiều rộng của một phần tử thành 50% chiều rộng của phần tử cha.

3. EM (em): EM là đơn vị đo tương đối dựa trên kích thước của phông chữ mặc định của phần tử. Ví dụ: width="2em" sẽ đặt chiều rộng của một phần tử là gấp đôi kích thước của phông chữ mặc định.

4. Rem (rem): Rem là đơn vị đo tương đối giống như EM, nhưng dựa trên kích thước của phông chữ mặc định của thẻ <html>. Ví dụ: width="2rem" sẽ đặt chiều rộng của một phần tử là gấp đôi kích thước của phông chữ mặc định của trang.

5. Viewport Width (vw) và Viewport Height (vh): VW và VH là đơn vị đo tương đối dựa trên kích thước của viewport, tức là kích thước của cửa sổ trình duyệt. Ví dụ: width="10vw" sẽ đặt chiều rộng của một phần tử thành 10% kích thước của viewport theo chiều ngang.

Bạn có thể lựa chọn đơn vị đo phù hợp với mục đích của mình để điều chỉnh kích thước của các phần tử HTML trong trang web của bạn.

# Display trong HTML 5

Trong HTML5, Display là một phần quan trọng của CSS, được sử dụng để điều chỉnh cách các phần tử hiển thị trên trang web. Dưới đây là một số giải thích về ba giá trị Display phổ biến: block, inline-block, và flex.

1. **Display block**:
   - Các phần tử được thiết lập với `display: block` sẽ hiển thị dưới dạng khối (block-level elements).
   - Chúng chiếm toàn bộ chiều rộng của phần tử cha (hoặc của một khối khác), nghĩa là mỗi phần tử bắt đầu trên một dòng mới và chiếm hết chiều rộng còn lại của dòng đó.
   - Ví dụ về các phần tử block là div, p, h1, h2, h3, và nhiều phần tử HTML khác.

2. **Display inline-block**:
   - Các phần tử được thiết lập với `display: inline-block` sẽ hiển thị dưới dạng khối nhưng sẽ nằm cùng một dòng với các phần tử khác.
   - Chúng có thể có kích thước riêng lẻ và sắp xếp theo chiều ngang (horizontal) trên cùng một dòng.
   - Điều này thường được sử dụng khi bạn muốn tạo các thành phần như nút hoặc hộp chứa có thể căn chỉnh theo chiều ngang nhưng vẫn có khả năng định dạng theo chiều dọc.
   - Ví dụ về phần tử inline-block là thẻ a (liên kết) hoặc các hộp chứa như div được định dạng để hiển thị bên trong văn bản.

3. **Display flex**:
   - `display: flex` là một giá trị display mạnh mẽ và phức tạp hơn, được sử dụng để tạo bố cục linh hoạt và căn chỉnh các phần tử con bên trong một khối theo cách mà chúng có thể thay đổi kích thước và vị trí một cách tự động.
   - Nó tạo ra một "flex container" và các phần tử con bên trong nó trở thành "flex items."
   - Bạn có thể căn chỉnh các phần tử con dọc theo chiều ngang hoặc chiều dọc, điều này giúp thiết kế trang web trở nên linh hoạt hơn và phản ánh sự thay đổi kích thước trình duyệt một cách tốt.
   - Ví dụ về các phần tử có thể sử dụng `display: flex` là div hoặc các phần tử khác trong trang web có nhu cầu căn chỉnh linh hoạt và phản ánh dữ liệu theo cách động.

Ví dụ về việc sử dụng Display trong HTML5:

```css
/* Display block */
.block-element {
    display: block;
    width: 200px;
    height: 100px;
    background-color: blue;
    margin: 10px;
}

/* Display inline-block */
.inline-block-element {
    display: inline-block;
    width: 100px;
    height: 50px;
    background-color: green;
    margin: 5px;
}

/* Display flex */
.flex-container {
    display: flex;
    justify-content: space-between;
}

.flex-item {
    flex: 1;
    height: 50px;
    background-color: yellow;
    margin: 5px;
}
```

Flex Container và Flex Items là hai khái niệm quan trọng trong CSS Flexbox, một công cụ mạnh mẽ giúp thiết kế bố cục linh hoạt và căn chỉnh các phần tử trên trang web một cách dễ dàng. Hãy tìm hiểu chi tiết về chúng:

1. **Flex Container**:
   - **Flex Container** (còn được gọi là "container" hoặc "flex container") là một phần tử HTML mà bạn áp dụng thuộc tính CSS `display: flex` hoặc `display: inline-flex`. Điều này biến phần tử đó thành một khối chứa các phần tử con được căn chỉnh bằng cách sử dụng mô hình flexbox.
   - Một Flex Container có khả năng tự động điều chỉnh kích thước của các phần tử con bên trong nó để phù hợp với không gian hiển thị.

2. **Flex Items**:
   - **Flex Items** (còn gọi là "items" hoặc "flex items") là các phần tử HTML bên trong một Flex Container, và chúng là những phần tử mà bạn muốn căn chỉnh và sắp xếp theo cách linh hoạt bằng Flexbox.
   - Các Flex Items thường được định dạng và căn chỉnh dọc theo trục chính (main axis) và trục phụ (cross axis) của Flex Container bằng cách sử dụng các thuộc tính CSS như `flex-grow`, `flex-shrink`, và `flex-basis`.

Ví dụ minh họa:

```css
/* Flex Container */
.flex-container {
    display: flex;
    justify-content: space-between; /* Căn chỉnh các phần tử con theo chiều ngang */
    align-items: center; /* Căn chỉnh các phần tử con theo chiều dọc */
}

/* Flex Items */
.flex-item {
    flex: 1; /* Phần tử sẽ mở rộng tự động để điền vào không gian còn lại */
    height: 50px;
    background-color: yellow;
    margin: 5px;
}
```

Trong ví dụ trên, `.flex-container` là Flex Container, và `.flex-item` là các Flex Items bên trong nó. Flex Container được sử dụng để căn chỉnh các Flex Items bằng cách sử dụng thuộc tính `justify-content` và `align-items`, trong khi các Flex Items được định dạng bằng cách sử dụng `flex` để điều chỉnh tỷ lệ mở rộng và kích thước của chúng. Điều này tạo ra một bố cục linh hoạt và dễ quản lý cho trang web của bạn.

# Grid system trong HTML 5 *
Theo dõi bài viết tai `https://viblo.asia/p/css-grid-layout-co-ban-oOVlYBJy58W`
