Problème de style sur les bordures d'un tableau

Répondre
jackbocar
jackbocar
Déconnecté
L'homme sage est celui qui connaît ses limites
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Tableau PDO</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
BODY {background: #f1f1f1;}
IMG {float: left;}
BODY, P, IMG {font-family: Arial, Helvetica, sans-serif;font-size: 10pt;margin: 0.5em;text-align:justify;}
.red {color: red;}
.cellule {color: #0C034F;text-align: justify;border: solid 1px #a0522d;}
.cadre {border: solid 1px #a0522d;background-color:#ffffff;}
.Lnav {text-decoration: none;font-weight: bold;color:#23698B;font-size : 10pt;}
.Lnav:hover {text-decoration: underline;font-weight: bold;color:#990000;font-size : 10pt;}
</style>
</head>

<body>

Bonjour,

J'ai un tableau en PDO, il fonctionne parfaitement bien, mon seul problème est les STYLES du cadre et des cellules. Ils sont pour une part épais et pour une autre fin ?

Comment régler ce problème ?

Merci de votre aide

Jack Bocar


  1.  
  2. <?php
  3.  
  4. /*------------------------------------------------*/  
  5. /*
  6. /* NE RIEN CHANGER ICI */  
  7. /*
  8. /*------------------------------------------------*/ 
  9.    class Connexion extends PDO{ 
  10.       private $debug;  
  11. /*--- constructeur ne rien changer ----*/ 
  12.  
  13.    function __construct($user,$mdp,$bdd,$host='localhost'){ 
  14.  
  15.        $this->debug=false; 
  16.    try{ 
  17.             parent::__construct('mysql:host='.$host.';dbname='.$bdd,$user,$mdp); 
  18.          } catch(PDOEXCEPTION $e){ 
  19.          die ('Erreur : '.$e->getMessage() ); 
  20.          } 
  21.          $this->exec('SET CHARACTER SET 8859-1'); 
  22.    } 
  23.    function modeDebug(){ 
  24.        $this->debug=true; 
  25.       }  
  26. /*--- execute une requete sql du type insert, delete ou update ---*/ 
  27.  
  28.    function exec($requete){  
  29. $resultat=parent::exec($requete);  
  30. if($resultat===FALSE and $this->debug){  
  31. var_dump($resultat); 
  32.             var_dump(parent::errorInfo());  
  33. }else{ 
  34.    return $resultat;  
  35. } 
  36.    }  
  37. /*--- execute une requete du type select ---*/ 
  38.  
  39.    function query($requete){ 
  40.        $resultat=parent::query($requete);  
  41. if($resultat===FALSE and $this->debug){  
  42. var_dump($this->errorInfo()); 
  43.             var_dump(parent::errorInfo()); 
  44.    $resultat->closeCursor();  
  45. }else{ 
  46.    return $resultat;  
  47. } 
  48.    }  
  49. /*--- return : false si aucune valeur trouvee ----*/ 
  50.  
  51.    function querySimple($select,$table,$where='',$groupBy='',$ordre='',$limit='',$defaut=false){ 
  52.        $requete='select '.$select. 
  53.              ' from '.$table; 
  54.        if($where!=''){ 
  55.           $requete.=' where '.$where; 
  56.        } 
  57.        if($groupBy!=''){ 
  58.           $requete.=' group by '.$groupBy; 
  59.        } 
  60.  
  61.          if($ordre!=''){ 
  62.             $requete.=' order by '.$ordre;          
  63.        } 
  64.        if($limit!=''){ 
  65.        $requete.=' limit '.$limit; 
  66.        } 
  67.          $resultat=$this->query($requete); 
  68.        $resultat=$resultat->fetchAll(PDO::FETCH_BOTH); 
  69.        if(isset($resultat[0][0])){ 
  70.           return $resultat[0][0]; 
  71.        }else{ 
  72.           return $defaut; 
  73.        } 
  74.    }  
  75. /*--- renvoie un tableau associatif contenant le résultat de la requete -----*/ 
  76.  
  77.    function requete2tableau($requete){ 
  78.        $resultat=$this->query($requete); 
  79.          if($resultat===false AND $this->debug){ 
  80.             echo $requete; 
  81.          };         
  82.          return $resultat->fetchAll(PDO::FETCH_ASSOC); 
  83.    }  
  84. /*---renvoie un tableau html contenant le résultat de la requete---*/  
  85.  
  86. /*----ON PEUT MODIFFIER LA TABLE SEULEMENT ----*/ 
  87.  
  88.       function requete2html($requete,$border=0,$enteteColonne=true){ 
  89.       $resultat=$this->query($requete); 
  90.          $texte=''; 
  91.          $texte.= '<center><table width="90%" cellpadding="0" cellspacing="0" border="'.$border.'" class="cadre">'; 
  92.          if($enteteColonne){ 
  93.             $texte.= '<tr valign="top">'; 
  94.             for($i=0;$i<$resultat->columnCount();$i++){ 
  95.                $col=$resultat->getColumnMeta($i); 
  96.                $texte.= '<th class="red">'.$col['name'].'</th>'; 
  97.             } 
  98.             $texte.= '</tr>'; 
  99.          } 
  100.          $resultat->setFetchMode(PDO::FETCH_NUM); 
  101.          foreach($resultat as $ligne){ 
  102.          $texte.= '<tr valign="top">'; 
  103.             foreach($ligne as $valeur){ 
  104.                $texte.= '<td class="cellule"><p>'.nl2br($valeur).'</p></td>'; 
  105.             } 
  106.             $texte.= '</tr>';  
  107.  
  108. /*-- espace vide entre chaque tableau ----*/  
  109.  
  110. $texte.='<tr><td>&nbsp;</td></tr>';  
  111.  
  112. /*---ON PEUT MODIFIER LES ARGUMENTS SELECT ---*/ 
  113.  
  114.          } 
  115.          $resultat->closeCursor(); 
  116.          $texte.='</table><br /><a href="#" class="Lnav">Top</a></center>'; 
  117.          return $texte; 
  118.    } 
  119.    } 
  120.    $connexion=new Connexion('LOGIN','PASSWORD','BASE'); 
  121.    $connexion->modeDebug(); 
  122.    echo $connexion->requete2html('select id,Nouvelles as Nouvelles from tableau_1 ORDER BY id DESC',1); 
  123.    
  124.  
  125. /*-
  126. ID, NEWS, INFO, OU TOUT AUTRE SUIVANT LA TABLE ON PEUT AUSSI AJOUTER DES ARGUMENTS
  127. -*/ 
  128.    ?>
  129.  
  130.  
  131.  
  132. <br />
  133. <a href="tableau_2.php" class="Lnav">Tableau 2</a> &nbsp; <a href="tableau_3.php" class="Lnav">Tableau 3</a> &nbsp; <a href="tableau_4.php" class="Lnav">Tableau 4</a>
  134. <br /><br />
  135. </body>
  136. </html>
  137.  


--
-- Structure de la table `tableau_1`
--

CREATE TABLE `tableau_1` (
`id` int(11) NOT NULL auto_increment,
`Nouvelles` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Pourquoi ne pas avoir posté dans le forum html / css pour un tel problème ?

Sinon, tu n'aurais pas des cellules vides par moment ?
Si oui, regarde du côté de la propriété empty-cells.
jackbocar
jackbocar
Déconnecté
L'homme sage est celui qui connaît ses limites
Bonjour,

Désolé, par habitude de poster dans le forum PHP.

Non, je n'ai pas de cellules vide, simplement elles n'ont pas la même épaisseur ?

Jack Bocar
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Tu ne pourrais pas nous donner le HTML gé néré de ta page plutot que le PHP ? Ca serait plus simple pour t'aider.
jackbocar
jackbocar
Déconnecté
L'homme sage est celui qui connaît ses limites
J'ai supprimé les balises <TH> et les ai remplacées par <TD>.
J'ai supprimé la fonction $border et l'ai remplacé par border="0"
J'ai toujours comme un double border sur les cellules côté gauche et droit à l'intérieur du cadre

  1.  
  2. <style type="text/css">
  3. BODY {
  4. background: #f1f1f1;
  5. }
  6.  
  7. IMG {
  8. float: left
  9. }
  10.  
  11. BODY, P, IMG {
  12. font-family: Arial, Helvetica, sans-serif;
  13. font-size: 10pt;
  14. margin: 0.5em;
  15. text-align:justify;
  16. }
  17. .red {
  18.    font-family: Arial, Helvetica, sans-serif;
  19. font-size: 12pt;
  20. color: red;
  21. font-weight: bold;
  22. text-align:center;
  23. }
  24. .cellule {
  25. color: #0C034F;
  26. text-align: justify;
  27. border: solid 1px #a0522d;
  28. }
  29. .cadre {
  30. border: solid 1px #a0522d;
  31. background-color:#ffffff;
  32. }
  33.  
  34. .Lnav {
  35. text-decoration: none;
  36. font-weight: bold;
  37. color:#23698B;
  38. font-size : 10pt;
  39. }
  40.  
  41. .Lnav:hover {
  42. text-decoration: underline;
  43. font-weight: bold;
  44. color:#990000;
  45. font-size : 10pt;
  46. }
  47.  
  48. </style>
  49. </head>
  50.  
  51. <body>
  52. <center>
  53. <table width="90%" cellpadding="0" cellspacing="0" border="0" class="cadre">
  54. <tr valign="top">
  55. <td class="red">id</td>
  56. <td class="red">Nouvelles</td>
  57. </tr>
  58. <tr valign="top">
  59. <td class="cellule"><p>4</p>
  60. </td>
  61. <td class="cellule"><p>Test du tableau et des styles des cadres.</p>
  62. </td>
  63. </tr>
  64. <tr>
  65. <td>&nbsp;</td>
  66. </tr>
  67. <tr valign="top">
  68. <td class="cellule"><p>3</p>
  69. </td>
  70. <td class="cellule"><p>Test du tableau et des styles des cadres.</p></td>
  71. </tr>
  72. <tr>
  73. <td>&nbsp;</td>
  74. </tr>
  75. <tr valign="top">
  76. <td class="cellule"><p>2</p>
  77. </td>
  78. <td class="cellule"><p>Test du tableau et des styles des cadres.</p></td>
  79. </tr>
  80. <tr>
  81. <td>&nbsp;</td>
  82. </tr>
  83. <tr valign="top">
  84. <td class="cellule"><p>1</p>
  85. </td>
  86. <td class="cellule"><p>Test du tableau et des styles des cadres.</p></td>
  87. </tr>
  88. <tr>
  89. <td>&nbsp;</td>
  90. </tr>
  91. </table>
  92. <br />
  93. <a href="#" class="Lnav">Top</a>
  94. </center>
  95.  
jackbocar
jackbocar
Déconnecté
L'homme sage est celui qui connaît ses limites
J'ai trouvé une solution, en supprimant :


  1.  
  2. .cellule {
  3. color: #0C034F;
  4. text-align: justify;
  5. border: solid 1px #a0522d;
  6. }
  7.  



Et en remplaçant par :

  1.  
  2. .cellule {
  3. color: #0C034F;
  4. text-align: justify;
  5. border-top: solid 1px #a0522d;
  6. border-bottom: solid 1px #a0522d;
  7. border-right: solid 1px #a0522d;
  8. }
  9.  



Il ne me reste plus qu'un double border à l'intérieur et du côté droit du tableau
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php - Breizh Blog