¿Cómo desplazarse a un elemento en particular u omitir el contenido en CSS?

A veces necesitamos que el usuario haga clic en un botón o enlace y lo lleve a un elemento presente en la misma página HTML. Además, esto debe llevar al usuario al elemento sin ninguna recarga. Muchas veces, los usuarios tienden a saltar al contenido principal, como en un sitio web de juegos. Es posible que quieran saltarse las instrucciones y quieran jugar el juego directamente. Entonces, básicamente, queremos desplazarnos a un elemento en particular o saltar al contenido.

En este artículo, aprenderemos cómo desplazarse a un elemento en particular o saltar al contenido solo en HTML simple y CSS .

Ejemplo 1:

HTML

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width,
    initial-scale=1.0" />
    <title>Scroll</title>
    <style>
        section:target {
            border: 2px solid blue;
        }
 
        .links-container {
            display: flex;
            justify-content: space-between;
        }
    </style>
</head>
 
<body>
    <div class="links-container">
 
        <!-- The href attribute of anchor
            tags point to the section IDs -->
        <!-- Note that href has to point to IDs
            and not to classes as IDs are
            unique in HTML-->
        <a href="#id1">Go to Section 1</a>
        <a href="#id2">Go to Section 2</a>
        <a href="#id3">Go to Section 3</a>
        <a href="#id4">Go to Section 4</a>
    </div>
 
    <!-- We need to specify unique IDs for
        each section/div/element we want
        the user to scroll to -->
 
    <section id="id1">
        <h1>Section 1</h1>
    </section>
    <section id="id2">
        <h1>Section 2</h1>
    </section>
    <section id="id3">
        <h1>Section 3</h1>
    </section>
    <section id="id4">
        <h1>Section 4</h1>
    </section>
</body>
 
</html>

Salida: Nuestro HTML se verá así en una ventana del navegador.

Ejemplo 2: Avancemos ahora y agreguemos algunos estilos para que podamos colocar las secciones lejos unas de otras.

HTML

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0" />
 
    <style>
 
        /* Some basic styling for
        testing our functionality */
        .links-container {
            display: flex;
            justify-content: space-between;
        }
 
        .sections {
            display: flex;
            flex-direction: column;
            place-items: center;
            gap: 100rem;
        }
    </style>
</head>
 
<body>
    <div class="links-container">
 
        <!-- The href attribute of anchor
            tags point to the section IDs -->
        <a href="#id1">Go to Section 1</a>
        <a href="#id2">Go to Section 2</a>
        <a href="#id3">Go to Section 3</a>
        <a href="#id4">Go to Section 4</a>
    </div>
 
    <!-- We need to specify IDs for each
        section/div/element we want the
        user to scroll to -->
    <div class="sections">
        <section id="id1">
            <h1>Section 1</h1>
        </section>
        <section id="id2">
            <h1>Section 2</h1>
        </section>
        <section id="id3">
            <h1>Section 3</h1>
        </section>
        <section id="id4">
            <h1>Section 4</h1>
        </section>
    </div>
</body>
 
</html>

Salida: ahora, cuando abrimos nuestro archivo HTML en un navegador, podemos ver la funcionalidad funcionando cuando hacemos clic en cualquiera de los enlaces, es decir, Ir a la Sección 1, Ir a la Sección 2, etc.

Aunque nos estamos saltando contenido, el comportamiento aún no es fluido. Puede observar que cuando hacemos clic en los enlaces, vamos directamente a la sección deseada. Pero también podemos hacer que se desplace suavemente a la sección deseada.

Para hacer esto, podemos usar la siguiente línea en nuestro código:

scroll-behavior: smooth;

Hay otros comportamientos de desplazamiento también definidos en HTML, puede ir aquí para obtener detalles sobre ellos. Aquí, usaremos un comportamiento suave . Aquí, usaremos el desplazamiento a la sección particular a la que queremos ir, simplemente haciendo clic una vez en el enlace.

El código final se verá así: 
Ejemplo 3:

HTML

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0" />
    <title>Scroll</title>
 
    <style>
        html {
 
            /* This property makes the html
            page to scroll smoothly */
            /* If you want to directly move to the
            section without scrolling, remove
            this scroll-behavior property*/
            scroll-behavior: smooth;
        }
 
        /* Some basic styling for testing
        our functionality */
        .links-container {
            display: flex;
            justify-content: space-between;
        }
 
        .sections {
            display: flex;
            flex-direction: column;
            place-items: center;
            gap: 100rem;
        }
    </style>
</head>
 
<body>
    <div class="links-container">
 
        <!-- The href attribute of anchor
            tags point to the section IDs -->
        <a href="#id1">Go to Section 1</a>
        <a href="#id2">Go to Section 2</a>
        <a href="#id3">Go to Section 3</a>
        <a href="#id4">Go to Section 4</a>
    </div>
 
    <!-- We need to specify IDs for each
        section/div/element we want the
        user to scroll to -->
    <div class="sections">
        <section id="id1">
            <h1>Section 1</h1>
        </section>
        <section id="id2">
            <h1>Section 2</h1>
        </section>
        <section id="id3">
            <h1>Section 3</h1>
        </section>
        <section id="id4">
            <h1>Section 4</h1>
        </section>
    </div>
</body>
 
</html>

Salida: como puede ver en la salida, nos desplazamos suavemente a las secciones y también saltamos los contenidos.

Publicación traducida automáticamente

Artículo escrito por mitulgarg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *