Meine Site wird Inline-Code ("bei Verwendung der foo()
Funktion ...") und einige Block-Snippets enthalten. Diese sind in der Regel XML und haben sehr lange Zeilen, die der Browser lieber umschließt (dh ich möchte sie nicht verwenden <pre>
). Ich möchte auch die Blockausschnitte mit CSS-Formatierung versehen.
Es scheint, dass ich nicht <code>
für beide verwenden kann, denn wenn ich CSS-Blockattribute (mit display: block;
) darauf setze , werden die Inline-Snippets beschädigt.
Ich bin gespannt, was die Leute machen. Verwenden Sie <code>
für Blöcke und <samp>
für Inline? Verwenden <code><blockquote>
oder ähnliches?
Ich möchte das eigentliche HTML so einfach wie möglich halten und Klassen vermeiden, da andere Benutzer es beibehalten werden.
html
semantic-markup
Steve Bennett
quelle
quelle
<pre>
und sein Verhalten kann als das Wort " genau"Antworten:
Verwenden Sie diese Option
<code>
für Inline-Code, der umbrochen werden kann, und<pre><code>
für Blockcode, der nicht umbrochen werden darf.<samp>
ist für den Probenausgang , so dass ich es vermeiden , würde repräsentieren Beispielcode (die der Leser wird mit Eingang ). Dies ist, was Stack Overflow tut.(Besser noch, wenn Sie einfach zu warten möchten, lassen Sie die Benutzer die Artikel als Markdown bearbeiten, dann müssen sie nicht daran denken, sie zu verwenden
<pre><code>
.)HTML5 stimmt dem in „dem
pre
Element“ zu :quelle
<code>
Tags voraus , entschieden aber, dass wir immer nur eine Zeile schreiben würden? Oder ich denke, weil sie nicht zwei Tags haben wollten, einen Block und einen Inline? Trotzdem ... was ist falsch daran,<code>
mit CSS Block-Level zu machen? Ich dachte, wir sollten "semantisches" HTML schreiben.<code>
ist gut und semantisch, aber<pre>
nicht so sehr.<code>
Blockebene mit CSS ist unsemantic. Dieser Weg wird in HTML5 empfohlen .<pre>
ist, dass auch die Whitespace-Verarbeitung geändert wird: Alle Leerzeichen bleiben erhalten und das Umbrechen ist deaktiviert. Es sei denn, es gibt eine Möglichkeit, dies auszuschalten?white-space: normal;
Obwohl ich nicht verstehe, warum Sie dies für Code tun würden. Auch diese<pre><code>
Sache ist dumm, das<pre>
Tag ist in den Standards sehr klar als "Computercode" (und andere Dinge) definiert, wie von @jleedev erwähnt. Liegt es daran, dass Sie denken, es<code>
sei ein besserer Name? Entschuldigung, das macht es nicht semantischer. Es gibt einen ähnlichen Fall mit dem Tag<address>
, es klingt nicht wirklich nach "Autor", aber der Standard sagt, dass es das ist, wofür es ist, also ist es.Etwas, das ich völlig vermisst habe: Das Non-Wrapping-Verhalten von
<pre>
kann mit CSS gesteuert werden. Das ergibt also genau das Ergebnis, nach dem ich gesucht habe:http://jsfiddle.net/9mCN7/
quelle
Persönlich würde ich verwenden,
<code>
weil das semantisch am korrektesten ist. Um dann zwischen Inline- und Blockcode zu unterscheiden, würde ich entweder eine Klasse hinzufügen:für Inline-Code oder:
für Codeblock. Je nachdem was weniger häufig ist.
quelle
<code>
ohne Klasse für den häufigsten Anwendungsfall zu definieren . Dann muss jeder, der das Ungewöhnliche tun möchte, nur die Klasse hinzufügen. Wenn Sie dies auf andere Weise tun, wird der Benutzer weiterhin aufgefordert, zusätzliche Daten einzugeben. Auf diese Weise kann sich der Benutzer vorstellen, ein spezielles Tag hinzuzufügen, anstatt eine völlig andere Struktur zu verwenden.Für den normalen Inline-
<code>
Gebrauch:und für jeden Ort, an dem blockiert
<code>
werden mussAlternativ können Sie ein
<codenza>
Tag für den Break-Lining-Block definieren<code>
(keine Klassen).Prüfung: (NB: Es folgt eine scURIple eine Verwendung
data:
URI - Protokoll / Schema, deshalb werden die%0A
nl - Format - Codes sind wesentlich bei der Erhaltung solcher , wenn sie geschnitten und in die URL - Leiste eingefügt zum Testen - soview-source:
( ctrl- U) sieht gut vorangestellt jede Zeile im folgenden%0A
)quelle
Zeigen Sie HTML - Code, wie sie ist , die (veraltet) mit dem
<xmp>
Tag:Es ist sehr traurig, dass dieses Tag veraltet ist, aber es funktioniert immer noch in Browsern, es ist ein schlechtes Tag. keine Notwendigkeit, irgendetwas darin zu entkommen. Was für eine Freude!
Zeigen Sie HTML - Code, wie sie ist , die mit dem
<textarea>
Tag:quelle
<textarea readonly>
derselben das Gleiche tut, aktuell ist und viel mehr Kontrolle hat, wenn Sie dies wünschen.<xmp>
es oder irgendein anderesblock
Element tut. Ich würde es nicht als echte Lösung empfehlen, sondern nur als theoretische.<blink>
ist ein Beispiel -, würde ich mir Sorgen machen, diese für alles zu verwenden, was zukunftssicher sein muss.Betrachten Sie TextArea
Leute, die dies über Google finden und nach einer besseren Möglichkeit suchen, die Anzeige ihrer Snippets zu verwalten, sollten auch überlegen
<textarea>
, was eine große Kontrolle über Breite / Höhe, Scrollen usw.<xmp>
bietet. Ich finde, dass @vsync das veraltete Tag erwähnt ,<textarea readonly>
ein ausgezeichneter Ersatz ist zum Anzeigen von HTML, ohne dass etwas darin maskiert werden muss (außer wo</textarea>
es darin erscheinen könnte).Um beispielsweise eine einzelne Zeile mit kontrolliertem Zeilenumbruch anzuzeigen, berücksichtigen
<textarea rows=1 cols=100 readonly>
Sie HTML oder usw. mit beliebigen Zeichen, einschließlich Tabulatoren und CrLfs</textarea>
.Um alle zu vergleichen ...
quelle
Betrachten Sie Prism.js: https://prismjs.com/#examples
Es macht
<pre><code>
Arbeit und ist attraktiv.quelle