es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Qué es y cómo puedo eliminar/reducir el espacio en blanco antes y después del código preformateado?

Aquí hay un HTML que muestra algo de código entre dos líneas de texto cortas

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width">
    <title>Uffa</title>
    <style type="text/css" media="screen">
pre {
  margin: 0;
}
    </style>
  </head>
  <body>
    línea antes
    <pre><code>
some
  code
    here
    </code></pre>
    línea después
  </body>
</html>

Cuando coloco el mouse sobre él mediante las herramientas de desarrollo, veo esto:

enlace a imagen

y no entiendo de dónde viene el espaciado vertical antes y después del fragmento de código.

A continuación se muestra el fragmento en vivo, en el que, sin embargo, solo se reproduce el espacio superior de mi ejemplo.

<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-css -->
pre {
  margin: 0;
}
<!-- language: lang-html -->
line before
<pre><code>
some
  code
    here
</code></pre>
line after
<!-- end snippet -->

He simplificado mucho mi caso de uso para hacer esta pregunta. Y después de la simplificación, sigo viendo el mismo problema por el que estaba preocupado.

Sin embargo, como alguien sugirió usar <pre> sin anidar <code>` en él, probablemente debería aclarar que, en el caso de uso original, estoy utilizando [highlight.js](https://highlightjs.org/usage/), que prescribe escribir el código entre `

` y `</code></pre>.
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El espaciado vertical antes y después del fragmento de código es causado por el margen predeterminado aplicado al elemento <pre>, que es un elemento de bloque. Para eliminar los márgenes superior e inferior, puedes aplicar el estilo CSS margin: 0; al elemento <pre> de la siguiente manera:

    pre {
      margin: 0;
    }
    

    Alternativamente, también puedes aplicar el estilo directamente a la etiqueta de apertura del elemento <pre>:

    <pre style="margin: 0;">
    

    En el caso de uso original, donde <code> está anidado dentro de <pre> para utilizarlo con highlight.js, aún puedes aplicar el mismo estilo CSS para eliminar los márgenes superior e inferior:

    pre code {
      margin: 0;
    }
    

    Esto eliminará el margen para cualquier elemento `` que sea descendiente de un elemento `

    `.

Comments are closed.