28217 sujets

CSS et mise en forme, CSS3

Bsr ,
Alors apres plusieurs recherche je ne trouve toujours pas la solution pour afficher un background-image aleatoire d'un repertoire pour le CSS ...

Est-ce deja possible avec le CSS? ou est -t-on obliger de faire apelle au php?
Merci
Modifié par bledfeet (04 Jul 2006 - 00:36)
Bon j'y connais vraiment rien à PHP, donc ce que je vais dire va être une horreur sans nom, mais bon, les pros de PHP me corrigeront si vraiment c'est catastrophique.

Je pensais donc à utiliser une fonction rand, disons un rand entre 1 et 10. Ensuite, faire un simple :

<?php
if
{ rand=1; }

then
{echo " <link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"".$css."/style.css\" />\n" ;
}
?>

etc etc etc... bon, javais prévenu que ça allait être une horreur sans nom , je ne sais même pas les règles synthaxique du PHP, cependant c'est le principe que j'adopterais Smiley ohwell .
Y'a pas de bouton éditer ? Pas très pratique ça.. Lol.


Je voulais préciser également, que les feuilles de styles prises aléatoirement seront toutes identiques, mis à part ( par exemple: )

Feuilledestyle1.css

#conteneur
{
background-image:url(fond1.gif);
}


Feuilledestyle2.css

#conteneur
{
background-image:url(fond2.gif);
}


Bref, seul le background-image du bloc conteneur changera.

Voilà Smiley ohwell
Bonjour,

Pour une solution basique, plutôt de répliquer x fois la CSS complète, il suffit d'extraire la règle CSS concernée de la CSS.

Le site aura deux CSS en cascade, ou si vous préférez, deux éléments <link rel="stylesheet"> successifs :
- un pour la CSS "fixe" comportant tous les styles sauf celui qui doit changer aléatoirement
- un pour la CSS "aléatoire", réduit à :
#conteneur
{
background-image:url(....gif);
}


Un simple script PHP de tirage aléatoire dans un tableau suffira à gérer l'insertion du second <link> (voir sur les sites consacrés à PHP pour ce type de script).

Une version plus performante pourrait remplacer la série de CSS aléatoire par un fichier unique en PHP, produisant aléatoirement les différentes variantes (attention dans ce cas à bien fixer l'en-tête HTTP content-type text/css pour ce fichier).

Une version encore plus performante n'utiliserait plus qu'une seule CSS, au lieu des deux. Mais celle-ci, en PHP, insèrerait directement le nom de l'image de fond de manière aléatoire dans la règle background-image (là encore, attention au type mime du fichier).
Modifié par Laurent Denis (01 Nov 2005 - 06:31)
Bonjour,
Pourquoi ne pas générer directement la CSS avec php ??

Genre
<link rel="stylesheet" href="style.php" type="text/css" />


et :

<?php
header("Content-Type:text/css; charset=iso-8859-1");
?>
/* définitions CSS communes ... */

#conteneurAVecBackgroundAleatoire  {
<?php
$images = array("image1.png", "image2.png", "petitchien.png");
$nb = rand(1, count($images)) -1;
echo "background-image:URL({$images[$nb]});\r\n";
?>
}

/* Suite des définitions communes ... */


Voilà enfin vous avez compris le principe. Comme ça un seul appel à la CSS dans la page HTML, et une seule feuille de style !