2016-08-23 2 views
1

Disons que nous avons même 2 balises d'entrée avec la différence suivante dans le code html:comment empêcher l'affichage des espaces dans le code html

Exemple 1

<input type="text" id="v1" value="value 1"><input type="text" id="v2" value="value 2">

Exemple 2

<input type="text" id="v1" value="value 1">

<input type="text" id="v2" value="value 2">

Ces deux exemples produisent une sortie différente, au moins sur mon PC et mon navigateur Chrome qui est [la version 52.0.2743.116 m (64 bits)]. Il y a une sorte d'espace entre ces deux entrées! Il semble que le navigateur convertisse une nouvelle ligne dans l'espace. Mais même cela n'est pas vrai parce que si vous faites plus d'une nouvelle ligne entre les entrées dans la source cet espace sera toujours juste un espace!

Est-ce que quelqu'un sait pourquoi est-ce le cas ???

Si oui, indiquez le navigateur (et la version) que vous utilisez. Oh, oui, john_h était assez pour rendre le code this au violon

Merci ...

+0

Ma question a été mal interprétée. Ce lien explique mieux ma question. Jetez un oeil à la source de ce lien. http://sasho.emit24.com/crlf_inputs.html – sasho

Répondre

2

Le problème est que l'espace blanc entre les deux entrées est rendu. Tout espace blanc (sauts de ligne, tabulations, espaces) entre les entrées sera rendu en tant qu'espace unique par le navigateur. Pour résoudre ce problème, vous pouvez définir la taille de police à 0 sur un élément parent.

Pour e.g:

<div class="block"> 

<input type="text" id="v1" value="value 1"><input type="text" id="v2"value="value 2"> 
<input type="text" id="v1" value="value 1"> 

<input type="text" id="v2" value="value 2"> 
</div> 

CSS:

.block { 
font-size: 0; 
} 

Cela montrera pas d'espace entre les entrées u ajouter dans l'élément parent que la taille de la police est mis à zéro. J'espère avoir été capable de clarifier vos doutes. Merci.

+0

Salut @Sazz, merci d'avoir éclairci ça pour moi. J'ai mis à jour le code du violon à https://jsfiddle.net/zale/dzxvzfhc/4/ pour refléter votre commentaire ... – sasho

+1

Voici une façon beaucoup plus simple de le faire plutôt que d'utiliser autant de divs et de css. Vérifiez-le. https://jsfiddle.net/dzxvzfhc/5/. – Sazz

+0

Bon, bien ...;) – sasho

0

je crois que lorsque le navigateur le rendu de votre site Web, il ne considère pas le/r/n (ce qui provoque une nouvelle ligne fichier 1) en tant que nouvelle ligne, à la place, il rend le/r/n en tant qu'espace blanc (et vous utilisez <br /> pour traiter une nouvelle ligne). En outre, vous utilisez &nbsp; pour représenter un espace si vous souhaitez créer plus d'un espace.

+0

Il semble que le code qui affiche ma question rende un peu drôle puisque le fichier 1 et le fichier 2 sont en fait identiques. Quoi que vous ayez deviné, il s'agit de convertir/r/n en caractères d'espacement. Ce que je voulais demander, c'est comment empêcher le navigateur de convertir/r/n en espace. Donc, cette question est toujours sans réponse. – sasho

+0

@sasho Il est difficile d'empêcher ce comportement, bien que vous puissiez essayer '<\ r \ n input />' ou l'insérer dans une cellule de table –

2

Ces devrait produire le même regard dans un navigateur, si vous avez un lien vers un violon, vous pouvez l'envoyer au-dessus ou vous pouvez jeter un oeil à ceci: https://jsfiddle.net/john_h/0mz8afyd/1/

Une chose que vous pouvez rencontrer est pas avoir les étiquettes fermées. Par exemple, ceci:

< input type="text" id="v1" value="value 1" > 

< input type="text" id="v2" value="value 2" > 

est différent de celui-ci:

<input type="text" id="v1" value="value 1" /> 

<input type="text" id="v2" value="value 2" /> 

et pas non plus y compris les espaces entre les "<" et "entrée".

Si vous souhaitez que ces deux lignes différentes lignes, il suffit d'ajouter un <br/> après votre première entrée.

<input type="text" id="v1" value="value 1" /> 
<br/> 
<input type="text" id="v2" value="value 2" /> 
+0

Jetez un oeil à une situation réelle ici: http: //sasho.emit24 .com/crlf_inputs.html et voir la source de ce fichier et ensuite vous comprendrez quelle est ma question. – sasho

+0

Jetez un oeil à la façon dont la différence de ligne affecte le look: https://jsfiddle.net/john_h/dzxvzfhc/1/ Ne pas avoir d'espace entre les deux balises d'entrée le crée juste à côté de l'autre. Cela peut être lié au navigateur, mais si vous voulez l'espace, mettez simplement les éléments d'entrée sur des lignes séparées. Si vous ne voulez pas l'espace, mettez-les sur la même ligne. C'est un peu hackish mais ça a marché. –

+0

Non, je ne veux pas de cet espace. J'essaie de m'en débarrasser parce que cela affecte la façon dont j'écris mon code et c'est stupide, n'est-ce pas? Mais croyez-le ou non, il y a une différence au lien de violon que vous avez posté. J'utilise Chrome (version 52.0.2743.116 m (64 bits)). Quel navigateur utilisez-vous? Y at-il un moyen d'attacher une image ici? – sasho