Công Cụ Tạo CSS Grid Generator
Hướng Dẫn Code Tạo Công Cụ Tạo Lưới Bằng CSS
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Công Cụ Tạo CSS Grid Generator</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
padding: 20px;
background-color: #f4f4f4;
}
h1 {
color: #333;
}
label {
font-weight: bold;
}
input[type="number"] {
width: 50px;
padding: 5px;
margin: 10px 5px;
box-sizing: border-box;
}
button {
padding: 10px 15px;
background-color: #5cb85c;
color: white;
border: none;
cursor: pointer;
font-size: 16px;
margin-top: 10px;
margin-right: 10px;
}
button:hover {
background-color: #4cae4c;
}
textarea {
width: 100%;
height: 150px;
padding: 10px;
margin-top: 20px;
box-sizing: border-box;
}
.grid-preview {
display: grid;
gap: 10px;
background-color: #fff;
padding: 10px;
margin-top: 20px;
border: 1px solid #ddd;
}
.grid-item {
background-color: #5cb85c;
color: white;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<h1>Công Cụ Tạo CSS Grid Generator</h1>
<label for="columns">Số cột:</label>
<input type="number" id="columns" value="3" min="1">
<label for="rows">Số hàng:</label>
<input type="number" id="rows" value="3" min="1">
<label for="gap">Khoảng cách giữa các ô (px):</label>
<input type="number" id="gap" value="10" min="0">
<button onclick="generateGrid()">Tạo CSS Grid</button>
<button onclick="copyCssCode()">Copy Mã CSS</button>
<label for="cssCode">Mã CSS Được Tạo:</label>
<textarea id="cssCode" readonly></textarea>
<div id="gridPreview" class="grid-preview">
<!-- Xem trước Grid sẽ được tạo tại đây -->
</div>
<script>
function generateGrid() {
var columns = document.getElementById('columns').value;
var rows = document.getElementById('rows').value;
var gap = document.getElementById('gap').value;
var gridPreview = document.getElementById('gridPreview');
gridPreview.style.gridTemplateColumns = `repeat(${columns}, 1fr)`;
gridPreview.style.gridTemplateRows = `repeat(${rows}, auto)`;
gridPreview.style.gap = `${gap}px`;
gridPreview.innerHTML = '';
for (var i = 1; i <= columns * rows; i++) {
var gridItem = document.createElement('div');
gridItem.className = 'grid-item';
gridItem.textContent = `Ô ${i}`;
gridPreview.appendChild(gridItem);
}
var cssCode = `
.grid-container {
display: grid;
grid-template-columns: repeat(${columns}, 1fr);
grid-template-rows: repeat(${rows}, auto);
gap: ${gap}px;
}
.grid-item {
background-color: #5cb85c;
color: white;
padding: 20px;
text-align: center;
}`;
document.getElementById('cssCode').value = cssCode.trim();
}
function copyCssCode() {
var cssCode = document.getElementById('cssCode');
cssCode.select();
cssCode.setSelectionRange(0, 99999); // Đối với các thiết bị di động
document.execCommand("copy");
alert("Đã sao chép mã CSS!");
}
</script>
</body>
</html>