Les commandes sont pour le moment fermées jusqu'à nouvel ordre, mais je peux assurer le support.
Merci de votre compréhension.
Requests are currently closed, but I can do some support.
Thanks for your understanding.
Important links - Liens importants
Règles - Rules | Présentez-vous - Introduce yourself | Problème d'inscription ? - Registration problem ?
Ishimaru-Design > Tutoriaux, ressources et support (fr) > phpBB3 > Tutoriels & Astuces > [Prosilver] Des cadre style Aero sans tableaux !
| Ishimaru Chiaki | #1 26/07/2009 - 04h42 |
|
Class : ID Admin |
Avoir un cadre style Aero sous Prosilver
Ce tutoriel fait suite à du support que j'ai apporté à un membre de phpBB-fr qui voulait adapter le style AeroBlue à Prosilver. La particularité des styles de la série Aero (disponibles sur phpbb3styles.net), c'est le cadrage fait en images PNG transparent, qui rappelle les effets de transparence de Windows Vista et qui entoure la liste des forums. En raison de cette transparence, l'imbrication d'élément (x)HTML n'est donc pas possible et il faudra donc les placer côte à côte. Je vais donc vous montrer à le faire, afin d'arriver à un résultat sans chevauchement, comme ceci : [thumb=122,190]http://ftp.phpbb-fr.com/public/ressources/tutos/aero.jpg[/thumb] Préparer les images Que ce soit un cadre pris dans un style Aero ou un cadre que vous avez fait vous-mêmes et découpé en huit morceaux, vous devez d'abord les envoyer dans le dossier styles/votre_style/theme/images/. Prévoyez également un fond, noir glossy de préférence, pour l'en-tête des forums (nom du forum - messages - posts - derniers messages). On peut prendre pour l'exemple, le fond cellpic1.gif du même thème Aero. Pour la suite, je vais utiliser ces noms d'images pour identifier les morceaux, ainsi que les classes qui auront le morceau associé comme fond :
Maintenant, on va préparer nos blocs qui contiendront nos fonds. Afin de mieux vous montrer la structure qu'on va utiliser, rien de mieux qu'un schéma ![]() ![]() Ainsi, le haut et le bas de notre cadre seront chacun composés d'un div conteneur avec chacun trois div placés côte à côte, tandis que la partie du milieu contiendra trois éléments imbriqués les uns dans les autres, le plus imbriqué étant notre liste de forums. On va donc commencer par la partie XHTML et ensuite, on attaque le CSS. Partie XHTML Ouvrez votre fichier styles/votre_style/template/forumlist_body.html. Au début du fichier cherchez <span class="corners-bottom"><span></span></span></div>remplacez par </div>Plus bas cherchez ce bout de code : <div class="forabg">Juste après, vous trouverez cette ligne <div class="inner"><span class="corners-top"><span></span></span>que vous devrez remplacer par <div class="top">Ensuite, cherchez ce bout de code : <!-- IF forumrow.S_LAST_ROW -->Juste après, vous trouver cette ligne <span class="corners-bottom"><span></span></span></div>que vous devrez remplacer par </div>On a maintenant fini avec la partie XHTML. Pour que ça puisse s'afficher comme on veut, on passe maintenant au CSS ! Partie CSS Ouvrez votre fichier styles/votre_style/theme/colours.css Cherchez ceci : .forabg {Mettez-le entre commentaires, comme ceci : /*Ensuite, cherchez .forumbg {(note : vous pouvez également le mettre en commentaires si vous voulez avoir les cadres aussi pour la liste de topics) Après, vous ajoutez Ouvrez ensuite styles/votre_style/theme/common.css cherchez .forabg {remplacez par .forabg {Ouvrez ensuite styles/votre_style/theme/content.css puis placez ce code au tout début, juste après le premier commentaire : /**Vista-like frame around the forumlist**/Je vous donne une petite explication avant de continuer : Nos coins dans l'exemple font 18*18 de dimensions, donc il fallait mettre des dimensions à nos blocs pour prévenir tout bug d'affichage. Ainsi, les blocs de la partie du haut et de la partie du bas ont une hauteur fixe, et nos coins ont aussi une largeur fixe. De plus, j'ai appliqué un flottant aux coins pour que les morceaux puissent être côte à côte et ensuite, pour éviter le chevauchement, j'ai mis une marge externe de 18 pixels aux deux morceaux du milieu. Quant au milieu, étant donné que j'ai imbriqué mes blocs, j'ai mis des padding (marges internes) en conséquence afin de pouvoir afficher les morceaux latéraux. Et pour couronner le tout, j'ai réinitialisé les marges externes et internes à zéro, là où il n'y en a pas besoin, afin de prévenir tout bug d'affichage (on sait jamais :lol:). Maintenant, on passe à un ajustement pour notre en-tête de la liste des forums, au niveau des marges internes. Toujours dans styles/votre_style/theme/content.css Vous cherchez li.header dl.icon {Vous remplacez par li.header dl.icon {[MAJ] Suite à un problème signalé, j'ajoute un point concernant les div conteneurs où nos cadres s'y trouvent. Il se trouve que je n'avais pas remarqué que ces blocs avaient des marges internes variant entre 5 et 10 pixels sur les côtés, ce qui cause un problème d'esthétique. Je vous donne donc la modifications à faire, toujours dans content.css Cherchez par exemple #forabg (liste des forums), #forumbg (liste des sujets) et .navbar (les barres en haut et en bas : .navbar {Mettez les attributs padding à 0 : .navbar {Voilà, c'est maintenant fini ! Il ne vous reste qu'à enregistrer vos modifications et à rafraîchir le tout dans votre panneau d'administration ! Vous pouvez adapter ce code aux dimensions des morceaux de votre cadre s'il est différent, et vous pouvez l'adapter pour d'autres éléments de votre design, comme l'entête et les navbar. Tous ces cadres ayant pas mal le même code pour faire les arrondis, vous appliquez simplement les mêmes changements que pour la liste des forums, au niveau du code XHTML, sans oublier de mettre les marges internes de conteneurs à zéro, là où vous mettez les cadres. Astuce bonus - Rendre les cadres compatibles IE6 Si vous tenez absolument à ce que ces cadres soient compatibles avec Internet Explorer 6, qui ne supporte pas la transparence des PNG24, voici une astuce qui a été testée et mise en place par micka76 sur le thème Vistablue de Samourai, ainsi que des fixes CSS pour corriger le problème d'espaces entre les morceaux. Résultat avant le fix : Capture Résultat après le fix : Capture Téléchargez d'abord le script disponible ici Ensuite, décompressez-le (utilisez 7-zip si vous n'avez pas Winrar), puis déplacez le fichier .JS dans styles/votrestyle/template/. Ouvrez maintenant votre fichier style/votre_style/template/overall_header.html et insérez ce code entre les balises <head> et </head> <!--[if IE 6]>Comme vous voyez, entre les deux parenthèses de la ligne 3, on y place les classes à traiter, en les séparant par des virgules. Vous pouvez donc en mettre autant que vous voulez. Maintenant, passons aux problèmes d'espace. Ouvrez le fichier styles/votre_style/theme/tweaks.css et ajoutez ce code à la fin du fichier : * html .tl{ margin: 0 -3px 0px -2px; }Maintenant, votre style est compatible même avec IE6 ! Le tuto est maintenant terminé ! Un merci spécial à Samourai et à micka76 pour les tests, remontées d'erreurs et les correctifs pour IE6.
Edited by Ishimaru Chiaki on 27/06/2010 at 17h01.
|
Ishimaru-Design > Tutoriaux, ressources et support (fr) > phpBB3 > Tutoriels & Astuces > [Prosilver] Des cadre style Aero sans tableaux !
> Stats
1 user(s) connected during the last 10 minutes (0 member(s) and 1 guest(s)).
Connectix Boards (fr) | phpBB.com | phpBB-fr.com | phpBB.biz | phpBB3styles | phpBBHacks | Awesomestyles | phpBB-France | Le site du zéro | Servhome | Gimp-Attitude | Phobies-Zéro | Expomatique
Powered by Connectix Boards 0.8.4 © 2005-2012 (7 queries, 0.144 sec)

