Bạn từng chèn bảng vào bài viết Blogger và kết quả trông như bảng tính Excel từ thập niên 2000? Đừng lo, ở đây có công cụ tạo bảng HTML responsive cho Blogger, một giải pháp nhanh gọn và miễn phí. Chỉ cần vài cú click, bạn sẽ có ngay bảng dữ liệu đẹp mắt, dễ chỉnh sửa, lại chạy mượt trên mọi thiết bị.
Công cụ này được mình tối ưu với đầy đủ tính năng: chọn theme, thêm/xóa hàng cột, chỉnh sửa trực tiếp, và đặc biệt là copy code để dán thẳng vào Blogger. Nói cách khác, blog của bạn sẽ "lên đời" ngay lập tức!

Công cụ tạo bảng HTML là gì?
Hãy hình dung công cụ này như một trợ lý thiết kế dành riêng cho bảng. Bạn nhập số hàng, số cột, chọn theme phù hợp, và công cụ sẽ sinh ra một bảng hoàn chỉnh. Điểm hay ở đây là mọi thao tác đều trực quan, không cần mò mẫm code. Chỉ cần copy-paste là xong.
Điểm nổi bật của công cụ
- Responsive chuẩn SEO: Bảng tự động co giãn, hiển thị đẹp từ màn hình lớn cho đến smartphone. Điều này không chỉ giúp người đọc thoải mái mà còn là điểm cộng trong SEO vì Google ưu tiên trang thân thiện với mobile.
- Giao diện đa dạng: Bạn thích sang trọng có xanh dương, thích tối giản có theme minimal, hay muốn lãng mạn thì tím mộng mơ cũng sẵn sàng. Mỗi theme đều đã được tinh chỉnh để dễ nhìn và phù hợp với nhiều loại nội dung.
- Chỉnh sửa trực tiếp: Không cần quay lại code để thay đổi dữ liệu. Bạn chỉ việc click vào ô trong bảng preview và nhập nội dung. Thao tác giống Word nhưng output lại là HTML gọn gàng.
- Copy code nhanh chóng: Sau khi hài lòng với bảng, chỉ một nút bấm là toàn bộ HTML + CSS được tạo ra. Bạn có thể dán thẳng vào Blogger ở chế độ HTML mà không cần chỉnh sửa thêm.
Vì sao cần bảng HTML đẹp?
Một bảng được thiết kế chỉn chu có thể nâng tầm cả bài viết. Khi bạn muốn so sánh sản phẩm, liệt kê thông số kỹ thuật, hoặc tạo bảng giá dịch vụ, bố cục rõ ràng sẽ khiến người đọc tin tưởng hơn. Ngoài ra, bảng responsive giúp giữ chân người dùng lâu hơn, vì họ không phải "zoom in zoom out" trên điện thoại. Đó cũng chính là yếu tố quan trọng trong xếp hạng SEO hiện nay.
Hướng dẫn sử dụng công cụ
Cách dùng rất đơn giản, ngay cả khi bạn chưa quen code:
- Nhập số hàng và cột mong muốn.
- Chọn theme yêu thích từ danh sách.
- Điền hoặc chỉnh sửa trực tiếp nội dung ngay trên bảng preview.
- Thêm hoặc xóa hàng/cột bằng các nút chức năng nếu cần.
- Copy đoạn mã HTML + CSS được sinh ra và dán vào bài viết Blogger.
Nếu muốn bảng giữ nguyên phong cách trên toàn blog, bạn chỉ cần chèn phần <style>
vào trong <b:skin>
của Blogger.
Đoạn code công cụ tạo bảng
Dưới đây là phần code mình chia sẻ miễn phí. Bạn có thể copy về, dán vào một trang Blogger riêng để sử dụng như công cụ nội bộ:
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
<style>
.btable-container {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
border-radius: 20px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
padding: 30px;
width: 100%;
min-height: calc(100vh - 40px);
margin: 20px 0;
animation: btableFadeIn 0.5s ease-in;
}
@keyframes btableFadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.btable-heading {
text-align: center;
color: #2d3748;
margin-bottom: 20px;
font-size: 2.5em;
font-weight: 700;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.btable-heading i {
color: #667eea;
margin-right: 10px;
}
.btable-description {
background: #f8f9fa;
padding: 15px;
border-radius: 10px;
margin-bottom: 20px;
font-size: 1.1em;
color: #4a5568;
line-height: 1.6;
}
.btable-instructions {
margin-top: 20px;
padding: 15px;
border: 1px solid #e2e8f0;
border-radius: 10px;
}
.btable-instructions summary {
cursor: pointer;
font-weight: 600;
color: #2d3748;
font-size: 1.2em;
display: flex;
align-items: center;
}
.btable-instructions summary i {
margin-right: 10px;
color: #667eea;
}
.btable-instructions details[open] summary i {
transform: rotate(90deg);
transition: transform 0.3s ease;
}
.btable-instructions ul {
margin-top: 10px;
padding-left: 20px;
color: #4a5568;
}
.btable-instructions li {
margin-bottom: 10px;
}
.btable-form-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
margin-bottom: 20px;
}
.btable-label {
display: block;
margin-bottom: 5px;
font-weight: 600;
color: #2d3748;
}
.btable-input, .btable-select {
width: 100%;
padding: 12px;
border: 2px solid #e2e8f0;
border-radius: 10px;
font-size: 16px;
color: #08102b;
transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.btable-input:focus, .btable-select:focus {
outline: none;
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.2);
}
.btable-btn-reset {
width: 100%;
background: linear-gradient(135deg, #e53e3e 0%, #c53030 100%);
color: white;
padding: 15px;
border: none;
border-radius: 10px;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: transform 0.3s ease, box-shadow 0.3s ease;
margin-top: 10px;
}
.btable-btn-reset:hover {
transform: translateY(-2px);
box-shadow: 0 10px 20px rgba(229, 62, 62, 0.3);
}
.btable-btn-reset i {
margin-right: 8px;
}
.btable-code-section {
margin-top: 30px;
}
.btable-code-label {
display: block;
margin-bottom: 10px;
font-weight: 600;
color: #2d3748;
}
#btable-code {
width: 100%;
min-height: 150px;
padding: 15px;
border: 2px solid #e2e8f0;
border-radius: 10px;
font-family: 'Courier New', monospace;
font-size: 14px;
color:#08102b;
background: #f7fafc;
resize: vertical;
}
.btable-btn-copy {
background: #48bb78;
color: white;
padding: 10px 20px;
border: none;
border-radius: 10px;
cursor: pointer;
margin-top: 10px;
transition: background 0.3s ease;
}
.btable-btn-copy:hover {
background: #38a169;
}
.btable-btn-copy i {
margin-right: 8px;
}
.btable-preview-section {
margin-top: 30px;
padding: 20px;
background: #f8f9fa;
border-radius: 15px;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.05);
}
.btable-preview-title {
font-size: 1em;
margin-bottom: 15px;
color: #2d3748;
display: flex;
align-items: center;
gap: 10px;
}
.btable-table-wrapper {
overflow-x: auto;
border-radius: 10px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.btable-generated-table {
width: 100%;
border-collapse: collapse;
background: white;
border-radius: 10px;
overflow: hidden;
min-width: 0;
}
.btable-generated-table th,
.btable-generated-table td {
padding: 12px 16px;
text-align: left;
border-bottom: 1px solid #e2e8f0;
transition: background-color 0.3s ease;
}
.btable-generated-table th {
font-weight: 600;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.btable-generated-table tr:nth-child(even) {
background: #f8f9fa;
}
.btable-generated-table tr:hover {
background: #e2e8f0;
}
.btable-generated-table .btable-editable {
cursor: text;
background: transparent;
color: #2d3748;
min-height: 20px;
}
.btable-generated-table .btable-editable:focus {
outline: 2px solid #667eea;
background: white;
color: #2d3748;
}
.btable-theme-blue .btable-generated-table th {
background: linear-gradient(135deg, #0f2a56 0%, #1d4ed8 55%, #2563eb 100%);
color: white;
}
.btable-theme-blue .btable-generated-table tr:nth-child(even) {
background: #f8f9fa;
}
.btable-theme-blue .btable-generated-table tr:hover {
background: #e2e8f0;
}
.btable-theme-dark .btable-generated-table th {
background: linear-gradient(135deg, #2d3748 0%, #4a5568 100%);
color: white;
}
.btable-theme-dark .btable-generated-table tr:nth-child(even) {
background: #4a5568;
color: white;
}
.btable-theme-dark .btable-generated-table tr:hover {
background: #2d3748;
color: white;
}
.btable-theme-green .btable-generated-table th {
background: linear-gradient(135deg, #48bb78 0%, #38a169 100%);
color: white;
}
.btable-theme-green .btable-generated-table tr:nth-child(even) {
background: #f0fff4;
}
.btable-theme-green .btable-generated-table tr:hover {
background: #c6f6d5;
}
.btable-theme-purple .btable-generated-table th {
background: linear-gradient(135deg, #9f7aea 0%, #805ad5 100%);
color: white;
}
.btable-theme-purple .btable-generated-table tr:nth-child(even) {
background: #f3e8ff;
}
.btable-theme-purple .btable-generated-table tr:hover {
background: #e9d8fd;
}
.btable-theme-minimal .btable-generated-table th {
background: #f7fafc;
color: #4a5568;
border-bottom: 2px solid #e2e8f0;
}
.btable-theme-minimal .btable-generated-table tr:nth-child(even) {
background: #ffffff;
}
.btable-theme-minimal .btable-generated-table tr:hover {
background: #edf2f7;
border-left: 4px solid #667eea;
}
.btable-btn-add-row, .btable-btn-add-col, .btable-btn-del-row, .btable-btn-del-col {
background: linear-gradient(135deg, #ed8936 0%, #f6ad55 100%);
color: white;
border: none;
padding: 10px 15px;
border-radius: 10px;
cursor: pointer;
margin: 5px;
font-weight: 600;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.btable-btn-add-row:hover, .btable-btn-add-col:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(237, 137, 54, 0.3);
}
.btable-btn-del-row:hover, .btable-btn-del-col:hover {
background: linear-gradient(135deg, #c05621 0%, #dd6b20 100%);
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(192, 86, 33, 0.3);
}
.btable-toast {
position: fixed;
bottom: 20px;
right: 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 15px 20px;
border-radius: 10px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
display: flex;
align-items: center;
gap: 10px;
font-size: 1em;
font-weight: 500;
opacity: 0;
transform: translateY(20px);
transition: opacity 0.3s ease, transform 0.3s ease;
z-index: 1000;
}
.btable-toast.show {
opacity: 1;
transform: translateY(0);
}
.btable-toast i {
font-size: 1.2em;
}
@media (max-width: 768px) {
.btable-form-grid {
grid-template-columns: 1fr;
}
.btable-container {
padding: 20px;
}
.btable-heading {
font-size: 2em;
}
.btable-generated-table th,
.btable-generated-table td {
padding: 8px 12px;
white-space: nowrap;
}
.btable-toast {
bottom: 10px;
right: 10px;
font-size: 0.9em;
padding: 10px 15px;
}
}
</style>
<h2 class="btable-heading"><i class="fas fa-table"></i> Công Cụ Tạo Bảng Responsive <br>Blogger 2025</h2>
<div class="btable-description">
Chào mừng bạn đến với <strong>Công cụ tạo bảng Responsive</strong>! Tạo bảng đẹp, chuyên nghiệp, và tương thích mọi thiết bị chỉ với vài cú click. Chỉnh sửa nội dung trực tiếp, chọn giao diện thời thượng, và sao chép mã để dán vào Blogger. Hoàn hảo cho bài viết, danh sách, hoặc so sánh sản phẩm!
</div>
<details class="btable-instructions">
<summary><i class="fas fa-info-circle"></i> Hướng dẫn sử dụng</summary>
<ul>
<li>Nhập số hàng/cột và chọn giao diện (theme).</li>
<li>Bảng sẽ tự động tạo và cập nhật khi thay đổi số hàng/cột hoặc nội dung.</li>
<li>Click vào ô trong bảng xem trước để chỉnh sửa nội dung trực tiếp (cập nhật ngay lập tức).</li>
<li>Thêm/xóa hàng/cột bằng các nút tương ứng.</li>
<li>Sao chép mã từ textarea và dán vào bài viết Blogger (chế độ HTML).</li>
<li>Để áp dụng CSS cho toàn blog, dán phần <code><style></code> trước <code>]]></b:skin></code> trong theme.</li>
</ul>
</details>
<div class="btable-container">
<div class="btable-form-grid">
<div>
<label class="btable-label" for="btable-rows">Số hàng (bao gồm tiêu đề):</label>
<input class="btable-input" type="number" id="btable-rows" min="2" value="3" placeholder="Nhập số hàng (tối thiểu 2)" onchange="initTable()">
<button class="btable-btn-add-row" onclick="addRow()"><i class="fas fa-plus"></i> Thêm hàng</button>
<button class="btable-btn-del-row" onclick="deleteRow()"><i class="fas fa-minus"></i> Xóa hàng</button>
</div>
<div>
<label class="btable-label" for="btable-cols">Số cột:</label>
<input class="btable-input" type="number" id="btable-cols" min="1" value="3" placeholder="Nhập số cột (tối thiểu 1)" onchange="initTable()">
<button class="btable-btn-add-col" onclick="addCol()"><i class="fas fa-plus"></i> Thêm cột</button>
<button class="btable-btn-del-col" onclick="deleteCol()"><i class="fas fa-minus"></i> Xóa cột</button>
</div>
<div>
<label class="btable-label" for="btable-theme">Chọn giao diện (Theme):</label>
<select class="btable-select" id="btable-theme" onchange="generatePreview(); generateCode();">
<option value="minimal">Tối Giản Thanh Lịch</option>
<option value="blue">Xanh Dương Sang Trọng</option>
<option value="dark">Tối Hiện Đại</option>
<option value="green">Xanh Lá Tươi Mới</option>
<option value="purple">Tím Mộng Mơ</option>
</select>
</div>
</div>
<button class="btable-btn-reset" onclick="resetTable()">
<i class="fas fa-undo"></i> Reset Bảng
</button>
<div class="btable-code-section">
<label class="btable-code-label" for="btable-code">Mã HTML + CSS (Sao chép dán vào Blogger - Chế độ HTML):</label>
<textarea class="btable-input" id="btable-code" readonly placeholder="Mã sẽ xuất hiện sau khi tạo bảng..."></textarea>
<button class="btable-btn-copy" onclick="copyCode()"><i class="fas fa-copy"></i> Sao chép mã</button>
</div>
<div class="btable-preview-section">
<div class="btable-preview-title">
<i class="fas fa-eye"></i> Xem trước & Chỉnh sửa (Click vào ô để edit):
</div>
<div class="btable-table-wrapper" id="btable-preview-table"></div>
</div>
</div>
<div id="btable-toast" class="btable-toast"></div>
<script>
let btableData = [];
function showToast(message) {
const toast = document.getElementById('btable-toast');
toast.innerHTML = `<i class="fas fa-info-circle"></i> ${message}`;
toast.classList.add('show');
setTimeout(() => {
toast.classList.remove('show');
}, 3000);
}
function initTable() {
const rows = parseInt(document.getElementById('btable-rows').value) || 3;
const cols = parseInt(document.getElementById('btable-cols').value) || 3;
btableData = [];
for (let i = 0; i < rows; i++) {
btableData[i] = [];
for (let j = 0; j < cols; j++) {
btableData[i][j] = i === 0 ? `Tiêu đề ${j + 1}` : `Nội dung ${i}-${j + 1}`;
}
}
generatePreview();
generateCode();
}
function resetTable() {
document.getElementById('btable-rows').value = 3;
document.getElementById('btable-cols').value = 3;
document.getElementById('btable-theme').value = 'minimal';
initTable();
showToast('Đã reset bảng thành công!');
}
function generatePreview() {
const theme = document.getElementById('btable-theme').value;
const container = document.getElementById('btable-preview-table');
container.innerHTML = '';
container.className = `btable-table-wrapper btable-theme-${theme}`;
let html = '<table class="btable-generated-table"><thead><tr>';
for (let j = 0; j < btableData[0].length; j++) {
html += `<th class="btable-editable" contenteditable="true" oninput="updateCell(0, ${j}, this.innerText)">${btableData[0][j]}</th>`;
}
html += '</tr></thead><tbody>';
for (let i = 1; i < btableData.length; i++) {
html += '<tr>';
for (let j = 0; j < btableData[i].length; j++) {
html += `<td class="btable-editable" contenteditable="true" oninput="updateCell(${i}, ${j}, this.innerText)">${btableData[i][j]}</td>`;
}
html += '</tr>';
}
html += '</tbody></table>';
container.innerHTML = html;
generateCode();
}
function updateCell(row, col, text) {
if (text.trim() === '') text = 'Nội dung mới';
btableData[row][col] = text;
generateCode();
}
function addRow() {
if (!btableData.length) return;
btableData.push(new Array(btableData[0].length).fill('Nội dung mới'));
document.getElementById('btable-rows').value = btableData.length;
generatePreview();
showToast('Đã thêm hàng mới!');
}
function deleteRow() {
if (btableData.length > 1) {
btableData.pop();
document.getElementById('btable-rows').value = btableData.length;
generatePreview();
showToast('Đã xóa hàng!');
} else {
showToast('Phải giữ ít nhất 1 hàng tiêu đề!');
}
}
function addCol() {
if (!btableData.length) return;
btableData.forEach((row, i) => row.push(i === 0 ? `Tiêu đề ${row.length + 1}` : 'Nội dung mới'));
document.getElementById('btable-cols').value = btableData[0].length;
generatePreview();
showToast('Đã thêm cột mới!');
}
function deleteCol() {
if (btableData[0].length > 1) {
btableData.forEach(row => row.pop());
document.getElementById('btable-cols').value = btableData[0].length;
generatePreview();
showToast('Đã xóa cột!');
} else {
showToast('Phải giữ ít nhất 1 cột!');
}
}
function generateCode() {
const theme = document.getElementById('btable-theme').value;
let themeStyles = '';
if (theme === 'dark') {
themeStyles = `
.btable-blog-table th { background: linear-gradient(135deg, #2d3748 0%, #4a5568 100%); color: white; }
.btable-blog-table tr:nth-child(even) { background: #4a5568; color: white; }
.btable-blog-table tr:hover { background: #2d3748; color: white; }
`;
} else if (theme === 'green') {
themeStyles = `
.btable-blog-table th { background: linear-gradient(135deg, #48bb78 0%, #38a169 100%); color: white; }
.btable-blog-table tr:nth-child(even) { background: #f0fff4; }
.btable-blog-table tr:hover { background: #c6f6d5; }
`;
} else if (theme === 'purple') {
themeStyles = `
.btable-blog-table th { background: linear-gradient(135deg, #9f7aea 0%, #805ad5 100%); color: white; }
.btable-blog-table tr:nth-child(even) { background: #f3e8ff; }
.btable-blog-table tr:hover { background: #e9d8fd; }
`;
} else if (theme === 'minimal') {
themeStyles = `
.btable-blog-table th { background: #f7fafc; color: #4a5568; border-bottom: 2px solid #e2e8f0; }
.btable-blog-table tr:nth-child(even) { background: #ffffff; }
.btable-blog-table tr:hover { background: #edf2f7; border-left: 4px solid #667eea; }
`;
} else { // blue
themeStyles = `
.btable-blog-table th { background: linear-gradient(135deg, #0f2a56 0%, #1d4ed8 55%, #2563eb 100%); color: white; }
.btable-blog-table tr:nth-child(even) { background: #f8f9fa; }
.btable-blog-table tr:hover { background: #e2e8f0; }
`;
}
const css = `<style>
.btable-blog-table-wrapper {
overflow-x: auto;
margin: 20px 0;
border-radius: 10px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.btable-blog-table {
width: 100%;
border-collapse: collapse;
background: white;
border-radius: 10px;
overflow: hidden;
min-width: 0;
}
.btable-blog-table th, .btable-blog-table td {
padding: 12px 16px;
text-align: left;
border-bottom: 1px solid #e2e8f0;
transition: background-color 0.3s ease;
}
.btable-blog-table th {
font-weight: 600;
color: white;
}
${themeStyles}
@media screen and (max-width: 768px) {
.btable-blog-table-wrapper {
width: 100%;
overflow-y: hidden;
}
.btable-blog-table th, .btable-blog-table td {
white-space: nowrap;
padding: 8px 12px;
}
}
</style>`;
let html = `<div class="btable-blog-table-wrapper">\n <table class="btable-blog-table">\n <thead>\n <tr>\n`;
for (let j = 0; j < btableData[0].length; j++) {
html += ` <th>${btableData[0][j].replace(/</g, '<').replace(/>/g, '>')}</th>\n`;
}
html += ` </tr>\n </thead>\n <tbody>\n`;
for (let i = 1; i < btableData.length; i++) {
html += ` <tr>\n`;
for (let j = 0; j < btableData[i].length; j++) {
html += ` <td>${btableData[i][j].replace(/</g, '<').replace(/>/g, '>')}</td>\n`;
}
html += ` </tr>\n`;
}
html += ` </tbody>\n </table>\n</div>`;
document.getElementById('btable-code').value = css + '\n' + html;
}
function copyCode() {
const code = document.getElementById('btable-code');
code.select();
document.execCommand('copy');
showToast('Đã sao chép mã! Dán vào Blogger ở chế độ HTML.');
}
initTable();
</script>
Bạn chỉ việc copy toàn bộ đoạn này và dán vào bài viết ở chế độ HTML. Bảng sẽ hiển thị đúng ngay lập tức mà không cần chỉnh sửa gì thêm.
Lưu ý nhỏ khi sử dụng
Nếu muốn bảng đẹp hơn nữa, bạn có thể tinh chỉnh CSS để phù hợp với brand màu sắc của riêng mình. Ngoài ra, trước khi publish, hãy test trên điện thoại để chắc chắn mọi thứ hiển thị gọn gàng. Và nếu dùng nhiều bảng trong cùng một blog, tốt nhất là chèn CSS vào theme để đồng bộ toàn site.
Ứng dụng thực tế
Công cụ này không chỉ dùng để trang trí. Bạn có thể áp dụng trong nhiều trường hợp thực tế như: so sánh các mẫu laptop mới, tạo bảng giá dịch vụ, liệt kê lịch trình công việc, hay thậm chí trình bày bảng xếp hạng nội dung hot. Một bảng gọn gàng sẽ giúp thông tin rõ ràng, người đọc dễ theo dõi và ở lại lâu hơn.
Kết luận
Với công cụ tạo bảng HTML responsive Blogger 2025, việc chèn bảng đẹp, gọn, chuẩn SEO đã không còn là thử thách. Chỉ vài phút thao tác, bạn đã có thể biến blog của mình trở nên chuyên nghiệp hơn rất nhiều. Hãy thử ngay, copy code và tận dụng công cụ này cho bài viết của bạn. Độc giả sẽ ấn tượng, còn Google thì chắc chắn sẽ cộng điểm cho trang của bạn.
Nếu thấy hữu ích, đừng quên chia sẻ công cụ này để nhiều người khác cùng trải nghiệm. Và tất nhiên, nếu có góp ý, hãy để lại bình luận để mình tiếp tục cải tiến. Blogger đẹp hơn, nội dung chất hơn, đó mới là mục tiêu cuối cùng.
Written by:
TruongDevs