<code> vs <pre> vs <samp> en ligne et de bloquer les extraits de code
Mon site va avoir quelques de code en ligne ("lors de l'utilisation de la foo()
fonction...") et de bloquer certains extraits. Ceux-ci tendent à être XML, et d'avoir de très longues lignes que je préfère le navigateur de retour à la ligne (c'est à dire, je ne veux pas utiliser <pre>
). J'aimerais aussi mettre les CSS de mise en forme sur le bloc extraits.
Il semble que je ne peux pas utiliser <code>
pour les deux, parce que si j'ai mis le CSS attributs de bloc sur elle (avec display: block;
), il va se casser la ligne des extraits.
Je suis curieux de savoir ce que les gens font. Utilisation <code>
pour les blocs, et <samp>
en ligne? Utilisation <code><blockquote>
ou quelque chose de similaire?
J'aimerais garder le HTML aussi simple que possible, en évitant les classes, comme d'autres utilisateurs, de leur maintien.
- L'utilisation de Google Chrome et d'inspecter Rick Strahl blog: weblog.west-wind.com/posts/2016/May/23/... ensuite utiliser sa feuille de style attributs. Ses extraits de code sont très propre et facile à copier/lire.
Vous devez vous connecter pour publier un commentaire.
Utilisation
<code>
de code en ligne qui peut s'enrouler et<pre><code>
pour le bloc de code qui ne doit pas envelopper.<samp>
est pour l'échantillon sortie, je voudrais donc éviter de l'utiliser pour représenter un exemple de code (que le lecteur est à entrée). C'est ce Débordement de Pile n'.(Encore mieux, si vous voulez facile à entretenir, permettre aux utilisateurs de modifier les statuts comme Markdown, alors qu'ils n'ont pas à se rappeler d'utiliser
<pre><code>
.)HTML5 est d'accord avec cette en “le
avant
de l'élément”:<code>
tag, mais nous avions décidé de ne jamais écrire une seule ligne? Ou, je suppose, parce qu'ils n'ont pas envie d'avoir deux balises, un bloc et un inline? Encore... quel est le problème avec le fait de faire<code>
au niveau du bloc avec CSS? Je pensais que nous étions censés écrire "sémantique" HTML.<code>
est bon et sémantique, mais<pre>
pas tellement.<code>
au niveau des blocs CSS est unsemantic. De cette façon, recommandé en HTML5.<pre>
est-il modifie les espaces de traitement ainsi: tous les espaces sont préservés, et l'emballage est éteint. Sauf si il y a un moyen pour changer cela?white-space: normal;
Bien que je ne vois pas pourquoi vous voulez faire cela pour le code. Aussi cette<pre><code>
chose est stupide, le<pre>
balise est définie très clairement dans les normes "code informatique" (et d'autres choses), comme mentionné par @jleedev. Est-ce parce que vous pensez que<code>
est un meilleur nom? désolé de ne pas faire plus de sémantique. Il y a un cas similaire avec le tag<address>
, il n'a pas vraiment le son comme "auteur", mais la norme dit qu'est ce que c'est, c'est.<code>
a un plus grand espace de ligne de<pre>
et CSS awhite-space: pre;
qui simule<pre>
remplacement<pre><code>
Quelque chose que j'ai complètement raté: la non-emballage comportement de
<pre>
peut être contrôlé à l'aide des CSS. Donc, cela donne le résultat exact que je cherchais:CSS:
HTML:
http://jsfiddle.net/9mCN7/
Personnellement j'utiliserais
<code>
parce que c'est le plus sémantiquement correct. Alors pour différencier entre inline et le bloc de code que j'avais ajouter une classe, soit:pour le code en ligne ou:
pour bloc de code. Selon ce qui est moins courant.
<code>
bloc sans classe pour la plupart des cas d'utilisation. Alors tous ceux qui veulent faire les chose rare seulement besoin d'ajouter de la classe. Faire d'une autre manière sera toujours en demandant à l'utilisateur de type supplémentaire. De cette façon, l'utilisateur peut penser que l'ajout d'un tag spécial plutôt que d'utiliser une structure très différente.Afficher le code HTML, est-à -, à l'aide de l' (obsolète)
<xmp>
tag:HTML:
C'est très triste cette balise a été abandonné, mais il ne fonctionne toujours sur les navigateurs, c'est un bad-ass de la balise. pas besoin d'échapper à quelque chose à l'intérieur. Quelle joie!
<textarea readonly>
qui effectue le même travail est en cours, et a beaucoup plus de contrôle si vous le souhaitez.<xmp>
n', ou de toute autreblock
élément n'.. je ne le recommande pas comme une vraie solution, seulement en tant que théorique.Normal inline
<code>
utilisation:et pour chaque et chaque endroit où bloqués
<code>
est nécessaire d'utiliserSinon, définir un
<codenza>
balise pour briser doublure bloc<code>
(pas de classes)Test:
(NB: ce qui suit est une scURIple utilisant un
data:
URI de protocole ou de régime, donc le%0A
nl codes de format sont essentiel dans la préservation de tel lorsqu'il est coupé et collé dans la barre d'URL pour les tests, doncview-source:
(ctrl-U) semble bon précéder chaque ligne ci-dessous avec%0A
)Envisager TextArea
Les gens à trouver via Google et la recherche d'une meilleure façon de gérer l'affichage de leurs fragments devraient aussi envisager de
<textarea>
qui donne beaucoup de contrôle sur la largeur/hauteur, le défilement etc. Notant que @vsync mentionné la balise obsolète<xmp>
, je trouve<textarea readonly>
est un excellent substitut pour l'affichage HTML sans avoir besoin d'échapper à quelque chose à l'intérieur (sauf si</textarea>
peut apparaître à l'intérieur).Par exemple, d'afficher sur une seule ligne avec contrôle de la ligne d'emballage, pensez
<textarea rows=1 cols=100 readonly>
votre code html ou etc avec tous les caractères, y compris les onglets et les CrLf</textarea>
.HTML:
De comparer tous...
HTML:
Envisager Prism.js: https://prismjs.com/#examples
Il fait
<pre><code>
travail et attrayante.