Ich veröffentliche Python-Code auf einer Website (das ist CMS). Ich habe ein Python-Skript, das jedes Python-Skript liest und ein syntax-farbiges HTML daraus macht. Dann kopiere ich diesen HTML-Code und füge ihn in das CMS-Bearbeitungsfenster ein.
Das Problem ist, dass mein Python-Syntax-Hervorhebungsskript <pre>
tag verwendet, um Tabulatoren / Leerzeichen zu speichern, die in Python sehr wichtig sind. Das CMS entfernt jedoch aus unklaren Gründen das <pre>
Tag. Admin hat mir gesagt , dass ich verwenden sollte <div>
statt <pre>
. Könnten Sie mir beim Stylen von helfen <div>
, um die Formatierung des weißen Raums beizubehalten?
Antworten:
Das können Sie mit der CSS-
white-space
Regel machen:Durch die in dieser Regel enthaltenen Schriftarten erhält jedes Zeichen die gleiche Breite, die für Text in einem
<pre>
Tag üblich ist.Denken Sie daran, dass sich alle Ihre
<div>
Tags auf diese Weise verhalten. Im Idealfall weisen Sie diesen<div>
Tags eine Klasse zu, die sich nur auf die Tags auswirkt, die Sie imitieren möchten<pre>
. Etwas wie:Oder, noch besser, verwenden Sie das
<code>
Tag, wenn es von Ihrem CMS nicht entfernt wird. Es verhält sich wie das<pre>
Tag, ist jedoch semantisch korrekt für die Anzeige von Code.quelle
<code>
und Semantik. Beachten Sie, dass<code>
Whitespace standardmäßig umgebrochen wird, sodass Sie es auch zuweisen müssenwhite-space:nowrap
. Ist auch<pre>
ein Blockelement, in dem<code>
inline steht; so zu imitieren<pre>
,display:block
sollte gegeben werden.Um ein
DIV
wie ein zu formatierenPRE
, benötigen Sie einwhite-space: pre;
für dasDIV
. Außerdem sollten Sie eine Monospace-Schriftart verwenden, wie in der ersten Antwort angegeben.Die Lösung
white-space: nowrap;
ist nicht richtig, da keine Registerkarten angezeigt werden und trotzdem mehrere Leerzeichen ausgeblendet werden (@John Conde).nowrap
: Durch die Angabe von nowrap wird sichergestellt, dass Whitespace-Sequenzen in ein einzelnes Leerzeichen zerfallen, Zeilenumbrüche jedoch unterdrückt werden.pre
: Durch die Angabe von pre wird sichergestellt, dass Whitespace-Sequenzen nicht zusammenbrechen. Zeilen werden nur bei neuen Zeilen im Markup (oder beim Auftreten von "\ a" im generierten Inhalt) unterbrochen.von: http://reference.sitepoint.com/css/white-space
quelle
white-space
solltepre
und nichtnowrap
. Ich habe meine Antwort korrigiert.