That would be hard to do. Checkboxes can only be in two distinct states.
So except if you limit the game to having no cells with more then one neighbors with a mine, it won't work.
• All squares start off as unchecked boxes.
• Marked squares are partially-checked boxes.
• Revealed bombs (e.g. player lost, show the board) are fully checked.
• Uncovered squares are deleted, and a number is placed in the space as simple text.
You could absolutely argue the last point is cheating, but, meh, I feel it's within the spirit of the idea.
(Undecided on whether to use disabled checkboxes to mark the perimeter of the playing field; I'd have to try it and see what felt right.)
<input type="checkbox" />
<input type="checkbox" checked />
<input type="checkbox" indeterminate />
<input type="checkbox" disabled />
<input type="checkbox" disabled checked />
<input type="checkbox" disabled indeterminate />