gpt4 book ai didi

javascript - 无论行数和列数如何,都可以将网格放入 div

转载 作者:行者123 更新时间:2023-12-04 09:21:11 25 4
gpt4 key购买 nike

我正在容器内创建一个网格,我希望用户引入列数和行数。问题是内容不适合容器,如果用户想要一个高达 64x64 的大网格,它会溢出容器。无论行和列如何,我怎样才能让我的网格适合容器?
我的代码:

const container = document.createElement('div');
container.id = 'container';
container.className = 'mx-auto my-2';

document.body.appendChild(container);

function makeRows(rows, cols) {
container.style.setProperty('--grid-rows', rows);
container.style.setProperty('--grid-cols', cols);
container.style.border = '3px solid #0000FF'
for (c = 0; c < (rows * cols); c++) {
let cell = document.createElement("div");
container.appendChild(cell).className = "grid-item";
cell.addEventListener("mouseover", paint);
};
};

function paint(e) {
e.target.style.backgroundColor = 'black';
}

let size = 0;
const start = document.getElementById('start');
start.addEventListener('click', function() {
size = prompt('Please enter the side of the grid(max 64):');
if (size <= 64) {
container.innerHTML = '';
makeRows(size, size);
} else if (size > 64) {
alert('You exceeded the limits. Please Try Again:');
}
});

const reset = document.getElementById('reset');
reset.addEventListener('click', function() {
container.innerHTML = '';
makeRows(size, size);
});
:root {
--grid-cols: 1;
--grid-rows: 1;
}

#container {
overflow: hidden;
height: 450px;
width: 960px;
display: grid;
grid-template-rows: repeat(var(--grid-rows), 1fr);
grid-template-columns: repeat(var(--grid-cols), 1fr);
}

.grid-item {
padding: 1em;
text-align: center;
background-color: gray;
}
<body class="bg-secondary">
<nav class="navbar navbar-dark bg-dark">
<span class="navbar-brand mb-0 h1">Etch-A-Sketch</span>
</nav>
<div class="text-center mt-2">
<button type="button" class="btn btn-primary btn-lg" id="start">START</button>
<button type="button" class="btn btn-primary btn-lg" id="reset">RESET</button>
</div>
<script src="script.js"></script>
</body>

最佳答案

只需删除填充:

const container = document.createElement('div');
container.id = 'container';
container.className = 'mx-auto my-2';

document.body.appendChild(container);

function makeRows(rows, cols) {
container.style.setProperty('--grid-rows', rows);
container.style.setProperty('--grid-cols', cols);
container.style.border = '3px solid #0000FF'
for (c = 0; c < (rows * cols); c++) {
let cell = document.createElement("div");
container.appendChild(cell).className = "grid-item";
cell.addEventListener("mouseover", paint);
};
};

function paint(e) {
e.target.style.backgroundColor = 'black';
}

let size = 0;
const start = document.getElementById('start');
start.addEventListener('click', function() {
size = prompt('Please enter the side of the grid(max 64):');
if (size <= 64) {
container.innerHTML = '';
makeRows(size, size);
} else if (size > 64) {
alert('You exceeded the limits. Please Try Again:');
}
});

const reset = document.getElementById('reset');
reset.addEventListener('click', function() {
container.innerHTML = '';
makeRows(size, size);
});
:root {
--grid-cols: 1;
--grid-rows: 1;
}

#container {
overflow: hidden;
height: 450px;
width: 960px;
display: grid;
grid-template-rows: repeat(var(--grid-rows), 1fr);
grid-template-columns: repeat(var(--grid-cols), 1fr);
}

.grid-item {
text-align: center;
background-color: gray;
}
<body class="bg-secondary">
<nav class="navbar navbar-dark bg-dark">
<span class="navbar-brand mb-0 h1">Etch-A-Sketch</span>
</nav>
<div class="text-center mt-2">
<button type="button" class="btn btn-primary btn-lg" id="start">START</button>
<button type="button" class="btn btn-primary btn-lg" id="reset">RESET</button>
</div>
<script src="script.js"></script>
</body>

关于javascript - 无论行数和列数如何,都可以将网格放入 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63102609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com