Mi sitio tendrá un código en línea ("cuando use la foo()
función ...") y algunos fragmentos de bloque. Estos tienden a ser XML y tienen líneas muy largas que prefiero que el navegador ajuste (es decir, no quiero usar<pre>
). También me gustaría poner formato CSS en los fragmentos de bloque.
Parece que no puedo usar <code>
para ambos, porque si pongo atributos de bloque CSS en él (condisplay: block;
), se romperán los fragmentos en línea.
Tengo curiosidad por lo que hace la gente. Usar <code>
para bloques y<samp>
en línea? Utilizar<code><blockquote>
o algo similar?
Me gustaría mantener el HTML real lo más simple posible, evitando clases, ya que otros usuarios lo mantendrán.
html
semantic-markup
Steve Bennett
fuente
fuente
<pre>
y su comportamiento se puede tener en cuenta como la palabra " precisamente"Respuestas:
Úselo
<code>
para el código en línea que puede ajustarse y<pre><code>
para el código de bloque que no debe ajustarse.<samp>
es para salida de muestra , por lo que evitaría usarlo para representar el código de muestra (que el lector debe ingresar ). Esto es lo que hace Stack Overflow.(Mejor aún, si desea un mantenimiento fácil, permita que los usuarios editen los artículos como Markdown, entonces no tienen que acordarse de usarlos
<pre><code>
).HTML5 está de acuerdo con esto en "el
pre
elemento" :fuente
<code>
etiqueta, pero decidieron que solo escribiríamos una línea. O supongo, porque no querían tener dos etiquetas, una en bloque y otra en línea. Aún así ... ¿qué hay de malo en hacer<code>
un nivel de bloque con CSS? Pensé que se suponía que debíamos escribir HTML "semántico".<code>
es bueno y semántico, pero<pre>
no tanto.<code>
bloque de nivel con CSS no es semántico. De esta manera se recomienda en HTML5 .<pre>
es que también modifica el procesamiento de espacios en blanco: se conservan todos los espacios y se desactiva el ajuste. ¿A menos que haya una manera de apagar esto?white-space: normal;
Aunque no entiendo por qué harías esto para el código. Además, esto<pre><code>
es estúpido, la<pre>
etiqueta se define muy claramente en los estándares como "código de computadora" (y otras cosas) como lo menciona @jleedev. ¿Es porque crees que<code>
es un nombre mejor? lo siento, eso no lo hace más semántico. Hay un caso similar con la etiqueta<address>
, realmente no suena como "autor", pero el estándar dice que para eso es, así que es.Algo que me perdí por completo: el comportamiento de no envoltura
<pre>
se puede controlar con CSS. Entonces esto da el resultado exacto que estaba buscando:http://jsfiddle.net/9mCN7/
fuente
Personalmente lo usaría
<code>
porque es lo más semánticamente correcto. Luego, para diferenciar entre el código en línea y el bloque, agregaría una clase:para código en línea o:
para el bloque de código. Dependiendo de cuál es menos común.
fuente
<code>
bloque predeterminado sin una clase para el caso de uso más común. Entonces, cualquiera que quiera hacer lo poco común solo necesita agregar la clase. Al hacerlo de otra manera, aún se le pedirá al usuario que escriba extra. De esta manera, el usuario puede pensar que agrega una etiqueta especial en lugar de usar una estructura completamente diferente.Para
<code>
uso normal en línea :y para todos y cada uno de los lugares donde
<code>
se necesita bloquearAlternativamente, defina una
<codenza>
etiqueta para el bloque de revestimiento de ruptura<code>
(sin clases)Pruebas: (NB: el siguiente es un SCURIple que utiliza un
data:
protocolo / esquema URI, por lo tanto, los%0A
códigos de formato nl son esenciales para preservarlos cuando se cortan y pegan en la barra de URL para la prueba, por lo queview-source:
( ctrl- U) se ve bien antes de cada línea a continuación%0A
)fuente
Muestra el código HTML, tal cual , usando la
<xmp>
etiqueta (obsoleta) :Es muy triste que esta etiqueta haya quedado en desuso, pero aún funciona en los navegadores, es una etiqueta mala. No es necesario escapar de nada dentro de él. ¡Que alegria!
Mostrar código HTML, tal cual , con la
<textarea>
etiqueta:fuente
<textarea readonly>
lo mismo hace, es actual y tiene mucho más control si lo desea.<xmp>
hace, o cualquier otroblock
elemento. No lo recomendaría como una solución real, solo como una teoría.<blink>
es un ejemplo, estaría ansioso por usar esto para cualquier cosa que necesite ser preparada para el futuro.Considere TextArea
La gente para encontrar esto a través de Google y en busca de una mejor manera de administrar la visualización de sus fragmentos también debe considerar
<textarea>
lo que da un gran control sobre la anchura / altura, desplazamiento, etc. Observando que @vsync menciona la etiqueta en desuso<xmp>
, que encuentran<textarea readonly>
es un excelente sustituto para mostrar HTML sin la necesidad de escapar de nada dentro de él (excepto dónde</textarea>
podría aparecer dentro).Por ejemplo, para mostrar una sola línea con
<textarea rows=1 cols=100 readonly>
ajuste de línea controlado, considere su html o etc. con cualquier carácter que incluya pestañas y CrLf's</textarea>
.Para comparar todo ...
fuente
Considere Prism.js: https://prismjs.com/#examples
Hace
<pre><code>
trabajo y es atractivo.fuente