Я написал код js, чтобы создать таблицу, tds и trs, но между ними есть эти странные белые линии, и я почти уверен, что это проблема с одним из свойств CSS, но я просто не могу найти то, что мне нужно изменить . Я вроде начинающий программист. Помощь будет приветствоваться, и если у вас есть улучшения в коде или, может быть, просто предложение или что-то о том, как продолжить мое путешествие по программированию, я буду очень рад :)
const board = document.getElementById("board");
let black = true;
for(let i = 1; i <= 8; i++){
let row = document.createElement("tr");
if (black){
row.classList.add("black");
}
else{
row.classList.add("black");
}
black = !black;
board.appendChild(row);
for(let j = 1; j <= 8; j++){
let column = document.createElement("td");
if (black){
row.classList.add("black");
}
else{
row.classList.add("white");
}
black = !black;
board.appendChild(column);
}
}.black {
background: black;
}
.white {
background: white;
}
table {
height: 900px;
width: 900px;
border: 2px solid black;
display: inline-block;
margin: -1px;
border-collapse: collapse;
}
td, tr {
border: 2px solid black;
height: 112.5px;
width: 112.5px;
}
td::after {
content: ' ';
display: block;
margin-top: 100%;
}
.sqr {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel = "stylesheet" href = "style.css">
</head>
<body>
<div id = "chessContainer">
<table id = "board">
</table>
</div>
<script src = "chess.js"></script>
</body>
</html>структура неправильная
Если вы застряли, пытаясь использовать таблицы, попробуйте stackoverflow.com/questions/10348488/…
Я думаю, вам лучше изучить методы отображения CSS. (flexbox-сетка-блок)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваша проблема в javascript, вы хотите добавить столбцы (td) к строке (tr), а затем добавить строку к доске.
board.appendChild(row); это ваша проблема. Измените его на row.appendChild(column);
ПРИМЕЧАНИЕ. Если вы щелкните правой кнопкой мыши браузер при его запуске и посмотрите, как построена ваша таблица, вы увидите, что создаете tr и внутри строки ничего нет, тогда у вас есть 8 тегов td, и html продолжается в этом способ. Это должно быть ключом к просмотру.
const board = document.getElementById("board");
let black = true;
for(let i = 1; i <= 8; i++){
let row = document.createElement("tr");
// let sqr = document.createElement("div");
//sqr.classList.add("sqr");
if (black){
row.classList.add("black");
}
else{
row.classList.add("black");
}
black = !black;
//row.appendChild(sqr);
board.appendChild(row);
for(let j = 1; j <= 8; j++){
let column = document.createElement("td");
//let sqr2 = document.createElement("div");
//sqr2.classList.add("sqr");
if (black){
row.classList.add("black");
}
else{
row.classList.add("white");
}
black = !black;
// column.appendChild(sqr2);
row.appendChild(column);
}
}.black {
background: black;
}
.white {
background: white;
}
table {
height: 900px;
width: 900px;
border: 2px solid black;
display: inline-block;
margin: -1px;
border-collapse: collapse;
}
td, tr {
border: 2px solid black;
height: 112.5px;
width: 112.5px;
}
td::after {
content: ' ';
display: block;
margin-top: 100%;
}
.sqr {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel = "stylesheet" href = "style.css">
</head>
<body>
<div id = "chessContainer">
<table id = "board">
</table>
</div>
<script src = "chess.js"></script>
</body>
</html>
Я настоятельно рекомендую изучить сетку CSS, это было бы так легко сделать с помощью сетки. Нет необходимости в столе.