# Tùy biến loại phần tử với “display”

Ở phần đầu của serie Học CSS cơ bản này mình đã có nói qua về thuộc tính Block và Inline là như thế nào và tầm quan trọng của nó trong việc thiết kế bố cục chơ website với CSS. Hiện tại chắc bạn đã biết thế nào là Block và Inline rồi đúng không? Mình xin nhắc lại nếu bạn chưa nhớ nhé.

* **Block**: Các phần tử block nó sẽ được nằm một hàng riêng biệt khi hiển thị. Ví dụ như các thẻ \<div>, \<li>, \<ul>, \<h1>,..là các block.
* **Inline**: Các phần tử này sẽ hiển thị trên cùng một hàng trên nội dung khác. Ví dụ như các thẻ \<span>, \<strong>, \<a>,..là các phần tử inline.

Vậy thì câu hỏi được đặt ra, **làm thế nào để chuyển một phần tử inline sang block và ngược lại**? Giải pháp trong CSS đó là sẽ sử dụng thuộc tính`display`.

Thuộc tính `display` có một số giá trị cơ bản như:

* `inline`: Chuyển phần tử về hiển thị trên cùng một hàng.
* `inline-block`: Chuyển phần tử về hiển thị trên cùng một hàng nhưng nó vẫn thừa hưởng các đặc tính của block như có thể tùy chỉnh kích thước, thêm background,…
* `block`: Chuyển phần tử về hiển thị kiểu block, sở hữu một hàng riêng.
* `list-item`: Chuyển phần tử về hiển thị như một mục danh sách, để có thể sử dụng thuộc tính list-style.
* `none`: Đơn giản là ẩn phần tử đó đi không cho hiển thị nữa, nó cũng sẽ ẩn luôn toàn bộ các khoảng trống mà nó sở hữu. Nếu bạn muốn ẩn đi mà vẫn đề lại “dấu vết” thì có thể sử dụng visibility: hidden.

Còn một số các giá trị khác ít dùng đến mà bạn có thể xem tại đây:&#x20;

```css
display: block;
display: inline;
display: inline-block;
display: flex;
display: inline-flex;
display: grid;
display: inline-grid;
display: flow-root;

/* box generation */
display: none;
display: contents;

/* two-value syntax */
display: block flow;
display: inline flow;
display: inline flow-root;
display: block flex;
display: inline flex;
display: block grid;
display: inline grid;
display: block flow-root;

/* other values */
display: table;
display: table-row; /* all table elements have an equivalent CSS display value */
display: list-item;

/* Global values */
display: inherit;
display: initial;
display: revert;
display: revert-layer;
display: unset;css
```

Một vài ví dụ về thuộc tính display:

{% embed url="https://codepen.io/huykira/pen/zYWjQXw" %}
Ví dụ về thuộc tính display trong css
{% endembed %}

Chỉ vậy thôi, bạn nên nhớ là CSS luôn tồn tại một thuộc tính tên là display để đổi kiểu hiển thị cho phần tử là được vì chắc chắn sau này bạn sẽ sử dụng rất nhiều khi thực hành thực tế.
