CSS: trop de saut de ligne avant afficher d'un tableau <table>

Fermé
sontns2 Messages postés 4 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 21 septembre 2013 - 19 sept. 2013 à 13:10
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 - 21 sept. 2013 à 11:52
Voici mon problème de saut de ligne:
code dans un fichier php(version 5.3.5):

<strong>Testtable ***********</strong>
<table summary="ligne 1 : les navigateurs, ligne 2 : les pourcentages">
<caption>Top 5 des navigateurs utilisés sur CSS débutants en décembre 2007<caption>
<tr>
<th>Firefox</th>
<th>Explorer</th>
<th>Mozilla</th>
<th>Safari</th>
<th>Opéra</th>
</tr>
<tr>
<td>49,6 %</td>
<td>39,4 %</td>
<td>5,0 %</td>
<td>2,4 %</td>
<td>0,9 %</td>
</tr>
</table>
et voici l'affichage:

Testtable **************








Top 5 des navigateurs utilisés sur CSS débutants en décembre 2007

Firefox Explorer Mozilla Safari Opéra

49,6 % 39,4 % 5,0 % 2,4 % 0,9 %


Entre "Testtable" et "Top 5 des..." il y a trop de saut de ligne que je ne sais pas comment les supprimer.

Merci de me donner une solution.
A voir également:

7 réponses

animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
19 sept. 2013 à 23:16
si tu mettais l'url de la page et aussi le CSS, parce que la normalement il n'y a aucun espace entre
Testtable **************
et
Top 5 des navigateurs utilisés sur CSS débutants en décembre 2007

à moins qu'il y ait un margin-top a table ou un margin-bottom a strong je voit pas pourquoi il y aurait un espace
--
0
sontns2 Messages postés 4 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 21 septembre 2013
20 sept. 2013 à 12:15
Merci Animostab. J'ai mis ces codes dans une database, quand l'user active le lien, mon program met ces codes en execution.
Je vais regarder dans mon database afin de voir s'il y a un effet de bord par MySQL.
Sinon moi aussi je ne vois pas pourquoi il y a ces sauts de lignes.
Afin je cherche un contournement à ce pb car je ne peux pas afficher un tableau sans les sauts de lignes. Plus mon tableau a de l'entry, plus les sauts sont importants.
Y a t' il d'autre moyen à part de CSS?
Merci encore.
0
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
20 sept. 2013 à 15:02
Si le code généré après execution est bien celui que tu as mis je ne vois pas pourquoi il y aurait un espace

essaie dans le CSS

strong { margin:0; padding:0;}

table {margin:0;}

voir si il n'y aurais pas du CSS appliqué sur ces éléments soit par le parsing soit par un javascript déjà présent ou dans un css.

Sinon franchement je ne vois pas pourquoi cet espace.

--
0
sontns2 Messages postés 4 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 21 septembre 2013
20 sept. 2013 à 15:11
Bonjour,

J'ai localisé mon problème comme ceci: j'ai mis mes commands dans une variable (ex.$mytest). Si je fais echo $mytest; ça marche bien mais si je fais echo nl2br($mytest);ça crée des sauts de lignes. Mais j'ai absolument besoin de nl2br pour me protéger car normalement ceux qui sont dans $mytest proviennent d'une formulaire d'entrée par le client.

Voici mon prog de test simplifìé en php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<title>Test ECHO</title>
<meta http-equiv="Content-Type" content="text/html charset=UTF-8"/>
<link rel="stylesheet" media="screen" type="text/css" title="testCss" href="testcss.css" />

</head>

<body>


<?php
$mytest="<strong>Testtable</strong>
<table >
<caption>Top 5 des navigateurs utilisés sur CSS débutants en décembre 2007<caption>
<tr>
<th>Firefox</th>
<th>Explorer</th>
<th>Mozilla</th>
<th>Safari</th>
<th>Opéra</th>
</tr>
<tr>
<td>49,6 %</td>
<td>39,4 %</td>
<td>5,0 %</td>
<td>2,4 %</td>
<td>0,9 %</td>
</tr>
</table>";
echo $mytest;
?>

<div style="font-size:130%;color:#000b30;">
<?php echo nl2br($mytest);?>
</div>
</body>
</html>

Voici le résulta d'exécution:

Testtable
Top 5 des navigateurs utilisés sur CSS débutants en décembre 2007
Firefox Explorer Mozilla Safari Opéra
49,6 % 39,4 % 5,0 % 2,4 % 0,9 %

Testtable
















Top 5 des navigateurs utilisés sur CSS débutants en décembre 2007

Firefox Explorer Mozilla Safari Opéra
49,6 % 39,4 % 5,0 % 2,4 % 0,9 %

Merci de m'indiquer comment sortir de cette situation.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
Modifié par animostab le 20/09/2013 à 16:23
Je suis pas super bon en php mais bon nl2br c'est sa fonction de rajouter des br

essaie d'utiliser preg_replace ou str_replace pour les supprimer.

un truc du genre
$text= nl2br($mytest);
$text1= str_replace('<br>', '', $text);
echo $text1;


En php je suis pas doué donc c'est juste une piste je peux pas faire mieux.


--
0
sontns2 Messages postés 4 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 21 septembre 2013
21 sept. 2013 à 10:52
Merci encore animostab.
la solution str_replace ne change rien!
la fonction nl2br permet de créer <br /> automatiquement à la fin de chaque ligne.
J'ai regardé de près cette fonction et remarque qu'elle rajoute autant de ligne chaque fois d'il y a de "point à la ligne" dans <table>. Dans mon exemple, il y aura 18 lignes sautées avant l'affichage du lableau!
Si je supprime tous les "point à la ligne" dans <table> alors çca marche:

Ex:
$mytest="<strong>Testtable</strong>
<table > <caption>Top 5 des navigateurs utilisés sur CSS débutants en décembre 2007<caption>
<tr> <th>Firefox</th> <th>Explorer</th> <th>Mozilla</th> <th>Safari</th> <th>Opéra</th> </tr> <tr> <td>49,6 %</td> <td>39,4 %</td>
<td>5,0 %</td> <td>2,4 %</td> <td>0,9 %</td> </tr>
</table>";

Résultat:

Testtable


Top 5 des navigateurs utilisés sur CSS débutants en décembre 2007

Firefox Explorer Mozilla Safari Opéra
49,6 % 39,4 % 5,0 % 2,4 % 0,9 %

J'ai mieux cerné le problème maintenant, j'espère trouver une solution ou un contournement.
Merci encore de m'éclairer.
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
21 sept. 2013 à 11:52
La solution est enfantine, tu n'as pas besoin d'utiliser nl2br


Mais j'ai absolument besoin de nl2br pour me protéger car normalement ceux qui sont dans $mytest proviennent d'une formulaire d'entrée par le client.

cette fonction ne protège en rien

montres-nous ton code php
0