纯CSS3实现的井字棋游戏


Posted in HTML / CSS onNovember 25, 2020

运行效果:

纯CSS3实现的井字棋游戏

html

<div class="tic-tac-toe">
  <input class="player-1 left first-column top first-row first-diagonal turn-1" id="block1-1-1" type="radio"/>
  <label class="turn-1" for="block1-1-1"></label>
  <input class="player-1 middle second-column top first-row turn-1" id="block1-1-2" type="radio"/>
  <label class="turn-1" for="block1-1-2"></label>
  <input class="player-1 right third-column top first-row second-diagonal turn-1" id="block1-1-3" type="radio"/>
  <label class="turn-1" for="block1-1-3"></label>
  <input class="player-1 left first-column center second-row turn-1" id="block1-2-1" type="radio"/>
  <label class="turn-1" for="block1-2-1"></label>
  <input class="player-1 middle second-column center second-row first-diagonal second-diagonal turn-1" id="block1-2-2" type="radio"/>
  <label class="turn-1" for="block1-2-2"></label>
  <input class="player-1 right third-column center second-row turn-1" id="block1-2-3" type="radio"/>
  <label class="turn-1" for="block1-2-3"></label>
  <input class="player-1 left first-column bottom third-row second-diagonal turn-1" id="block1-3-1" type="radio"/>
  <label class="turn-1" for="block1-3-1"></label>
  <input class="player-1 middle second-column bottom third-row turn-1" id="block1-3-2" type="radio"/>
  <label class="turn-1" for="block1-3-2"></label>
  <input class="player-1 right third-column bottom third-row first-diagonal turn-1" id="block1-3-3" type="radio"/>
  <label class="turn-1" for="block1-3-3"></label>
  <input class="player-2 left first-column top first-row first-diagonal turn-2" id="block2-1-1" type="radio"/>
  <label class="turn-2" for="block2-1-1"></label>
  <input class="player-2 middle second-column top first-row turn-2" id="block2-1-2" type="radio"/>
  <label class="turn-2" for="block2-1-2"></label>
  <input class="player-2 right third-column top first-row second-diagonal turn-2" id="block2-1-3" type="radio"/>
  <label class="turn-2" for="block2-1-3"></label>
  <input class="player-2 left first-column center second-row turn-2" id="block2-2-1" type="radio"/>
  <label class="turn-2" for="block2-2-1"></label>
  <input class="player-2 middle second-column center second-row first-diagonal second-diagonal turn-2" id="block2-2-2" type="radio"/>
  <label class="turn-2" for="block2-2-2"></label>
  <input class="player-2 right third-column center second-row turn-2" id="block2-2-3" type="radio"/>
  <label class="turn-2" for="block2-2-3"></label>
  <input class="player-2 left first-column bottom third-row second-diagonal turn-2" id="block2-3-1" type="radio"/>
  <label class="turn-2" for="block2-3-1"></label>
  <input class="player-2 middle second-column bottom third-row turn-2" id="block2-3-2" type="radio"/>
  <label class="turn-2" for="block2-3-2"></label>
  <input class="player-2 right third-column bottom third-row first-diagonal turn-2" id="block2-3-3" type="radio"/>
  <label class="turn-2" for="block2-3-3"></label>
  <input class="player-1 left first-column top first-row first-diagonal turn-3" id="block3-1-1" type="radio"/>
  <label class="turn-3" for="block3-1-1"></label>
  <input class="player-1 middle second-column top first-row turn-3" id="block3-1-2" type="radio"/>
  <label class="turn-3" for="block3-1-2"></label>
  <input class="player-1 right third-column top first-row second-diagonal turn-3" id="block3-1-3" type="radio"/>
  <label class="turn-3" for="block3-1-3"></label>
  <input class="player-1 left first-column center second-row turn-3" id="block3-2-1" type="radio"/>
  <label class="turn-3" for="block3-2-1"></label>
  <input class="player-1 middle second-column center second-row first-diagonal second-diagonal turn-3" id="block3-2-2" type="radio"/>
  <label class="turn-3" for="block3-2-2"></label>
  <input class="player-1 right third-column center second-row turn-3" id="block3-2-3" type="radio"/>
  <label class="turn-3" for="block3-2-3"></label>
  <input class="player-1 left first-column bottom third-row second-diagonal turn-3" id="block3-3-1" type="radio"/>
  <label class="turn-3" for="block3-3-1"></label>
  <input class="player-1 middle second-column bottom third-row turn-3" id="block3-3-2" type="radio"/>
  <label class="turn-3" for="block3-3-2"></label>
  <input class="player-1 right third-column bottom third-row first-diagonal turn-3" id="block3-3-3" type="radio"/>
  <label class="turn-3" for="block3-3-3"></label>
  <input class="player-2 left first-column top first-row first-diagonal turn-4" id="block4-1-1" type="radio"/>
  <label class="turn-4" for="block4-1-1"></label>
  <input class="player-2 middle second-column top first-row turn-4" id="block4-1-2" type="radio"/>
  <label class="turn-4" for="block4-1-2"></label>
  <input class="player-2 right third-column top first-row second-diagonal turn-4" id="block4-1-3" type="radio"/>
  <label class="turn-4" for="block4-1-3"></label>
  <input class="player-2 left first-column center second-row turn-4" id="block4-2-1" type="radio"/>
  <label class="turn-4" for="block4-2-1"></label>
  <input class="player-2 middle second-column center second-row first-diagonal second-diagonal turn-4" id="block4-2-2" type="radio"/>
  <label class="turn-4" for="block4-2-2"></label>
  <input class="player-2 right third-column center second-row turn-4" id="block4-2-3" type="radio"/>
  <label class="turn-4" for="block4-2-3"></label>
  <input class="player-2 left first-column bottom third-row second-diagonal turn-4" id="block4-3-1" type="radio"/>
  <label class="turn-4" for="block4-3-1"></label>
  <input class="player-2 middle second-column bottom third-row turn-4" id="block4-3-2" type="radio"/>
  <label class="turn-4" for="block4-3-2"></label>
  <input class="player-2 right third-column bottom third-row first-diagonal turn-4" id="block4-3-3" type="radio"/>
  <label class="turn-4" for="block4-3-3"></label>
  <input class="player-1 left first-column top first-row first-diagonal turn-5" id="block5-1-1" type="radio"/>
  <label class="turn-5" for="block5-1-1"></label>
  <input class="player-1 middle second-column top first-row turn-5" id="block5-1-2" type="radio"/>
  <label class="turn-5" for="block5-1-2"></label>
  <input class="player-1 right third-column top first-row second-diagonal turn-5" id="block5-1-3" type="radio"/>
  <label class="turn-5" for="block5-1-3"></label>
  <input class="player-1 left first-column center second-row turn-5" id="block5-2-1" type="radio"/>
  <label class="turn-5" for="block5-2-1"></label>
  <input class="player-1 middle second-column center second-row first-diagonal second-diagonal turn-5" id="block5-2-2" type="radio"/>
  <label class="turn-5" for="block5-2-2"></label>
  <input class="player-1 right third-column center second-row turn-5" id="block5-2-3" type="radio"/>
  <label class="turn-5" for="block5-2-3"></label>
  <input class="player-1 left first-column bottom third-row second-diagonal turn-5" id="block5-3-1" type="radio"/>
  <label class="turn-5" for="block5-3-1"></label>
  <input class="player-1 middle second-column bottom third-row turn-5" id="block5-3-2" type="radio"/>
  <label class="turn-5" for="block5-3-2"></label>
  <input class="player-1 right third-column bottom third-row first-diagonal turn-5" id="block5-3-3" type="radio"/>
  <label class="turn-5" for="block5-3-3"></label>
  <input class="player-2 left first-column top first-row first-diagonal turn-6" id="block6-1-1" type="radio"/>
  <label class="turn-6" for="block6-1-1"></label>
  <input class="player-2 middle second-column top first-row turn-6" id="block6-1-2" type="radio"/>
  <label class="turn-6" for="block6-1-2"></label>
  <input class="player-2 right third-column top first-row second-diagonal turn-6" id="block6-1-3" type="radio"/>
  <label class="turn-6" for="block6-1-3"></label>
  <input class="player-2 left first-column center second-row turn-6" id="block6-2-1" type="radio"/>
  <label class="turn-6" for="block6-2-1"></label>
  <input class="player-2 middle second-column center second-row first-diagonal second-diagonal turn-6" id="block6-2-2" type="radio"/>
  <label class="turn-6" for="block6-2-2"></label>
  <input class="player-2 right third-column center second-row turn-6" id="block6-2-3" type="radio"/>
  <label class="turn-6" for="block6-2-3"></label>
  <input class="player-2 left first-column bottom third-row second-diagonal turn-6" id="block6-3-1" type="radio"/>
  <label class="turn-6" for="block6-3-1"></label>
  <input class="player-2 middle second-column bottom third-row turn-6" id="block6-3-2" type="radio"/>
  <label class="turn-6" for="block6-3-2"></label>
  <input class="player-2 right third-column bottom third-row first-diagonal turn-6" id="block6-3-3" type="radio"/>
  <label class="turn-6" for="block6-3-3"></label>
  <input class="player-1 left first-column top first-row first-diagonal turn-7" id="block7-1-1" type="radio"/>
  <label class="turn-7" for="block7-1-1"></label>
  <input class="player-1 middle second-column top first-row turn-7" id="block7-1-2" type="radio"/>
  <label class="turn-7" for="block7-1-2"></label>
  <input class="player-1 right third-column top first-row second-diagonal turn-7" id="block7-1-3" type="radio"/>
  <label class="turn-7" for="block7-1-3"></label>
  <input class="player-1 left first-column center second-row turn-7" id="block7-2-1" type="radio"/>
  <label class="turn-7" for="block7-2-1"></label>
  <input class="player-1 middle second-column center second-row first-diagonal second-diagonal turn-7" id="block7-2-2" type="radio"/>
  <label class="turn-7" for="block7-2-2"></label>
  <input class="player-1 right third-column center second-row turn-7" id="block7-2-3" type="radio"/>
  <label class="turn-7" for="block7-2-3"></label>
  <input class="player-1 left first-column bottom third-row second-diagonal turn-7" id="block7-3-1" type="radio"/>
  <label class="turn-7" for="block7-3-1"></label>
  <input class="player-1 middle second-column bottom third-row turn-7" id="block7-3-2" type="radio"/>
  <label class="turn-7" for="block7-3-2"></label>
  <input class="player-1 right third-column bottom third-row first-diagonal turn-7" id="block7-3-3" type="radio"/>
  <label class="turn-7" for="block7-3-3"></label>
  <input class="player-2 left first-column top first-row first-diagonal turn-8" id="block8-1-1" type="radio"/>
  <label class="turn-8" for="block8-1-1"></label>
  <input class="player-2 middle second-column top first-row turn-8" id="block8-1-2" type="radio"/>
  <label class="turn-8" for="block8-1-2"></label>
  <input class="player-2 right third-column top first-row second-diagonal turn-8" id="block8-1-3" type="radio"/>
  <label class="turn-8" for="block8-1-3"></label>
  <input class="player-2 left first-column center second-row turn-8" id="block8-2-1" type="radio"/>
  <label class="turn-8" for="block8-2-1"></label>
  <input class="player-2 middle second-column center second-row first-diagonal second-diagonal turn-8" id="block8-2-2" type="radio"/>
  <label class="turn-8" for="block8-2-2"></label>
  <input class="player-2 right third-column center second-row turn-8" id="block8-2-3" type="radio"/>
  <label class="turn-8" for="block8-2-3"></label>
  <input class="player-2 left first-column bottom third-row second-diagonal turn-8" id="block8-3-1" type="radio"/>
  <label class="turn-8" for="block8-3-1"></label>
  <input class="player-2 middle second-column bottom third-row turn-8" id="block8-3-2" type="radio"/>
  <label class="turn-8" for="block8-3-2"></label>
  <input class="player-2 right third-column bottom third-row first-diagonal turn-8" id="block8-3-3" type="radio"/>
  <label class="turn-8" for="block8-3-3"></label>
  <input class="player-1 left first-column top first-row first-diagonal turn-9" id="block9-1-1" type="radio"/>
  <label class="turn-9" for="block9-1-1"></label>
  <input class="player-1 middle second-column top first-row turn-9" id="block9-1-2" type="radio"/>
  <label class="turn-9" for="block9-1-2"></label>
  <input class="player-1 right third-column top first-row second-diagonal turn-9" id="block9-1-3" type="radio"/>
  <label class="turn-9" for="block9-1-3"></label>
  <input class="player-1 left first-column center second-row turn-9" id="block9-2-1" type="radio"/>
  <label class="turn-9" for="block9-2-1"></label>
  <input class="player-1 middle second-column center second-row first-diagonal second-diagonal turn-9" id="block9-2-2" type="radio"/>
  <label class="turn-9" for="block9-2-2"></label>
  <input class="player-1 right third-column center second-row turn-9" id="block9-2-3" type="radio"/>
  <label class="turn-9" for="block9-2-3"></label>
  <input class="player-1 left first-column bottom third-row second-diagonal turn-9" id="block9-3-1" type="radio"/>
  <label class="turn-9" for="block9-3-1"></label>
  <input class="player-1 middle second-column bottom third-row turn-9" id="block9-3-2" type="radio"/>
  <label class="turn-9" for="block9-3-2"></label>
  <input class="player-1 right third-column bottom third-row first-diagonal turn-9" id="block9-3-3" type="radio"/>
  <label class="turn-9" for="block9-3-3"></label>
  <div class="end">
    <h3></h3><a href="">Restart</a>
  </div>
</div>
<h5>Note: use the Full Page view for the best experience.</h5>

css3

@charset "UTF-8";
/* Variables
-------------------------------------------------------------- */
/* Body and Notice styling
-------------------------------------------------------------- */
body {
  color: #b6b5ca;
  font-family: 'Arial', sans-serif;
  margin: 0;
  text-align: center;
}

h5 {
  font-weight: 400;
  padding: 0 20px;
}

/* Tic-tac-toe game
-------------------------------------------------------------- */
.tic-tac-toe {
  font-family: 'Open Sans', sans-serif;
  height: 300px;
  overflow: hidden;
  margin: 50px auto 30px auto;
  position: relative;
  width: 300px;
}
@media (min-width: 450px) {
  .tic-tac-toe {
    height: 450px;
    width: 450px;
  }
}
.tic-tac-toe input[type="radio"] {
  display: none;
}
.tic-tac-toe input[type="radio"]:checked + label {
  cursor: default;
  z-index: 10 !important;
}
.tic-tac-toe input[type="radio"].player-1 + label:after {
  content: "";
}
.tic-tac-toe input[type="radio"].player-2 + label:after {
  content: "";
}
.tic-tac-toe input[type="radio"].player-1:checked + label:after, .tic-tac-toe input[type="radio"].player-2:checked + label:after {
  opacity: 1;
}
.tic-tac-toe input[type="radio"].player-1:checked + label {
  background-color: #dc685a;
}
.tic-tac-toe input[type="radio"].player-2:checked + label {
  background-color: #ecaf4f;
}
.tic-tac-toe input[type="radio"].turn-1 + label {
  z-index: 1;
}
.tic-tac-toe input[type="radio"].turn-2 + label {
  z-index: 2;
}
.tic-tac-toe input[type="radio"].turn-3 + label {
  z-index: 3;
}
.tic-tac-toe input[type="radio"].turn-4 + label {
  z-index: 4;
}
.tic-tac-toe input[type="radio"].turn-5 + label {
  z-index: 5;
}
.tic-tac-toe input[type="radio"].turn-6 + label {
  z-index: 6;
}
.tic-tac-toe input[type="radio"].turn-7 + label {
  z-index: 7;
}
.tic-tac-toe input[type="radio"].turn-8 + label {
  z-index: 8;
}
.tic-tac-toe input[type="radio"].turn-9 + label {
  z-index: 9;
}
.tic-tac-toe input[type="radio"].turn-1 + label {
  display: block;
}
.tic-tac-toe input[type="radio"].turn-1:checked ~ .turn-2 + label {
  display: block;
}
.tic-tac-toe input[type="radio"].turn-2:checked ~ .turn-3 + label {
  display: block;
}
.tic-tac-toe input[type="radio"].turn-3:checked ~ .turn-4 + label {
  display: block;
}
.tic-tac-toe input[type="radio"].turn-4:checked ~ .turn-5 + label {
  display: block;
}
.tic-tac-toe input[type="radio"].turn-5:checked ~ .turn-6 + label {
  display: block;
}
.tic-tac-toe input[type="radio"].turn-6:checked ~ .turn-7 + label {
  display: block;
}
.tic-tac-toe input[type="radio"].turn-7:checked ~ .turn-8 + label {
  display: block;
}
.tic-tac-toe input[type="radio"].turn-8:checked ~ .turn-9 + label {
  display: block;
}
.tic-tac-toe input[type="radio"].left + label {
  left: 0;
}
.tic-tac-toe input[type="radio"].top + label {
  top: 0;
}
.tic-tac-toe input[type="radio"].middle + label {
  left: 100px;
}
.tic-tac-toe input[type="radio"].right + label {
  left: 200px;
}
.tic-tac-toe input[type="radio"].center + label {
  top: 100px;
}
.tic-tac-toe input[type="radio"].bottom + label {
  top: 200px;
}
@media (min-width: 450px) {
  .tic-tac-toe input[type="radio"].middle + label {
    left: 150px;
  }
  .tic-tac-toe input[type="radio"].right + label {
    left: 300px;
  }
  .tic-tac-toe input[type="radio"].center + label {
    top: 150px;
  }
  .tic-tac-toe input[type="radio"].bottom + label {
    top: 300px;
  }
}
.tic-tac-toe input[type="radio"]:checked ~ input[type="radio"]:checked ~ input[type="radio"]:checked ~
input[type="radio"]:checked ~ input[type="radio"]:checked ~ input[type="radio"]:checked ~
input[type="radio"]:checked ~ input[type="radio"]:checked ~ input[type="radio"]:checked ~ .end {
  display: block;
}
.tic-tac-toe input[type="radio"]:checked ~ input[type="radio"]:checked ~ input[type="radio"]:checked ~
input[type="radio"]:checked ~ input[type="radio"]:checked ~ input[type="radio"]:checked ~
input[type="radio"]:checked ~ input[type="radio"]:checked ~ input[type="radio"]:checked ~ .end > h3:before {
  content: "It is a tie!";
}
.tic-tac-toe .player-1.first-column:checked ~ .player-1.first-column:checked ~ .player-1.first-column:checked ~ .end,
.tic-tac-toe .player-1.second-column:checked ~ .player-1.second-column:checked ~ .player-1.second-column:checked ~ .end,
.tic-tac-toe .player-1.third-column:checked ~ .player-1.third-column:checked ~ .player-1.third-column:checked ~ .end,
.tic-tac-toe .player-1.first-row:checked ~ .player-1.first-row:checked ~ .player-1.first-row:checked ~ .end,
.tic-tac-toe .player-1.second-row:checked ~ .player-1.second-row:checked ~ .player-1.second-row:checked ~ .end,
.tic-tac-toe .player-1.third-row:checked ~ .player-1.third-row:checked ~ .player-1.third-row:checked ~ .end,
.tic-tac-toe .player-1.first-diagonal:checked ~ .player-1.first-diagonal:checked ~ .player-1.first-diagonal:checked ~ .end,
.tic-tac-toe .player-1.second-diagonal:checked ~ .player-1.second-diagonal:checked ~ .player-1.second-diagonal:checked ~ .end {
  display: block;
}
.tic-tac-toe .player-1.first-column:checked ~ .player-1.first-column:checked ~ .player-1.first-column:checked ~ .end h3:before,
.tic-tac-toe .player-1.second-column:checked ~ .player-1.second-column:checked ~ .player-1.second-column:checked ~ .end h3:before,
.tic-tac-toe .player-1.third-column:checked ~ .player-1.third-column:checked ~ .player-1.third-column:checked ~ .end h3:before,
.tic-tac-toe .player-1.first-row:checked ~ .player-1.first-row:checked ~ .player-1.first-row:checked ~ .end h3:before,
.tic-tac-toe .player-1.second-row:checked ~ .player-1.second-row:checked ~ .player-1.second-row:checked ~ .end h3:before,
.tic-tac-toe .player-1.third-row:checked ~ .player-1.third-row:checked ~ .player-1.third-row:checked ~ .end h3:before,
.tic-tac-toe .player-1.first-diagonal:checked ~ .player-1.first-diagonal:checked ~ .player-1.first-diagonal:checked ~ .end h3:before,
.tic-tac-toe .player-1.second-diagonal:checked ~ .player-1.second-diagonal:checked ~ .player-1.second-diagonal:checked ~ .end h3:before {
  content: "Player 1 wins!" !important;
}
.tic-tac-toe .player-2.first-column:checked ~ .player-2.first-column:checked ~ .player-2.first-column:checked ~ .end,
.tic-tac-toe .player-2.second-column:checked ~ .player-2.second-column:checked ~ .player-2.second-column:checked ~ .end,
.tic-tac-toe .player-2.third-column:checked ~ .player-2.third-column:checked ~ .player-2.third-column:checked ~ .end,
.tic-tac-toe .player-2.first-row:checked ~ .player-2.first-row:checked ~ .player-2.first-row:checked ~ .end,
.tic-tac-toe .player-2.second-row:checked ~ .player-2.second-row:checked ~ .player-2.second-row:checked ~ .end,
.tic-tac-toe .player-2.third-row:checked ~ .player-2.third-row:checked ~ .player-2.third-row:checked ~ .end,
.tic-tac-toe .player-2.first-diagonal:checked ~ .player-2.first-diagonal:checked ~ .player-2.first-diagonal:checked ~ .end,
.tic-tac-toe .player-2.second-diagonal:checked ~ .player-2.second-diagonal:checked ~ .player-2.second-diagonal:checked ~ .end {
  display: block;
}
.tic-tac-toe .player-2.first-column:checked ~ .player-2.first-column:checked ~ .player-2.first-column:checked ~ .end h3:before,
.tic-tac-toe .player-2.second-column:checked ~ .player-2.second-column:checked ~ .player-2.second-column:checked ~ .end h3:before,
.tic-tac-toe .player-2.third-column:checked ~ .player-2.third-column:checked ~ .player-2.third-column:checked ~ .end h3:before,
.tic-tac-toe .player-2.first-row:checked ~ .player-2.first-row:checked ~ .player-2.first-row:checked ~ .end h3:before,
.tic-tac-toe .player-2.second-row:checked ~ .player-2.second-row:checked ~ .player-2.second-row:checked ~ .end h3:before,
.tic-tac-toe .player-2.third-row:checked ~ .player-2.third-row:checked ~ .player-2.third-row:checked ~ .end h3:before,
.tic-tac-toe .player-2.first-diagonal:checked ~ .player-2.first-diagonal:checked ~ .player-2.first-diagonal:checked ~ .end h3:before,
.tic-tac-toe .player-2.second-diagonal:checked ~ .player-2.second-diagonal:checked ~ .player-2.second-diagonal:checked ~ .end h3:before {
  content: "Player 2 wins!" !important;
}
.tic-tac-toe label {
  background-color: #78bec5;
  border-radius: 14px;
  cursor: pointer;
  color: #fff;
  display: none;
  height: 90px;
  margin: 5px;
  position: absolute;
  width: 90px;
  -moz-transition: background-color 0.3s;
  -o-transition: background-color 0.3s;
  -webkit-transition: background-color 0.3s;
  transition: background-color 0.3s;
}
@media (min-width: 450px) {
  .tic-tac-toe label {
    height: 140px;
    width: 140px;
  }
}
.tic-tac-toe label:hover {
  background-color: #3d4250;
}
.tic-tac-toe label:hover:after {
  opacity: .4;
}
.tic-tac-toe label:after {
  left: 0;
  font-family: "FontAwesome";
  font-size: 45px;
  margin-top: -22.5px;
  opacity: 0;
  position: absolute;
  text-align: center;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
  top: 50%;
  width: 100%;
}
@media (min-width: 450px) {
  .tic-tac-toe label:after {
    font-size: 70px;
    margin-top: -35px;
  }
}
.tic-tac-toe .end {
  background: rgba(255, 255, 255, 0.8);
  bottom: 5px;
  color: #3d4250;
  display: none;
  left: 5px;
  padding-top: 55px;
  position: absolute;
  right: 5px;
  top: 5px;
  text-align: center;
  z-index: 11;
}
@media (min-width: 450px) {
  .tic-tac-toe .end {
    padding-top: 110px;
  }
}
.tic-tac-toe .end h3 {
  font-size: 30px;
  font-weight: 300;
}
@media (min-width: 450px) {
  .tic-tac-toe .end h3 {
    font-size: 40px;
  }
}
.tic-tac-toe .end a {
  background-color: #3d4250;
  border-radius: 4px;
  color: #fff;
  padding: 14px 45px;
  text-decoration: none;
  -moz-transition: background-color 0.2s;
  -o-transition: background-color 0.2s;
  -webkit-transition: background-color 0.2s;
  transition: background-color 0.2s;
}
.tic-tac-toe .end a:hover {
  background-color: #262934;
  cursor: pointer;

以上就是纯CSS3实现的井字棋游戏的详细内容,更多关于CSS3 井字棋游戏的资料请关注三水点靠木其它相关文章!

HTML / CSS 相关文章推荐
网页布局中CSS样式无效的十个重要原因详解
Aug 10 HTML / CSS
css3类选择器之结合元素选择器和多类选择器用法
Mar 09 HTML / CSS
CSS3实现彩色进度条动画的示例
Oct 29 HTML / CSS
使用Canvas操作像素的方法
Jun 14 HTML / CSS
用HTML5实现手机摇一摇的功能的教程
Oct 30 HTML / CSS
详解HTML5中ol标签的用法
Sep 08 HTML / CSS
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
Sep 19 HTML / CSS
HTML5中的网络存储实现方式
Apr 28 HTML / CSS
AmazeUI 点击元素显示全屏的实现
Aug 25 HTML / CSS
如何利用 CSS Overview 面板重构优化你的网站
Oct 24 HTML / CSS
CSS实现单选折叠菜单功能
Nov 01 HTML / CSS
纯CSS如何禁止用户复制网页的内容
Nov 01 HTML / CSS
HTML+CSS3+JS 实现的下拉菜单
Nov 25 #HTML / CSS
CSS3 实现倒计时效果
Nov 25 #HTML / CSS
CSS3贝塞尔曲线示例:创建链接悬停动画效果
Nov 19 #HTML / CSS
CSS3实现菜单悬停效果
Nov 17 #HTML / CSS
详解CSS3:overflow属性
Nov 17 #HTML / CSS
详解css3中的伪类before和after常见用法
Nov 17 #HTML / CSS
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
Nov 17 #HTML / CSS
You might like
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
Yii调试SQL的常用方法
2014/07/09 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
javascript之querySelector和querySelectorAll使用介绍
2011/12/20 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
详解JS数值Number类型
2018/02/07 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
Python中的tuple元组详细介绍
2015/02/02 Python
python对html代码进行escape编码的方法
2015/05/04 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
使用python turtle画高达
2020/01/19 Python
OpenCV Python实现拼图小游戏
2020/03/23 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
COS美国官网:知名服装品牌
2019/04/08 全球购物
经销商培训邀请函
2014/01/21 职场文书
竞聘书格式及范文
2014/03/31 职场文书
初中英语演讲稿
2014/04/29 职场文书
十周年庆典策划方案
2014/06/03 职场文书
降价通知函
2015/04/23 职场文书
春节晚会开场白
2015/05/29 职场文书