Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > CSS
CSS Forum d'entraide sur l'utilisation des feuilles de style CSS. Avant de poster : Cours CSS, FAQ CSS, Galerie CSS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2011, 09h17   #1
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Par défaut modification d'un fichier CSS existant

Bonjour,

j'ai déjà un site avec un fichier CSS appelé par plein de pages, et ce que je voudrais faire, c'est modifier un attribut déjà utilisé dans ce CSS (un font-size) et de plus ajouter un ID (et faire cette modif en PHP, car je crois qu'il n'y aurait pas moyen autrement) : est-ce possible ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 14h14   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
Citation:
Envoyé par laurentSc Voir le message
Bonjour,

j'ai déjà un site avec un fichier CSS appelé par plein de pages, et ce que je voudrais faire, c'est modifier un attribut déjà utilisé dans ce CSS (un font-size) et de plus ajouter un ID (et faire cette modif en PHP, car je crois qu'il n'y aurait pas moyen autrement) : est-ce possible ?
pourquoi ne pas l'ajouter dans le fichier CSS directement
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 14h36   #3
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Ca a besoin d'être dynamique, car je souhaite modifier la taille des caractères (d'où le font-size) sur action de l'utilisateur (il s'agirait de pouvoir modifier cette taille par les mal-voyants, mais tout le monde n'en a pas besoin...). Je viens d'ailleurs de faire un essai manuel : dans un fichier css existant, j'ai rajouté un ID plus un attribut sur un élément qui était déjà présent :
Code :
1
2
3
body{
font-size:30;
}
et c'était bien pris en compte.
Et il me semble que c'est quasiment au point :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
$filename = 'fichier.css';
$somecontent = "#id1{
font-size:30;
}
\n";
 
// Assurons nous que le fichier est accessible en écriture
if (is_writable($filename)) {
 
    // Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
    // Le pointeur de fichier est placé à la fin du fichier
    // c'est là que $somecontent sera placé
    if (!$handle = fopen($filename, 'a+')) {
         echo "Impossible d'ouvrir le fichier ($filename)";
         exit;
    }
 
    // Ecrivons quelque chose dans notre fichier.
    if (fwrite($handle, $somecontent) === FALSE) {
        echo "Impossible d'écrire dans le fichier ($filename)";
        exit;
    }
 
 
    fclose($handle);
 
} else {
    echo "Le fichier $filename n'est pas accessible en écriture.";
}
?> 
<p id="id1">
coucou
</p>
Car c'est bien pris en compte : est-ce que tu crois que c'est résolu ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 14h39   #4
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Salut,

Utiliser JavaScript (ou jQuery) serait plus approprié nan ? Comme le font la plupart des templates de joomla...
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

FAQ ASP
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 14h56   #5
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
Utiliser JavaScript (ou jQuery) serait plus approprié nan ?
Pourrais-tu préciser un peu ton idée ?

Je suis d'autant plus intéressé que venant d'essayer mon idée, le fichier css que je voudrais modifier n'est pas accessible en écriture...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 15h15   #6
Membre régulier
 
Avatar de Pierrot2Mars
 
Homme Pierrot
Développeur Web
Inscription : novembre 2010
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Pierrot
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2010
Messages : 79
Points : 96
Points : 96
Salut,
Tu pourrais également ajouter du code dans ton head HTML.
Par ex :
Code :
1
2
3
<style type="text/css">
if(isset($_GET['size']) and !empty($_GET['size'])) echo '#id1 { font-size:'.intval($_GET['size']).'px'; }
</style>
Edit: Corrigé
Pierrot2Mars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 15h55   #7
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Merci du tuyau, et comme j'ai déjà mis du code css (entre balises <style> et </style>) dans le début du body, ça doit aussi être possible, non ? (Je te demande ça, car vu mon contexte, ça serait beaucoup plus facile d'encapsuler ton code dans une fonction PHP et d'appeler celle-ci dans le body des pages).

Et il me semble que pour que ton code soit juste, il faudrait plutôt faire :
Code :
1
2
3
4
 
echo '<style type="text/css">'
if(isset($_GET['size']) and !empty($_GET['size'])) echo '#id1 { font-size='.intval($_GET['size']).'px'; }
echo '</style>'
Es-tu d'accord avec moi sur les 2 points abordés ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 16h00   #8
Membre régulier
 
Avatar de Pierrot2Mars
 
Homme Pierrot
Développeur Web
Inscription : novembre 2010
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Pierrot
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2010
Messages : 79
Points : 96
Points : 96
Bien sûr !
...Sans oublier les ; à la fin des echo
Pierrot2Mars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 16h06   #9
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Et voilà :
Code :
1
2
3
echo '<style type="text/css">';
if(isset($_GET['size']) and !empty($_GET['size'])) echo '#id1 { font-size='.intval($_GET['size']).'px'; }
echo '</style>';
(j'avais oublié)
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 17h51   #10
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
J'ai décoché "résolu", car ça n'est pas au point.
Voilà ce que je fais :
j'ai un bouton "A+" qui fait un lien sur cette fonction :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php 
$taille_pol= (!isset($_COOKIE["taille_pol"]))? "12":$_COOKIE["taille_pol"];
switch($taille_pol) {
case 10 : $taille_pol= "12"; break;
case 12 : $taille_pol= "15"; break;
case 15 : $taille_pol= "20"; break;
case 20 : $taille_pol= "30"; break;
case 30 : $taille_pol= "30"; break;
default : $taille_pol= "12"; break;
}
setcookie("taille_pol",  $taille_pol);
$_SESSION['size']=$taille_pol;
?>
et dans ma page d'essai, j'ai ce code :
Code :
1
2
3
4
5
6
7
8
<?php
echo '<style type="text/css">';
if (isset($_SESSION['size'])) echo '#id1 { font-size='.intval($_SESSION['size']).'px; }';
echo '</style>';
?>
<p id="id1">
coucou
</p>
bien sûr, je fais les session_start() nécessaires, mais ça ne marche pas quand même (le "coucou" ne grossit pas). Qu'est-ce qui ne va pas ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 18h07   #11
Membre régulier
 
Avatar de Pierrot2Mars
 
Homme Pierrot
Développeur Web
Inscription : novembre 2010
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Pierrot
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2010
Messages : 79
Points : 96
Points : 96
Je vois une erreur ici :
Code :
$taille_pol= (!isset($_COOKIE["taille_pol"]))? "12":$_COOKIE["taille_pol"];
Corrigé :
Code :
$taille_pol= (!isset($_COOKIE["taille_pol"]) ? "12" : $_COOKIE["taille_pol"]);
Pierrot2Mars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 22h31   #12
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Non, ce code est juste ; par contre, ce que tu ne pouvais voir, c'est qu'il était mal placé vu qu'il y a dedans un setcookie et qu'il faut donc le placer avant tout affichage ; je l'ai fait (placé avant le doctype) et du coup la variable PHP est bien positionnée ; le cookie est effectivement "setté" et du coup, la variable augmente bien à chaque fois que j'appelle le code ; pour rappel :
Code :
$taille_pol= (!isset($_COOKIE["taille_pol"]))? "12":$_COOKIE["taille_pol"];
donc si le cookie n'existe pas, on repart à chaque fois de la même valeur.
Par contre, dans le code html il y a
Code :
1
2
3
<style type="text/css">#id1 { font-size=30px; }</style>taille=30<br><p id="id1">
coucou
</p>
(le taille=30 est le résultat d'un echo de contrôle), mais pourtant, le coucou ne prend pas en compte ce font-size ; tu comprends ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 22h39   #13
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
ce n'est pas
mais
le séparateur est : et non =
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 22h48   #14
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Merci, et lamentable ce Pierrot2Mars, vu que le code venait de lui Merci quand même de votre aide à tous les 2.
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h57.


 
 
 
 
Partenaires

Hébergement Web