28173 sujets

CSS et mise en forme, CSS3

Slt à tous,
cela fait longtemps que je parcours ce forum, et jusqu'a présent j'ai toujours trouvé ce que je cherché.
Or aujourd'hui...ben non. J'ai donc décidé de m'inscrire et de rejoindre votre communauté.

Voici donc le probleme qui m'amene.
Je suis en train de creer un site, j'ai donc creer egalement un fichier externe color.css avec ce type de code.


body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-style: italic;
	color: #ff9900;
	text-decoration: underline;
	background-image: url(/img/bg.png);
	background-repeat: repeat-x;
}


Mon souci c'est que certain instruction ne sont pas prise en compte. dans ce cas precis, ne sont pas pris en compte:


	font-size: 12px;
	font-style: italic;
	text-decoration: underline;

donc la taille, le style et la deco.
Je ne comprends pas pourquoi.

Il est vrai que je passe par une fonction php pour appeler mon css.

function HTMLHeader($siteName,$cssFile,$bodyBgColor,$background=0)
{
?><HTML>
  <HEAD>
    <TITLE><?echo $siteName?></TITLE>
    <LINK TYPE="text/css" REL="stylesheet" HREF="<?echo $cssFile?>">
  </HEAD>
  <BODY <?if ($background){echo "BACKGROUND=\"".$background."\"";}?>BGCOLOR="<?echo $bodyBgColor?>" LEFTMARGIN="0" MARGINWIDTH="0" TOPMARGIN="0" MARGINHEIGHT="0"><?
}


Peut etre que cela peut venir de la, mais pour l'instant je seche.
Si quelqu'un pouvais me donner un coup de main ca serait cool.
@+
effectivement je pense que cela peut venir de ta fontciont php.
dès que tu referme la balise php, le code html qui suit est instantannément envoyé et je pense que ce n'est pas l'effet recherché vu que tu défini une fonction. Essaye cette fonction basé sur la tienne

function HTMLHeader($siteName,$cssFile,$bodyBgColor,$background=0) {
	$output = "<HTML>";
	$output .= "<HEAD>";

	$output .= "<TITLE>$siteName</TITLE>";

	$output .= '<LINK TYPE="text/css" REL="stylesheet" HREF="'.$cssFile.'">';

	$output .= "</HEAD>";

	$output .= '<BODY ';

	if ($background){ $output .= "BACKGROUND=\"".$background."\""; }

	$output .= 'BGCOLOR="'.$bodyBgColor.'" LEFTMARGIN="0" MARGINWIDTH="0" TOPMARGIN="0" MARGINHEIGHT="0">';

	return $output;
}


pour l'utilisation je suppose que tu connais la méthode, je la redonne au cas où Smiley langue :
echo HTMLHeader("valeur_siteName", "valeur_cssFile", "valeur_bodyBgColor", "valeur_background");

Modifié par kojiroh (17 Nov 2006 - 20:17)
Merci pour cette reponse rapide mais malheureusement cela fonctionne pas.
j'ai remplacer ma fonction avec la tienne mais je n'ai plus aucun css de pris en compte.
j'ai impression qu'il ne trouve pas mon fichier css avec ta fonction.
Une idée ???
c'est celui que tu m'as donné.... juste au post précédent.

PS: j'ai ajouté le "echo" dans ma page index que j'avais oublié, mais je reviens au même point qu'au debut.

Le truc etrange c'est, pourquoi cela prends en compte le font-family, la couleur et pas le reste ???
Modifié par spawns (17 Nov 2006 - 23:36)
je viens de remarqué deja quelque petit détail:

- tu defini les margin de ton body dans ton fichier color.css et tu les redefini ensuite dans ta balise body (LEFTMARGIN, TOPMARGIN...) avec les meme valeur donc retire ceux de ta balise body.

- tu definis la taille de la police en px (dans color.css), ne vaut-il pas mieux la definir en pt ? (si un expert passe par là merci pour la reponse ^^ )

Sinon j'ai testé chez moi ce code la et cela fonctionne :

<?php
function HTMLHeader($siteName, $cssFile, $bodyBgColor, $background=NULL) {
	$output = '<HTML>';
	$output .= '<HEAD>';
	$output .= "<TITLE>$siteName</TITLE>";
	$output .= '<LINK TYPE="text/css" REL="stylesheet" HREF="'.$cssFile.'">';
	$output .= '</HEAD>';
	$output .= '<BODY ';
	if (!is_null($background)){ $output .= 'BACKGROUND="'.$background.'" '; }
	$output .= ' BGCOLOR="'.$bodyBgColor.'">';
	
	return $output;
}

echo HTMLHeader('Mon Site Perso', 'color.css', '#FF0000');

echo "BLABLABLA";
?>


Avec le fichier color.css a la racine de mon site

L'affichage prend bien en compte la taille de la police, le style en italic et le souslignement.

voila
bien non, je ne comprend pas pourquoi cela ne fonctionne pas.

Le blem c'est que cela fontionne a moitié, c'est ca qui est genant.
Je prefererai que cela ne marche pas du tou.
mon css est dans un rep /css mais ca gene pas mon code est adapter.

le code de mon index.php est :

<?
include "lib/cfg.inc";
include "lib/fonction.inc";

echo HTMLHeader($siteName,$cssDir.$cssFile,$bodyBgColor);
if ( !empty($_GET['rub']) & !empty($rubrique[$_GET['rub']]) & file_exists("rub/".$rubrique[$_GET['rub']]) )
{
	$centre = "rub/".$rubrique[$_GET['rub']];
}
else
{
	// Page centrale par défaut
	$centre = "rub/news.php";
}
echo"<TABLE  BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100% >
  <TR VALIGN=top>
    <TD COLSPAN=5>";
include "rub/haut.php";
echo"</TD>
  </TR>
  <TR>
    <TD VALIGN=TOP WIDTH=200>";
include "rub/menug.php";
echo"</TD>
    <TD WIDTH=2>&nbsp;</TD>
    <TD VALIGN=TOP WIDTH=100%>";
include "$centre";
echo"</TD>
	<TD WIDTH=2>&nbsp;</TD>
    <TD VALIGN=TOP WIDTH=200>";
include "rub/menud.php";
echo"</TD>
  </TR>
</TABLE>";
HTMLClose();
?>


C'est enervant de ne pas trouver d'ou cela peut venir
Modifié par spawns (18 Nov 2006 - 04:10)
Déjà, mélanger le CSS et les topmargin, leftmargin, bgcolor dans le html, c'est très moyen. Du moins je trouve.

Sinon, je fait de passer par une fonction php pour écrire l'adresse d'une feuille de style n'est pas un problème du tout. C'est utilisé de partout !

Tu n'as pas défini de taille pour la police dans une table, c'est un truc qu'il faut faire en général pour que ça soit pris en compte aussi.

Donc essaye ça :


body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-style: italic;
	color: #ff9900;
	text-decoration: underline;
	background-image: url(/img/bg.png);
	background-repeat: repeat-x;
}
table{
	font-size: 12px;
	font-style: italic;
	color: #ff9900;
}