Je publie du code python sur un site Web (c'est-à-dire CMS). J'ai un script python qui lit n'importe quel script python et en fait un HTML de couleur syntaxique. Ensuite, je copie / colle ce code HTML dans la fenêtre d'édition du CMS.
Le problème est que mon script de mise en évidence de la syntaxe python utilise une <pre>
balise pour garder les tabulations / espaces qui sont assez importants en python. Le CMS, cependant, pour des raisons peu claires, supprime la <pre>
balise. L'administrateur m'a dit que je devrais utiliser à la <div>
place de <pre>
. Pourriez-vous m'aider à créer un style <div>
pour conserver la mise en forme dans l'espace?
Réponses:
Vous pouvez le faire avec la
white-space
règle CSS :Les polices incluses dans cette règle donnent à chaque caractère la même largeur qui est la mise en forme courante du texte dans une
<pre>
balise.Gardez à l'esprit que tous vos
<div>
tags se comporteront ainsi. Idéalement, vous attribuerez à ces<div>
balises une classe pour n'affecter que celles que vous souhaitez imiter<pre>
. Quelque chose comme:Ou, mieux encore, utilisez la
<code>
balise si elle n'est pas supprimée par votre CMS. Il agit comme la<pre>
balise mais est sémantiquement correct pour afficher le code.la source
<code>
et la sémantique. Notez que les<code>
espaces sont encapsulés par défaut, vous devez donc également les affecterwhite-space:nowrap
. Est également<pre>
un élément de bloc où<code>
est en ligne; donc pour imiter<pre>
,display:block
devrait être donné.Pour formater un
DIV
comme unPRE
, vous avez besoin d'unwhite-space: pre;
pour leDIV
. De plus, vous devez utiliser une police à espacement fixe, comme indiqué dans la première réponse.La solution
white-space: nowrap;
n'est pas correcte car elle n'affiche PAS les onglets et réduit toujours plusieurs espaces (@John Conde).nowrap
: La spécification de nowrap garantit que les séquences d'espaces se réduiront en un seul caractère d'espace, mais les sauts de ligne seront supprimés.pre
: La spécification de pré garantit que les séquences d'espaces ne s'effondreront pas. Les lignes ne sont rompues qu'à de nouvelles lignes dans le balisage (ou aux occurrences de "\ a" dans le contenu généré).à partir de: http://reference.sitepoint.com/css/white-space
la source
white-space
devrait êtrepre
et nonnowrap
. J'ai corrigé ma réponse.