我在react有一个数独解算项目.我想用react或css来设计它.我两种方法都试过了,结果都搞糊涂了.
这是我的简单CSS代码
.odd {
background-color: gray;
}
还有我的网格.jsx
import React, { useEffect } from 'react'
import '../App.css';
export default function Grid() {
// for every input make sure only one number per an input field can be entered
const checkInput = (e) => {
if (e.target.value.length > 1) {
e.target.value = e.target.value.slice(0, 1)
}
}
// Driver function for the grid
const grid = document.querySelectorAll('.grid input')
useEffect(() => {
grid.forEach(item => {
item.addEventListener('input', checkInput)
})
return () => {
grid.forEach(item => {
item.removeEventListener('input', checkInput)
})
}
}, [grid])
// styling for grid element
useEffect(() => {
const colorChanger = () => {
grid.forEach((item, i) => {
if (
((i % 9 === 0 || i % 9 === 1 || i % 9 === 2) && i < 21) ||
((i % 9 === 6 || i % 9 === 7 || i % 9 === 8) && i < 27) ||
((i % 9 === 3 || i % 9 === 4 || i % 9 === 5) && (i > 27 && i < 53)) ||
((i % 9 === 0 || i % 9 === 1 || i % 9 === 2) && i > 53) ||
((i % 9 === 6 || i % 9 === 7 || i % 9 === 8) && i > 53)
) {
item.classList.add('odd')
}
})
}
colorChanger()
}, [grid])
return (
<div className='grid'>
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
<input type="number" min='1' max='9' />
</div>
)
}
<!-- language: lang-html -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
那么,我怎样才能在图片中获得相同的结果呢?