Bonjour à tous,
Je commence à bidouiller dans le CSS et je suis en période d'apprentissage et de tests. J'ai beaucoup de questions, mais je vais me limiter dans ce post à l'architecture générale d'un design et aux différents blocs qui le composent.

Imaginons que je souhaite réaliser un site très simple avec :
- Un header
- Un menu vertical (à gauche par exemple)
- Le corps ou contenu
- Un pied de page

Jusque là pas de souci : je sais comment créer les blocs avec la balise DIV (après, l'alignement et l'imbrication c'est une autre histoire !).

1. Imaginons maintenant que je souhaite ajouter (à moyen terme) un bloc supplémentaire pour diffuser des publicités, ainsi qu'un moteur de recherche et un espace membres : faut-il que je prévois ces emplacements dès le début ? Ou puis-je les ajouter à ma "maquette" au fur et à mesure ?

2. Dernière chose : est-il possible de créer l'emplacement d'un bloc et de le mettre "en attente", c'est à dire faire en sorte qu'il ne soit pas visible pour le visiteur ? Par exemple puis-je CACHER un bloc à droite qui me servira plus tard à afficher de la publicité ?

Merci d'avance pour vos réponses.

jpv56
Salut,

1.
tu peux mêler le CSS au PHP, en utilisant les includes pour mieux "diviser" tes blocs.

De façon concrète, ça donne ça:
<body>
<div id="site">
<div id="header">
<?php include('header.php'); ?>
</div>

<div id="menu_vertical">
<?php include('menu_vertical.php'); ?>
</div>

<div id="corps">
<?php include('corps.php'); ?>
</div>

<div id="footer">
<?php include('footer.php'); ?></div>
</div>
</body>


Ainsi, tu as ton code "principal" qui structure parfaitement ton site. Et tu pourras facilement ajouter un bloc.
Chacun de tes blocs et appelé en <?php include(); ?> qui est une fonction PHP permettant d'inclure un fichier à partir de son emplacement.
Dans l'exemple, on appelle respectivement les fichiers:
- header.php
- menu_vertical.php
- corps.php
- footer.php

Donc, header.php, sera un fichier contenant le code de ton header.
menu_vertical.php, sera un fichier contenant le code de ton menu vertical.
Etc.

Chacune des include étant placée dans une <div> ; la séparation et la structuration de ta page est parfaite.


2.
Pour rendre une <div> invisible, et donc un bloc, j'ai trouvé ça:
http://www.generation-nt.com/rendre-invisible-un-div-et-ses-enfants-entraide-2828.html


Bye,
Furox
Modifié par Furox (02 Mar 2010 - 18:53)
Bonsoir Furax et merci pour tes explications. Je ne connais rien au PHP mais je sais déjà que je devrai m'y coller tôt ou tard (après avoir bien digéré les CSS).

Pour ce qui est du bloc "invisible" ou masqué je pensais qu'on pouvait faire plus simple. J'ai cru lire qu'il existait une propriété "hidden" mais je ne sais pas si elle s'applique aux blocs et s'il elle sert à "cacher" des éléments. Si quelqu'un pouvait confirmer ou infirmer ?
Merci.

jpv56
Bien le bonsoir,

display: none; supprime l'élément de l'affichage (et retire sa place donc du flux)
visibility: hidden; masque l'élément à l'affichage (et laisse sa place dans le flux)

tm
Merci tm, c'est exactement ce dont j'avais besoin pour la seconde partie de ma question.
Et en plus c'est facile à mettre en place Smiley smile
Administrateur
Bonjour,

j'essaierai de revenir plus tard sur ta question initiale si j'ai 5 minutes mais attention à ne pas cacher avec display: none; du contenu sensible : en désactivant les CSS, tout le monde pourra le voir ! Ah et les moteurs de recherche vont l'indexer (plus déclencher un signal chez Google "tiens du contenu caché, spam ou pas ?" mais tu ne risques pas d'être blacklisté pour ça dans ce cas-ci, il faut avoir la volonté de cacher du contenu et avoir un concurrent qui te dénonce ^^).

Si tu veux cacher les parties en travaux, soit tu travailles avec un serveur de dév (pour toi) et un serveur en production (pour les visiteurs), soit comme dew tu limites les nouveaux blocs pas encore finis aux admins ou à une IP en particulier (la tienne) mais tout ça se fait en PHP
Modifié par Felipe (03 Mar 2010 - 11:03)
+1 pour display:none; et visibility:hidden; et les remarques à ce sujet.

L'avantage des includes en PHP, c'est déjà de pouvoir faire une modification sur toutes les pages de ton site en modifiant un unique fichier... c'est toujours agréable.

Typiquement, tes fichiers incluent tous le fichier footer.php qui contient par exemple :

<?php
echo date("d/m/Y"); // la date du jour
?>
 - <a href="toto.htm" title="toto">Toto</a>


Il te suffit de laisser le fichier inclus dans toutes les pages de ton site, mais de faire totalement disparaître le contenu, ex :


<?php
// echo date("d/m/Y");
// - <a href="toto.htm" title="toto">Toto</a>
?>

Comme ça, le jour où tu veux ajouter un truc dans ton footer, ça permet de ne modifier qu'un fichier, et de rendre totalement invisible (commenté en PHP, ça n'apparaîtra pas dans le code HTML).

Une combine comme une autre, ça dépend de tes besoins.
Modifié par Nico3333fr (03 Mar 2010 - 16:30)
Merci pour vos explications concernant la fonction "include" de PHP.
Pour être honnête j'ai du mal à piger le truc car je ne me suis pas mis au PHP (j'apprends les CSS pour le moment) et sa syntaxe m'échappe complètement.
Mais je garde sous le coude vos pertinentes remarques.

PS: pour un esprit non matheux comme moi, le PHP est-il un langage inaccessible ?
a écrit :
PS: pour un esprit non matheux comme moi, le PHP est-il un langage inaccessible ?

Le php n'a pas besoin de maths pour fonctionner (dans les bases). La preuve du basique include. (Comme sont nom l'indique, il inclut un fichier).
Par contre le php c'est sans limite et tu peux tout ou quasiment tout faire... et tu peux donc faire des calculs, mais il faut une utilité. (Moi perso j'ai un e-portfolio, un blog et une gallerie photos, et je n'ai jamais utilisé un système de calcul plus difficile qu'une soustraction, une addition et une division.)

Je pense que dans ton cas, le site que tu développe n'aura pas besoin d'un système de php super développer (ou du moins pas tout de suite). Les bases devrait donc te suffire. Fonction include qui est une vrai merveille, les boucles et les conditions. Déjà avec ces trois petits truc, une fois intégré ça te facilitera la vie, tu verra.

Bon courage.