Educación online efectiva

Aprende con expertos de la industria

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

Una creación super básica de un Tablero de Ajedrez formato browser, lo más documentado posible y sencillo de entender:

/* Configuracion Global */
body {
    height: 100vh;
    min-height: 870px;
    font-family: sans-serif;
    color: #c4c8ce;
    background-color: #1e2229;
    margin: 0;
}
body,
header,
footer,
section {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: space-between;
}
header,
footer {
    flex-direction: row;
}
header div,
footer div {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: center;
    padding: 2rem;

}
section {
    display: flex;
    align-content: center;
}

Creamos una pequeña utilidad para reusar en varios sectores:

/* Utilidades */
.bg-black {
    background-color: #0ae98a;
}
.bg-white {
    background-color: #ffffff;
}

Nombre del jugador y puntaje Header y Footer de la interfaz gráfica:

/* Textos de la interfaz */
.player h1,
.score h2 {
    color: #ffffff;
    margin-top: 0;
}
.player p,
.score p {
    margin: 0;
}
.player p span,
.score p span {
    font-weight: 600;
    color: #1e2229;
    padding: 0.1rem 0.2rem;
    margin: 0 5px;
}
.piece{
    font-size: 40px;
}
.piece.black{
    color: #0ae98a;
}
.piece.white{
    color: #c4c8ce;
}


/* Puntaje de la interfaz */
.score ul {
    display: flex;
    justify-content: end;
    margin: 0;
    padding: 0;
    list-style: none;
}
.score li {
    display: inline-block;
    width: 20px;
    margin: 0 1rem;
}
.score li:first-child {
    margin-left: 0;
}
.score li:last-child {
    margin-right: 0;
}
.score .piece{
    font-size: 20px;
}

Creación del tablero, coloración, grillas y posicionamiento en capas, lo más documentado posible y sencillo de entender:

/* Tablero en la interfaz */
.board-wrapper {
    width: 602px;
    border: 2px solid #000000;
    position: relative;
}
.board {
    width: 100%;
    height: 100%;
    position: relative;
}
.board-row {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    grid-template-rows: repeat(1, 1fr);
}
.board-row div,
.board-row div a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
}
.board-row div a{
    width: 100%;
    text-decoration: none;
}
.board-row div a:hover::after{
    content: "";
    width: 100%;
    height: 100%;
    border: 2px solid #ffffff;
    position: absolute;
}
.board-row:nth-child(1n) div:nth-child(1n) {
    background-color: #1e2229;
}
.board-row:nth-child(1n) div:nth-child(2n) {
    background-color: #000000;
}
.board-row:nth-child(2n) div:nth-child(1n) {
    background-color: #000000;
}
.board-row:nth-child(2n) div:nth-child(2n) {
    background-color: #1e2229;
}
.board-row:first-child div:nth-child(1n),
.board-row:nth-child(1n) div:first-child,
.board-row:last-child div:nth-child(1n),
.board-row:nth-child(1n) div:last-child {
    width: 100%;
    height: 58px;
    align-items: center;
    background-color: transparent;
}
.board.pieces{
    position: absolute;
    top: 0;
}
.board.pieces .board-row div {
    background-color: hsl(180deg 100% 50% / 20%);
}
.board.pieces .board-row:nth-child(1n) div:nth-child(1n),
.board.pieces .board-row:nth-child(1n) div:nth-child(2n),
.board.pieces .board-row:nth-child(2n) div:nth-child(1n),
.board.pieces .board-row:nth-child(2n) div:nth-child(2n) {
    background-color: transparent;
}

Y por último el HTML completo con las fichas en formato Símbolo Unicode, para poderse apreciar y cargar mucho más rápido en el navegador:

<!-- Cabezera -->
<header>
    <!-- Datos del primer jugador -->
    <div class="player">
        <h1>Player One</h1>
        <p>Pieces <span class="bg bg-black">Black</span></p>
    </div>
    <!-- Estadísticas del jugador -->
    <div class="score">
        <h2>Score: 000</h2>
        <ul>
            <li class="piece white" title="Black Roock L"></i></li>
            <li class="piece white" title="Black Knight L"></i></li>
        </ul>
    </div>
</header>
<!-- End -->

<!-- Seccion -->
<section>
    <div class="board-wrapper">
        <!-- Tablero de fondo con guia -->
        <div class="board">
            <div class="board-row">
                <div></div>
                <div>a</div>
                <div>b</div>
                <div>c</div>
                <div>d</div>
                <div>e</div>
                <div>f</div>
                <div>g</div>
                <div>h</div>
                <div></div>
            </div>
            <div class="board-row">
                <div>8</div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div>8</div>
            </div>
            <div class="board-row">
                <div>7</div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div>7</div>
            </div>
            <div class="board-row">
                <div>6</div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div>6</div>
            </div>
            <div class="board-row">
                <div>5</div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div>5</div>
            </div>
            <div class="board-row">
                <div>4</div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div>4</div>
            </div>
            <div class="board-row">
                <div>3</div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div>3</div>
            </div>
            <div class="board-row">
                <div>2</div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div>2</div>
            </div>
            <div class="board-row">
                <div>1</div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div>1</div>
            </div>
            <div class="board-row">
                <div></div>
                <div>a</div>
                <div>b</div>
                <div>c</div>
                <div>d</div>
                <div>e</div>
                <div>f</div>
                <div>g</div>
                <div>h</div>
                <div></div>
            </div>
        </div>
        <!-- Tablero absoluto de las piezas -->
        <div class="board pieces">
            <div class="board-row">
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
            </div>
            <div class="board-row">
                <div></div>
                <div><a href="#" class="piece black" title="Black Roock L"></a></div>
                <div><a href="#" class="piece black" title="Black Knight L"></a></div>
                <div><a href="#" class="piece black" title="Black Bishop L"></a></div>
                <div><a href="#" class="piece black" title="Black Queen"></a></div>
                <div><a href="#" class="piece black" title="Black King"></a></div>
                <div><a href="#" class="piece black" title="Black Bishop R"></a></div>
                <div><a href="#" class="piece black" title="Black Knight R"></a></div>
                <div><a href="#" class="piece black" title="Black Rook R"></a></div>
                <div></div>
            </div>
            <div class="board-row">
                <div></div>
                <div><a href="#" class="piece black" title="Black Pawn A"></a></div>
                <div><a href="#" class="piece black" title="Black Pawn B"></a></div>
                <div><a href="#" class="piece black" title="Black Pawn C"></a></div>
                <div><a href="#" class="piece black" title="Black Pawn D"></a></div>
                <div><a href="#" class="piece black" title="Black Pawn E"></a></div>
                <div><a href="#" class="piece black" title="Black Pawn F"></a></div>
                <div><a href="#" class="piece black" title="Black Pawn G"></a></div>
                <div><a href="#" class="piece black" title="Black Pawn H"></a></div>
                <div></div>
            </div>
            <div class="board-row">
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
            </div>
            <div class="board-row">
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
            </div>
            <div class="board-row">
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
            </div>
            <div class="board-row">
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
            </div>
            <div class="board-row pieces-black">
                <div></div>
                <div><a href="#" class="piece white" title="White Pawn A"></a></div>
                <div><a href="#" class="piece white" title="White Pawn B"></a></div>
                <div><a href="#" class="piece white" title="White Pawn C"></a></div>
                <div><a href="#" class="piece white" title="White Pawn D"></a></div>
                <div><a href="#" class="piece white" title="White Pawn E"></a></div>
                <div><a href="#" class="piece white" title="White Pawn F"></a></div>
                <div><a href="#" class="piece white" title="White Pawn G"></a></div>
                <div><a href="#" class="piece white" title="White Pawn H"></a></div>
                <div></div>
            </div>
            <div class="board-row pieces-black">
                <div></div>
                <div><a href="#" class="piece white" title="White Roock L"></a></div>
                <div><a href="#" class="piece white" title="White Knight L"></a></div>
                <div><a href="#" class="piece white" title="White Bishop L"></a></div>
                <div><a href="#" class="piece white" title="White Queen"></a></div>
                <div><a href="#" class="piece white" title="White King"></a></div>
                <div><a href="#" class="piece white" title="White Bishop R"></a></div>
                <div><a href="#" class="piece white" title="White Knight R"></a></div>
                <div><a href="#" class="piece white" title="White Rook R"></a></div>
                <div></div>
            </div>
            <div class="board-row">
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
            </div>
        </div>
    </div>
</section>
<!-- End -->

<!-- Footer -->
<footer>
    <!-- Datos del segundo jugador -->
    <div class="player">
        <h1>Player Two</h1>
        <p>Pieces <span class="bg bg-white">White</span></p>
    </div>
    <!-- Estadísticas del jugador -->
    <div class="score">
        <h2>Score: 000</h2>
        <ul>
            <li class="piece black" title="Black Roock L"></i></li>
            <li class="piece black" title="Black Knight L"></i></li>
        </ul>
    </div>
</footer>
<!-- End -->

Deberia verse de esta manera:

Gracias por su tiempo y espero que les guste, saludos.

Educación online efectiva

Aprende con expertos de la industria

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

0 Comentarios

para escribir tu comentario

Artículos relacionados