Dreamweaver
Transcription
Dreamweaver
1 Dreamweaver J. ROMAGNY I. PRESENTATION ........................................................................................................................................ 5 1. 2. CREATION/ OUVERTURE DE SITE ......................................................................................................................... 5 CREER UN NOUVEAU DOCUMENT ....................................................................................................................... 6 a. Modèles (HTML, CSS, etc.) ..................................................................................................................... 6 b. Grille fluide (Web Responsive) ............................................................................................................... 7 c. Modèles de démarrage .......................................................................................................................... 7 d. Modèles du site (Templates) .................................................................................................................. 8 3. ESPACES DE TRAVAIL ........................................................................................................................................ 8 Extract ............................................................................................................................................................ 9 4. CONCEPTEUR ............................................................................................................................................... 11 Quick Tag View .................................................................................................................................... 11 5. PANNEAUX .................................................................................................................................................. 12 a. « Fichiers » ........................................................................................................................................... 12 b. « Actifs » (Assets) ................................................................................................................................. 12 c. « Inspecteur de code » ......................................................................................................................... 12 d. e. f. g. h. i. II. Wrap Tag ................................................................................................................................................. 13 Explorateur de code (bouton ou menu contextuel) .................................................................................. 13 Insertion ............................................................................................................................................... 13 Propriétés............................................................................................................................................. 14 CSS Designer ........................................................................................................................................ 15 Transition CSS ...................................................................................................................................... 16 Fragments de code (Snippet) ............................................................................................................... 16 Validation de pages ............................................................................................................................. 16 BOX-MODEL ........................................................................................................................................... 17 1. BLOCS......................................................................................................................................................... 17 Inline .................................................................................................................................................... 17 Inline-block .......................................................................................................................................... 17 Block .................................................................................................................................................... 17 Display ................................................................................................................................................. 18 Centrer un bloc .................................................................................................................................... 18 Problème des espaces blancs............................................................................................................... 18 POSITION (FIXED, ABSOLUTE, RELATIVE)............................................................................................................ 19 Z-INDEX ....................................................................................................................................................... 19 CONTENEUR ET CONTENU ............................................................................................................................... 20 ELEMENTS FLOTTANTS (FLOAT) ........................................................................................................................ 21 Problème du conteneur ................................................................................................................................ 21 Image flottante avec texte ........................................................................................................................... 22 Capitales ....................................................................................................................................................... 22 Layout ........................................................................................................................................................... 23 a. b. c. d. e. f. 2. 3. 4. 5. 2 Colonnes layout ...................................................................................................................................................... 23 3 colonnes layout ....................................................................................................................................................... 23 « Position is everything » ........................................................................................................................................... 23 6. 7. 8. MULTI COLONNE POUR TEXTE .......................................................................................................................... 24 CLIP ........................................................................................................................................................... 24 OVERFLOW LORSQUE LE CONTENU DEPASSE DU CONTENEUR .................................................................................. 24 2 III. STRUCTURE DE LA PAGE HTML5............................................................................................................. 25 1. HEADER .................................................................................................................................................... 26 a. LOGO et menu sur la même ligne ........................................................................................................ 26 Sticky menu................................................................................................................................................................ 28 b. LOGO et menu sur une ligne chacun ................................................................................................... 29 Sticky menu................................................................................................................................................................ 31 IV. COULEURS ......................................................................................................................................... 32 LES 16 COULEURS DU WEB ...................................................................................................................................... 32 Hexadécimal ................................................................................................................................................. 32 RGB ............................................................................................................................................................... 32 Rgba (pour gérer l’opacité)........................................................................................................................... 32 HSL (« teinte saturation lumière »)/ HSLA (avec opacité) ............................................................................ 32 NUANCIER DE DREAMWEAVER ................................................................................................................................. 33 ADOBE KULER ....................................................................................................................................................... 33 V. TEXTE ..................................................................................................................................................... 34 1. 2. FONT-SIZE .................................................................................................................................................... 34 FONT-FAMILY ............................................................................................................................................... 34 a. b. c. d. e. f. 3. 4. VI. Web safe fonts : ................................................................................................................................... 35 @font-face ........................................................................................................................................... 36 Local fonts............................................................................................................................................ 36 Edge Web Font..................................................................................................................................... 37 Autres propriétés utiles ........................................................................................................................ 37 Balise time ........................................................................................................................................... 37 COLLAGE SPECIAL .......................................................................................................................................... 38 ORTHOGRAPHE............................................................................................................................................. 38 LIENS ................................................................................................................................................. 39 1. 2. 3. 4. 5. 6. LIEN ABSOLU ................................................................................................................................................ 39 LIEN RELATIF ................................................................................................................................................ 39 « SITE-ROOT » ............................................................................................................................................. 39 ANCRES....................................................................................................................................................... 39 EMAIL ......................................................................................................................................................... 39 STYLES DES LIENS .......................................................................................................................................... 39 a. Pseudo-classes : ................................................................................................................................... 39 b. Appliquer un Style de lien à tous les liens de la page........................................................................... 39 7. IMAGE MAP................................................................................................................................................. 40 8. TROUVER LES LIENS BRISES AVEC LE PANNEAU VERIFICATEUR DE LIEN ....................................................................... 41 VII. 1. IMAGE ............................................................................................................................................... 41 7. INSERER UNE IMAGE ...................................................................................................................................... 41 Propriétés ..................................................................................................................................................... 41 UTILISATION DE FIGURE POUR IMAGE AVEC LEGENDE ............................................................................................ 41 MODIFIER UNE IMAGE VERS UN EDITEUR (PHOTOSHOP OU AUTRE) ......................................................................... 42 INSERER UN FICHIER PSD ................................................................................................................................. 42 IMAGE SURVOLEE (ROLLOVER IMAGE) ............................................................................................................... 43 BACKGROUND IMAGE..................................................................................................................................... 44 Image d’arrière-plan fixe .............................................................................................................................. 45 FEUILLE DE SPRITES ET BACKGROUND-POSITION .................................................................................................. 45 VIII. LISTES ................................................................................................................................................ 46 2. 3. 4. 5. 6. LISTE A PUCES, ORDONNEE....................................................................................................................................... 46 3 MENU DE BASE...................................................................................................................................................... 46 IX. TABLE ..................................................................................................................................................... 48 IMPORTER UN FICHIER CSV...................................................................................................................................... 48 X. FORMULAIRE ......................................................................................................................................... 49 A. FORM B. FIELDSET C. LABEL .............................................................................................................................. 49 INPUT ......................................................................................................................................................... 49 TEXTAREA .................................................................................................................................................... 50 BUTTON ...................................................................................................................................................... 50 DATALIST..................................................................................................................................................... 50 SELECT ........................................................................................................................................................ 50 CASE A COCHER ............................................................................................................................................ 51 D. E. F. G. H. I. J. K. XI. ............................................................................................................................. 49 ........................................................................................................... 49 BOUTONS RADIO ............................................................................................ 51 VALIDATION HTML5 DE FORMULAIRE .............................................................................................................. 51 MEDIAS .................................................................................................................................................. 52 A. AUDIO ........................................................................................................................................................ 52 B. VIDEO ......................................................................................................................................................... 52 C. SOCIAL MEDIA ............................................................................................................................................. 53 « Share buttons » ......................................................................................................................................... 54 XII. OPTIMISATION POUR LES MOTEURS DE RECHERCHE (SEO) ............................................................... 54 XIII. SUPPORT DE JQUERY UI ET JQUERY MOBILE ...................................................................................... 55 1. 2. JQUERY UI................................................................................................................................................... 55 XIV. TRANSITIONS ..................................................................................................................................... 56 A. SYNTAXE ..................................................................................................................................................... 56 EXEMPLE ..................................................................................................................................................... 57 B. XV. 1. 2. 3. 4. 5. 6. 7. 8. JQUERY MOBILE ........................................................................................................................................... 55 WEB RESPONSIVE .............................................................................................................................. 59 VIEWPORT ................................................................................................................................................... 59 REQUETE MEDIA........................................................................................................................................... 59 Ajouter une media query avec Dreamweaver .............................................................................................. 60 Tester sa page sous différents devices/ résolutions ..................................................................................... 61 IPHONE FONT RESIZING EN MODE LANDSCAPE..................................................................................................... 61 BOX-SIZING.................................................................................................................................................. 61 ANCIENNES VERSIONS DE IE ET HTML5 ............................................................................................................ 62 12-COLUMN GRID ........................................................................................................................................ 62 960 ................................................................................................................................................................ 62 1200 .............................................................................................................................................................. 63 1500 .............................................................................................................................................................. 63 Version avec % .............................................................................................................................................. 64 Exemples d’utilisation ................................................................................................................................... 65 MENU RESPONSIVE ....................................................................................................................................... 67 a. Version avec float ................................................................................................................................ 67 b. Version avec inline-block ..................................................................................................................... 68 IMAGE « FLEXIBLE » ...................................................................................................................................... 68 4 9. IMAGE CROP ................................................................................................................................................ 69 10. GRILLES FLUIDES AVEC DREAMWEAVER ......................................................................................................... 69 CSS (« orienté Mobile First ») ............................................................................................................... 71 XVI. LESS ................................................................................................................................................... 72 XVII. TEMPLATES ........................................................................................................................................ 72 1. 1. 2. 3. ENREGISTRER UNE PAGE HTML EN TANT QUE MODELE .......................................................................................... 72 REGION MODIFIABLE...................................................................................................................................... 73 ATTRIBUT MODIFIABLE ................................................................................................................................... 73 CREER UNE PAGE A PARTIR D’UN MODELE DU SITE................................................................................................ 74 XVII. WORDPRESS AVEC DREAMWEAVER....................................................................................................... 76 1. INSTALLATION LOCALE ......................................................................................................................................... 76 2. CHILD THEME ............................................................................................................................................... 80 3. THEME PERSONNEL ....................................................................................................................................... 81 4. RESSOURCES ................................................................................................................................................ 85 5. PUBLICATION ............................................................................................................................................... 86 a. Export................................................................................................................................................... 86 b. Database Backup ................................................................................................................................. 87 c. Serveur distant ..................................................................................................................................... 88 Code Visuel (Design) Visuel (Design) Code 5 I. Présentation 1. Création/ ouverture de site Créer ou ouvrir un site existant Menu « Site » … « Nouveau Site » Pour définir un serveur FTP Dans le cas d’un site existant il suffit de naviguer jusqu’au dossier et donner un nom au site Propriétés du site … Dossier « images » du site vers lequel les images insérées seront automatiquement copiées 6 Dossier pour les web fonts Il est possible à tout moment d’éditer les propriétés du site depuis le menu « Site » .. « Gérer les sites » Extensions pour Dreamweaver (exemple Business Catalyst) 2. Créer un nouveau document Menu « Fichier » … « Nouveau » a. Modèles (HTML, CSS, etc.) 7 b. Grille fluide (Web Responsive) Permet de créer une page avec un système de grille fluide pour les sites Web Responsive. Il est possible d’éditer le nombre et la largeur des colonnes c. Modèles de démarrage 8 d. Modèles du site (Templates) Pour utiliser un Template que vous avez créé (avec Menu « Fichier » … « Enregistrer comme modèle ») 3. Espaces de travail Il existe 3 espaces de travail : - « Code » favorise l’écriture du code (peu de panneaux) « Création » favorise l’utilisation des panneaux (CSS Designer, etc.) et « Extract » permet d’extraire des éléments d’un document Photoshop On peut basculer entre les espaces de travail depuis les raccourcis ou depuis le menu « Fenêtre » 9 Extract Permet de récupérer des styles et Assets Photoshop stockés sur le Creative Cloud Il faudra ajouter une classe ou balise pour le CSS copié (ex h2). Pas de positionnement (absolu, top, etc.) contrairement au CSS copié depuis Photoshop. Copie le texte … par exemple ici « Titre H2 » « Extraire l’actif » … crée une image (png ou jpg) sauvegardée dans le dossier images par défaut du site On ajoute une balise h2 par exemple et on y copie le CSS h2{ } font-family: Roboto; color: #f04530; font-size: 24px; font-weight: 700; font-style: italic; 10 Forme avec effet Groupe : Copie les éléments un à un et non par groupe. On peut également récupérer la distance entre les éléments. On peut également glisser déposer les éléments sur la page 11 4. Concepteur Modes : a. En direct : permet d’avoir un « Aperçu » en direct de la page. Par exemple une animation Edge intégrée serait jouée b. Création : permet d’éditer directement les éléments dans la page Modes « En direct » et « Création » Modes « Inspection » Vue Code « uniquement » ou splittée Code/Page c. Inspection : affiche des informations au survol de la souris des éléments dans la page Ajout d’une classe (ou d’un id) depuis le concepteur, celle-ci est automatiquement ajoutée à la feuille de style sélectionnée Quick Tag View Lorsque le mode création (aperçu de la page) est activé. 12 5. Panneaux a. « Fichiers » On peut naviguer entre répertoires/ sites Vers vue « FTP » permet de copier des fichiers entre le répertoire local et serveur. Commandes disponibles depuis le menu contextuel : « placer » (pour envoyer un fichier), « acquérir » (recevoir un fichier) et b. « Actifs » (Assets) « synchroniser » pour Permet de lister des ressources du site (images, couleurs, liens, médias, scripts, Templates, synchroniser tous les fichiers bibliothèque) du site Si une ressource n’apparait pas, penser à les actualiser depuis le menu contextuel du panneau c. « Inspecteur de code » Ouvrir un document Réduire une balise, la sélection et développer Sélection balise parent Numéros de lignes, surlignage code invalide, renvoi à la ligne et erreurs de syntaxe Ajouter/ supprimer un commentaire, Wrap Tag Fragments de code Indentation et mise en forme du code 13 En plus des raccourcis de la barre de code. Wrap Tag Permet « d’envelopper avec une balise » un code sélectionné. Exemple je sélectionne le texte « Accueil » auquel je vais ajouter un lien … Ce qui donne Explorateur de code (bouton ou menu contextuel) Permet d’avoir un aperçu CSS depuis le HTML d. Insertion On peut utiliser le menu « Insertion » également. Plusieurs « catégories » : Commun Structure Medias Formulaire jQuery Mobile jQuery UI Modèle Favoris 14 Certains éléments proposent plusieurs choix. Exemple avec l’image e. Propriétés Affiche les propriétés et permet l’édition de l’élément sélectionné. Exemple avec un lien. Onglet « HTML » Onglet « CSS » Ouvre une boîte de dialogue permettant d’éditer le style Affiche le style dans le panneau CSS Designer Filtre des propriétés listées: 15 f. CSS Designer Permet d’ajouter des feuilles de styles, styles et leurs propriétés avec aperçu Disposition Texte Bordure Arrière-plan « plus » Permet de créer ou utiliser une feuille de style Affiche tous les styles ou seulement ceux de la feuille de Styles sélectionnée Permet d’ajouter des « media query » Les touches ↑ et ↓ permettent de réduire ou non les sélecteurs Par exemple au lieu d’avoir « body header h1 » on réduit à « h1 » N’affiche que les propriétés définies si coché, sinon affiche toutes les propriétés 16 g. Transition CSS On peut ajouter, supprimer, modifier des transitions depuis le panneau « Transitions CSS » h. Fragments de code (Snippet) On peut ajouter, éditer, supprimer de nouveau fragments. Accessible également depuis le code et la barre de l’inspecteur de code i. Validation de pages 17 II. Box-Model MARGIN BORDER PADDING 1. Blocs a. Inline Eléments sur une ligne se plaçant les uns à côté des autres (a,em,span,etc.) et n’ayant pas de taille. b, big, i, small, tt abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var a, bdo, br, img, map, object, q, script, span, sub, sup button, input, label, select, textarea Exemple deux liens : b. Inline-block Eléments sur une seule ligne et redimensionnables (select, input, img, etc.) c. Block Chaque élément occupe toute une ligne par défaut mais peut être redimensionné (p, div, section, etc.) address, article, aside, blockquote, div, footer, header, hgroup, hr, main, nav,noscript, section dd, dl, ol, ul, table, tfoot form, fielsdset, figure, figcaption h1 à h6, p, pre, output audio, video, canvas Exemple : 2 paragraphes occupent par défaut toute la largeur de ligne 18 .. Mais sont redimensionnables d. Display Changer le mode d’affichage avec la propriété CSS display. Exemple on transforme un lien (inline) en block a{ display: block; } e. Centrer un bloc Pour centrer un bloc, définir sa largeur (width) et Margin sur auto body{ } width:960px; margin:0 auto; f. Problème des espaces blancs (environ 4px) ajoutés entre les éléments inline-block Espace blanc (4px) entre deux div « inlineblock » Solution : supprimer tout espace dans le code HTML entre les div Variante avec un commentaire en plus indiquant l’espace blanc Aide et autres bidouilles en CSS 19 2. Position (Fixed, Absolute, Relative) Static : position par défaut. Eléments pas affectés par top, left , etc. Fixed : la div scroll en même temps que la page (verticalement mais aussi horizontalement) .Comme « absolu », on peut définir top, left, right, bottom. Absolute : il permet de placer l’élément n'importe où dans la page (en haut, à gauche, en bas, etc.), l’élément ne scroll pas avec la page. Le navigateur agit comme si l’élément n’avait pas de largeur ni d’hauteur. Div bleue bien que placée après dans le code ignore la div rouge Div en position « Absolute », avec top et right définis pour le placer dans la page. Relative : l’élément est décalé par rapport à lui-même et sa position initiale Position « Relative » + top et left réglés à 70px 3. z-index Permet d’indiquer les éléments au « premier plan » 20 4. Conteneur et contenu Un élément de contenu « Fixed » ou « Absolute » peut avoir un conteneur en position « Relative » comme repère. CSS #container{ position:relative; width:400px; height:400px; background-color:rgba(242,117,76,1.00); } #content{ position:absolute; width:50px; height:50px; background-color:red; left:100px; bottom:50px; z-index:999; } HTML <body> <div id="container"> <div id="content"> </div> </div> Conteneur Le contenu est placé à 50px du bas et 50px à gauche de son conteneur et non pas de la page 21 5. Eléments flottants (Float) Les éléments peuvent être placés : à gauche (left) à droite (right) … Et sortent du flot normal du document ou on réinitialise le flot normal du document avec clear (left, right ou both) Exemples : 3 blocs avec float à left 2 blocs avec float left, le bloc vert étant à clear : both. Problème du conteneur Exemple une section se ferme avec 3 boites flottantes. Plusieurs solutions : - S’assurer qu’il y a un élément après les boites (exemple un paragraphe) - Utiliser « overflow :hidden » sur le conteneur (section ici) mais peut poser des problèmes - Ou utiliser « clearFix ::after » On peut créer des classes utilisables pour positionner les éléments .floatLeft{ float: left;} .floatRight{float: right; } .clearFix::before, .clearFix::after { content: ""; display: table; } .clearFix::after { clear:both; } 22 Image flottante avec texte Image sur « float :left » CSS div{background-color:lightblue;} img{ float:left; margin:0 1em 1em 0; } div h3{ clear:both; } .clearFix::before, .clearFix::after { content: ""; display: table; } .clearFix::after { clear:both; } HTML <div class="clearFix"> <img src="images/arcenciel_nuages.png"> <p>Lorem ipsum dolor sit amet, consectetur ….</p> <h3>Un second pararagraphe "clear"</h3> <p>Curabitur sodales lectus a eros vestibulum placerat. dignissim…</p> </div> Capitales CSS p:first-of-type:first-letter{ float:left; font-family:'Times New Roman',serif; font-size:4em; margin:0 5px 0 0; line-height: .7; } 23 Layout 2 Colonnes layout 1ère solution - 1ere colonne float left - 2eme avec margin-left = width de la colonne 1 + margin 2ème solution - 1ere colonne float left, margin-right définie si on veut un espace entre les deux colonnes seconde float left ème 3 solution - 1ere colonne float left - 2eme colonne float right, sa taille va déterminer la marge entre les 2 colonnes 3 colonnes layout 1ère solution - 1ère colonne et 2ème colonne float left chacune une marge à droite si besoin d’espace (margin-right) 3ème colonne float right 2ème solution - Colonne 1 puis colonne 3 et enfin colonne 2 dans le HTML Colonne 1 en float left Colonne 3 en float right Colonne 2 on ne définit pas de float mais seulement sa marge (margin :0 auto) ppour que la colonne se centre entre les autres. « Position is everything » Aligner 2 colonnes n’ayant pas la « même longueur » section, aside{ padding-bottom:1000em; margin-bottom:-1000em; } article{ overflow:hidden; } http://www.positioniseverything.net/ Un « article » ayant une colonne « section » à gauche «et une colonne « aside » à droite 24 6. Multi colonne pour texte CSS « count » nombre de colonnes .three-columns-text { column-count: 3; column-gap: 10px; -moz-column-count: 3; -moz-column-gap: 10px; -webkit-column-count: 3; -webkit-column-gap: 10px; } « gap » (gouttière) espace entre colonnes Article Alsacréations 7. Clip Sélection du cercle Rect(top,right,bottom, left) Requiert la position absolue ou fixe CSS img{ } position:absolute; clip:rect(50px,600px,300px, 350px); 8. overflow lorsque le contenu depasse du conteneur hidden : ce qui dépasse est caché visible : ce qui dépasse est affiché auto et scroll : des scrollbars sont ajoutées au contenu 25 III. Structure de la page HTML5 L’en-tête (header) avec la barre de navigation (nav) Section, articles et aside pour le contenu. Note : une section peut aussi avoir un en-tête et pied de page Le pied de page (footer) avec l’adresse (address) notamment <!DOCTYPE html> <html class="html" lang="fr-FR"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="default.css" rel="stylesheet" type="text/css" /> <title></title> </head> <body> <header> <nav> <ul> <li><a href="#" class="active">Home</a></li> <li><a href="#">Gallery</a></li> <li><a href="#">Contact</a></li> <li><a href="#">About us</a></li> </ul> </nav> <div id="hero"><img src="Images/hero.png" alt="" /></div> </header> <section></section> <footer></footer> </body> </html> 26 1. HEADER a. LOGO et menu sur la même ligne MENU LOGO Header Conteneur .container { width: 960px; height: 100%; margin: 0 auto; } .floatLeft { float: left; } .floatRight { float: right; } .clearFix::before, .clearFix::after { content: ""; display: table; } .clearFix::after { clear:both; } body { margin: 0; padding: 0; } /* HEADER */ header{ /*position:fixed;*/ width:100%; background: #1c1c1c; height:50px; } .logo{ float:left; } Header fixe 27 Menu flottant à droite nav{ float:right; } nav ul{list-style-type:none;} nav ul li{ display:inline; padding: 0 5px 0 0; } nav ul li a{ padding: 10px; font-family: "Source Sans Pro", Helvetica, sans-serif; font-size: 1em; text-decoration: none; text-transform: uppercase; color: #888; -webkit-transition: color .2s ease-in; -moz-transition: color .2s ease-in; -ms-transition: color .2s ease-in; -o-transition: color .2s ease-in; transition: color .2s ease-in; } nav ul li a:hover { color: #f7bd1e; } Champ « search » input.search { width: 140px; height: 20px; margin: 10px 10px 0 0; padding: 4px 4px 4px 30px; border-radius: 5px; border: 1px solid rgb(150,150,150); background: rgb(255,255,255) url('images/search.png') no-repeat 4px 4px; } 28 Champ de HTML recherche à droite <header> <div class="container"> <div class="logo"><a href="#"><img src="images/logo.png" alt=""></a></div> <!--<input type="text" name="search" class="search floatRight">--> <nav> <ul> <li><a href="#">Accueil</a></li> <li><a href="#">Galerie</a></li> <li><a href="#">A propos</a></li> <li><a href="#">Contact</a></li> </ul> </nav> </div> </header> Sticky menu Menu en position fixed. Ajouter du padding-top et bottom au header ainsi qu’une transition header{ position: fixed; width: 100%; height: 50px; padding: 25px 0; background: #1c1c1c; -webkit-transition: padding 0.2s ease-in; -o-transition: padding 0.2s ease-in; transition: padding 0.2s ease-in; } jQuery (en bas de la page) <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { On met le padding à 0 et on $(window).scroll(function() { change le logo pour un plus petit if ($(window).scrollTop() >= 100) { $('header').css('padding', '0'); $(".logo img").attr("src", "images/logoalt.png"); } else { $('header').css('padding', '25px 0'); $(".logo img").attr("src", "images/logo.png"); } }); }); </script> 29 b. LOGO et menu sur une ligne chacun LOGO MENU .container { width: 960px; height: 100%; margin: 0 auto; } .floatLeft { float: left; } .floatRight { float: right; } .clearFix::before, .clearFix::after { content: ""; display: table; } .clearFix::after { clear:both; } body { margin: 0; padding: 0; height:1500px; } /* HEADER */ header{ /*position:fixed;*/ width:100%; background: #1c1c1c; } .logo{ padding:20px 0; } .logo img{ display:block; margin:0 auto;} HEADER Conteneur 30 MENU nav{ background-color: #252525; } nav ul{ margin:0; padding:0; list-style-type:none; } nav ul li{ float:left; width:25%; padding:3px 0; } nav ul li a{ display:block; text-align:center; padding: 10px; font-family: "Source Sans Pro", Helvetica, sans-serif; font-size: 1em; text-decoration: none; text-transform: uppercase; color: #888; -webkit-transition: color .2s ease-in; -moz-transition: color .2s ease-in; -ms-transition: color .2s ease-in; -o-transition: color .2s ease-in; transition: color .2s ease-in; } nav ul li a:hover { color: #f7bd1e; } HTML <header> <div class="container"> <div class="logo"><a href="#"><img src="images/logo.png" alt=""></a></div> <nav class="clearFix"> <ul> <li><a href="#">Accueil</a></li> <li><a href="#">Galerie</a></li> <li><a href="#">A propos</a></li> <li><a href="#">Contact</a></li> </ul> </nav> </div> </header> 31 Sticky menu jQuery (en bas de la page) .Menu en position fixed <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script> $(document).ready(function() { Effet de slide, on $(window).scroll(function() { affiche et cache le logo if ($(window).scrollTop() >= 100) { avec une transition $('.logo').slideUp(1000); d’une seconde } else { $('.logo').slideDown(1000); } }); }); </script> 32 IV. Couleurs Les 16 couleurs du Web Hexadécimal #FFFFFF RGB rgb(194,198,74) Valeurs comprises entre 0 et 255 Rgba (pour gérer l’opacité) Compris entre 0 (transparent) et 1 (visible) background-color: rgba(255, 0, 0, 0.5); HSL (« teinte saturation lumière »)/ HSLA (avec opacité) hsla(120,5%,40%,0.50); Couleur (ex 120 = vert), saturation en %, lightness en %, opacité 33 Nuancier de Dreamweaver Ajout de la couleur sélectionnée au nuancier Adobe Kuler Permet de créer, trouver des thèmes facilement et les utiliser. https://color.adobe.com/fr/create/color-wheel/ On peut utiliser le panneau Extract pour extraire par exemple un nuancier que l’on aurait réalisé avec Photoshop (*.psd). 34 V. Texte 1. font-size Taille absolue (en px) ou relative (en %, em) s'adapte plus facilement Avec xx-small, x-small, small , medium , large, x-large, xx-large … Exemple p{ font-size: small; } h1{ font-size: large; } Avec em … 1em représente la taille normale. 1.6 par exemple pour grossir ou 0.8 pour diminuer Formule pour calculer la taille avec em correspondante à une taille en px : Taille désirée en px / taille de base en px= taille em De base 1em = 16px. Si on veut calculer pour une taille de police de 24px : 24px/16px =1.5em On peut tester le comportement de la police depuis Dreamweaver lorsqu’on augmente ou réduit la taille de la police (en mode « Création ») Menu « Affichage » … « Rendu du Style » 2. font-family Depuis la propriété font-family du panneau CSS designer on a accès … « Local font » ajoutée « Edge Web Font » ajoutée Ouvre une boite de dialogue pour ajouter une nouvelle police 35 a. Web safe fonts : Arial Arial Black Comic Sans MS Courier New Georgia Impact Times New Roman Trebuchet MS Verdana Indiquer plusieurs polices body{ font-family: Impact, "Arial Black", Arial, Verdana, sans-serif; } Custom font avec Dreamweaver On peut sélectionner ou ajouter sa propre liste 36 b. @font-face Le navigateur des visiteurs télécharge automatiquement le fichier de la police @font-face { font-family: 'MaPolice'; src: url('MaPolice.eot'); } Utilisation de la police h1 { font-family: 'LearningCurveProRegular', Arial, serif; } c. Local fonts Parcourir jusqu’au dossier de la font Cocher « je détiens la License… » puis « Ajouter » (CSS ajouté par Dreamweaver) Quelques sites de fonts :fontsquirrel.com , dafont.com , Google fonts Google font – Exemple d’utilisation <link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'> <style> p{ font-family: 'Lobster', cursive;} </style> 37 d. Edge Web Font (CSS ajouté par Dreamweaver) + Script e. Autres propriétés utiles Italic, normal avec font –style Gras avec font-weight :bold Décorations underline : souligné. line-through : barré. overline : ligne au-dessus. Alignement avec text-align (left, center, right ou justify) Ombre avec text-shadow h1{ text-shadow: 2px 2px 4px black; } Text-transform capitalize (mettre la première lettre du ou des mots en majuscule) Font-variant : small-caps pour mettre le texte en majuscules. Indentation avec text-indent (à 1em par exemple) f. Balise time http://www.alsacreations.com/article/lire/1386-html5-element-time.html 38 3. Collage spécial Exemple copier un texte depuis Word (avec titre, paragraphes) et le coller dans Dreamweaver (dans une balise article) On peut aussi copier-coller directement dans la page en mode « Création ». 4. Orthographe Depuis le menu « Commandes » … « Orthographe » il est possible de trouver les fautes d’orthographe et les corriger. Suggestions pour corriger l’erreur On peut changer la langue du dictionnaire (ici « Français ») depuis le Menu « Edition » … « Préférénces »… Onglet « Général » 39 VI. Liens 1. Lien absolu 2. Lien relatif 3. « Site-root » 4. Ancres Créer une ancre (utile pour les pages avec menu fixe par exemple) Dans la même page On dirige vers un élément de la page par l’ID Ancre d’une autre page 5. Email 6. Styles des liens a. Pseudo-classes : a :hover (souris au-dessus du lien) a :active (clic) a :link (page pas encore visitée) a :visited (page visitée) b. Appliquer un Style de lien à tous les liens de la page Menu « Modifier » …. « Propriétés de la page » Le CSS généré est ajouté dans la balise Style de la page. 40 7. Image Map Il suffit d’insérer une image puis depuis les propriétés de l’image Outils sélection, zone réactive rectangulaire, On utilise les outils de zone réactive circulaire et polygonale … Code généré <img src="images/dessin.png" alt="" usemap="#Map"/> <map name="Map"> <area shape="rect" coords="75,61,245,231" href="#"> <area shape="circle" coords="464,179,102" href="#"> <area shape="poly" coords="195,360,195,463,366,462,368,513,536,413,369,312,367,361" href="#"> </map> 41 8. Trouver les liens brisés avec le panneau vérificateur de lien Menu « Fenêtre » … « Résultats »… « Vérificateur de lien » Trouver les liens brisés du site VII. Image 1. Insérer une image Depuis le panneau « Insertion » ou le menu «du même nom. On peut également l’ajouter depuis le panneau « Actifs » (Assets) On peut définir dans les propriétés du site (Menu « Site » … « Gérer les sites ».. onglet « Infos locales ») le répertoire par défaut vers lequel les images insérées seront copiées automatiquement. Propriétés - alt texte affiché en remplacement de l’image - title infobulle <img src="images/nuage.jpg" alt="Photo de nuage" title="Un beau nuage bleu ! " /> Formats : JPEG ou PNG pour les images, GIF animé 2. Utilisation de figure pour image avec légende On peut avoir plusieurs images (ou autre élément) <figure> <img src="../images/plage.jpg" alt=""/> <figcaption>Une belle plage</figcaption> </figure> Note : la légende (figcaption) peut être avant ou après l’image. 42 3. Modifier une image vers un éditeur (Photoshop ou autre) Depuis les proprités de l’image cliquer sur le bouton Par défaut l’image est ouverte dans Photoshop. On peut modifier depuis les Préférences(Menu « Edition ».. « Préférences ») 4. Insérer un fichier psd Glisser déposer depuis l’explorateur de fichiers 43 … Une image au format est ensuite enregistrée dans le répertoire « images » du site. Icône indiquant que le fichier est synchronisé avec le psd. Si on effectue des modifications (et que l’on sauvegarde) depuis Photoshop … on peut appliquer les modifications depuis le panneau « Propriétés » de l’image. Le fichier original (psd) est indiqué 5. Image survolée (Rollover image) Depuis le menu ou le panneau « Insertion » Image normale Image survolée 44 Aperçu … Survol 6. Background image On peut définir les propriétés d’une image d’arrière-plan (no-repeat, mosaïque, etc.) + couleur de fond (en cas de dépassement de l’image) depuis propriétés de la page (Menu « Modifier »… « Propriétés de la page ») En CSS body { background: url("nuage.png") fixed no-repeat top right; } Plusieurs images de fond body { background: url("nuage.png") fixed no-repeat top right, url("nuage_alternatif.png") fixed; } 45 Image d’arrière-plan fixe body { background-image: url(images/backgroundimage.jpg); background-size: cover; background-attachment: fixed; } 7. Feuille de Sprites et background-position <a href="#" class="ico ico-facebook"><span>Facebook</span></a> CSS a.ico {background:url('images/icons.png') no-repeat 0 0;} a.ico-facebook, a.ico-twitter { height:16px; width:16px; } a.ico-facebook { background-position:0 0; } a.ico-twitter { background-position:-16px 0; } a.ico span{display:none;} http://www.alsacreations.com/tuto/lire/1068-sprites-css-background-position.html 46 VIII. Listes Liste à puces, ordonnée Liste à puces <ul> <li>Pomme</li> <li>Poire</li> <li>Pèche</li> </ul> Liste ordonnée (avec numéro) <ol> <li>Pomme</li> <li>Poire</li> <li>Pèche</li> </ol> Menu de base HTML <header> <h1>Titre de la page</h1> <nav> <ul> <li><a class="active" href="index.html">Accueil</a></li><li><a href="gallery.html">Galerie</a></li><li><a href="aboutus.html">A propos</a></li><li><a href="contact.html">Contact</a></li></ul> </nav> </header> CSS body{margin:0 auto;} ul{padding:0;} Version avec inline-block ul li{ list-style-type:none; Remplacer float par display : inlinefloat:left; block width:25%; Attention également aux espaces } blancs dans le code HTML ul li a{ display:block; background-color:rgba(85,67,67,1.00); text-align:center; color:white; text-decoration:none; padding:5px 0 5px 0; } ul li a:hover{ background-color:deepskyblue; } 47 Astuces Menu avec images : - Image en background des liens (balise « a ») du menu avec repeat x Image (ou effet CSS) pour mouse hover sur le lien Image en background pour la liste (balise « ul ») avec tailles (width et height) Menu avec image au-dessus du lien au survol - Ajouter du padding top au lien (balise « a ») et ajouter une image en background du lien à mouse hover Exemple : background: url(../images/monimage.jpg) no-repeat center 10px; Afficher la page active dans le menu - Créer une classe « active » par exemple avec personnalisation CSS pour le lien correspondant à la page. Exemple pour la page home dans le menu <a href= »home.html » class= »active »>HOME</a> 48 IX. Table Insérer un tableau depuis le panneau « Insertion » <table width="200" border="1" summary="Liste de contacts sur twitter"> <caption> Liste de contacts twitter </caption> <tbody> <tr> <th scope="col"> </th> <th scope="col"> </th> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> </tr> </tbody> </table> Importer un fichier CSV Menu « Fichier » … « Importer des données tabulaires » 49 X. Formulaire Utiliser l’onglet « Formulaire » du panneau « Insertion » pour insérer des éléments de formulaire facilement. Regrouper les champs avec fieldset a. Form Attributs : id, method, action, etc. <form id="userForm" method="post" action="service.php" novalidate> </form> b. Fieldset Grouper des éléments <form> <fieldset><legend>Vos informations</legend> < !-- champs --> </fieldset> <fieldset><legend>Vos coordonnées</legend> < !-- champs --> </fieldset> </form> Attribut disabled c. Label Étiquette pour un champ <label for="userName">Nom : <input id="userName" name="userName" type="text" placeholder="Entrez votre nom" required> </fieldset> d. Input type : button checkbox color date datetime datetime-local email file hidden image 50 month number password radio range reset search submit tel text time url week Attributs : - Selection auto avec autofocus <input type="text" name="first" id="first" autofocus /> - Placeholder <input type="text" name="first" id="first" placeholder="Entrez votre prénom" /> - Validation : Rendre obligatoire (required) <input type="text" name="first" id="first" required /> + min, max, step, pattern, title (info bulle) e. Textarea zone de texte multi lignes f. Button <button>Click !</button> g. Datalist <input list="fruits"> <datalist id="fruits"> <option value="Pomme"> <option value="Pêche"> <option value="Poire"> </datalist> h. Select drop down list + option (item de select) <label for="fruits">Quel fruit ?</label><br /> <select name="fruits" id="fruits"> <option value="pomme">Pomme</option> <option value="poire">Poire</option> </select> 51 i. Case à cocher <input type="checkbox" name="choix" checked /> j. Boutons radio <p> <label> <input type="radio" name="fruits" value="Poire" id="fruits_0"> Poire</label> <br> <label> <input type="radio" name="fruits" value="Pomme" id="fruits_1"> Pomme</label> <br> </p> k. Validation HTML5 de formulaire Attributs required, minlength/maxlength, min/max, pattern, novalidate (formulaire validé malgré les erreurs), placeholder, etc. http://www.alsacreations.com/tuto/lire/1370-formulaire-html5-placeholder-requiredpattern.html, http://www.w3.org/TR/html5/forms.html 52 XI. Médias Utiliser l’onglet « Médias » du panneau « Insertion » Insérer une animation Edge (*.oam) Vidéo avec les contrôles, etc. Musique Un « objet Flash » Une vidéo Flash a. Audio Formats :MP3, OGG (format libre), AAC (Apple sur iTunes) et WAV (format non compressé) MP3 IE Ok Chrome Ok Ok Ok Firefox Safari OGG Ok Ok Opera <audio src="music.mp3" controls></audio> b. Vidéo Besoin de : - « Format conteneur » (avi, mp4,…) Un codec audio : (mp3, ogg…) Un codec vidéo (H.264, Ogg Theora, WebM) H.264 IE Ogg Theora Ok WebM Ok Chrome Ok Ok Firefox Ok Ok Ok Ok Safari Ok Opera Ok Utiliser Adobe Media Encoder CC ou Microsoft Expression Encoder (gratuit) pour encoder les vidéos pour le web. 53 <video width="1280" height="780" id="player" title="Animation Photoshop plage et nuage" poster="images/plage_nuage_et_nom.jpg" controls > <source src="media/plage_avec_nuage.mp4" type="video/mp4"> </video> Propriétés YouTube/ Vimeo Avec embed, object ou avec le code fourni du sur la page YouTube/ Vimeo de la vidéo depuis « Partager » ... « Intégrer » c. Social Media Exemple avec Twitter On crée un Widget (depuis les paramètres du compte) Il suffit de copier le code à insérer dans sa page 54 « Share buttons » https://developers.facebook.com/docs/plugins/like-button https://developers.google.com/+/web/+1button/?hl=fr https://about.twitter.com/resources/buttons#tweet https://developer.linkedin.com/plugins/share XII. Optimisation pour les moteurs de recherche (SEO) Pour chaque page. Menu « Insertion »… « Head » … Mots-clés Description Viewport Propriété « title » des images. 55 XIII. Support de jQuery UI et jQuery Mobile 1. jQuery UI Référencer jQuery et jQuery UI avec CDN ou localement. CDN : Google, Microsoft, cdnjs, Télécharger les sources sur le site de jQuery Exemple avec CDN google <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/themes/smoothness/jqueryui.css" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jqueryui.min.js"></script> Utiliser ensuite les Widgets de l’onglet « jQuery UI » du panneau « Insertion » (ou depuis le menu « Insertion ») 2. jQuery Mobile Référencer jQuery et jQuery Mobile avec CDN ou localement. Exemple avec CDN Google <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js"></scri pt> Utiliser ensuite l’onglet « jQuery Mobile » du panneau « Insertion » (ou depuis le menu « Insertion »). Note : si vous n’avez pas référencé jQuery et jQuery Mobile à l’ajout du premier Widget. 56 Une boite de dialogue permettant de sélectionner les fichiers jQuery Mobile s’ouvre : Fichiers ajoutés au site (Local) ou utilisation d’un CDN. Changer les chemins. Ajout d’une page On peut indiquer l’ID et si on veut l’en-tête et le pied (data-role) Code généré <div data-role="page" id="pageOne"> <div data-role="header"> <h1>En-tête</h1> </div> <div data-role="content">Contenu</div> <div data-role="footer"> <h4>Pied de page</h4> </div> </div> On peut ajouter d’autres pages jQuery dans la même page HTML XIV. Transitions N’importe quelle propriété peut être animée a. Syntaxe transition-property : property_name ; transition-duration: duration ; transition-timing-function : timing_funtion ; transition-delay : delay ; Ou raccourci Durée de l’animation Easing : ease, linear, ease-in, ease-out, ease-in-out Délai (optionnel) -webkit-transition : property_name duration timing_function delay ; -moz-transition : property_name duration timing_function delay ; 57 -o-transition : property_name duration timing_function delay ; -transition : property_name duration timing_function delay ; Utiliser le panneau « CSS Transition » pour ajouter une ou plusieurs transitions b. Exemple On a un overlay. Il est caché par défaut et apparait quand la souris passe dessus. On ajoute une transition. HTML <div id="container"> <img src="images/raiden-poster.jpg" width="250" height="141" /> <div class="overlay"><a href="#" class="title">RAIDEN</a></div> </div> Appliquer cette règle On se place sur l’overlay et on ajoute une transition depuis le panneau « Transition CSS » à toutes les propriétés ou seulement à celle indiquée Cible et « événement » Durée de la transition en secondes ou millisecondes(s ou ms) Délai de déclenchement (optionnel) Valeur de fin de la propriété On peut ajouter, supprimer, modifier des transitions depuis le panneau « Transitions CSS » 58 CSS #container{ position:relative; width:250px; height:141px; Le conteneur en background-color:#FFFFFF; position relative et overflow:hidden; l’overlay en position margin:0; absolue pour le display:inline-block; placer sur l’image } .overlay { position: absolute; background: rgba(201,22,66,0.60); top: 0; bottom: 0; left: 0; right: 0; opacity: 0; -webkit-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; transition: all 1s ease-in-out; Code ajouté après ajout } de la transition avec le .title{ panneau « Transition position: absolute; CSS » top: 0; left: 0; right: 0; color: #FFFFFF; text-decoration: none; font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, sans-serif; padding-top: 10px; background-size: contain; text-align: center; bottom: 0px; } .overlay:hover { -webkit-opacity: 1; opacity: 1; } 59 XV. Web Responsive On distingue 2 types de disposition : - Fixe : Tailles et marges fixes en pixels (px). La page ne se redimensionne pas. Fluide (ou « flexible ») : Tailles et marges définies en % et em. La page se redimensionne et ses éléments s’adaptent. On peut définir une taille min et max pour le corps (body) et les éléments, ce qui a pour effet d’interrompre leur « flexibilité ». A cela s’ajoute les media queries qui permettent de définir une version de page selon une résolution. 1. Viewport Les navigateurs Mobiles simulent une largeur d'écran (viewport). Demander à ce que le viewport soit le même que la largeur de l'écran : <meta name="viewport" content="width=device-width, inital-scale=1" /> Définir la largeur : <meta name="viewport" content="width=320" /> 2. Requête Média Requête media En lien : une feuille de style par device + règle média dans le lien <link href="css/default.css" rel="stylesheet" type="text/css" > <link href="css/tablet.css" rel="stylesheet" type="text/css" media="screen and (max-width: 768px)" > <link href="css/mobile.css" rel="stylesheet" type="text/css" media="screen and (max-width: 1200px)" > Attention à bien conserver les espaces Dans la (ou les) feuille(s) de Styles @media screen and (max-width: 1280px) { } Exemples @media screen and (max-width: 1280px) @media all and (min-width: 1024px) and (max-width: 1280px) @media tv @media all and (orientation: portrait) color (en bits/pixel) height min-height max-height width min-width max-width device-height device-width orientation(portrait ou paysage) @media screen and (max-width: 1280px), screen and … media (sortie) : all screen tv projection print handheld Combinées avec : only, and, not 60 Si on veut éviter que les anciens navigateurs (IE6) lisent, utilisation de only @media only screen … Portrait Mobile 320x480 Tablette 768x1024 Tailles d’écrans mobiles, tablettes et desktop Paysage 480x320 1024x768 Desktop First /* default – desktop */ /* tablette */ @media (max-width: 768px) { } /* mobile*/ @media (max-width: 480px) { Héritage CSS } Mobile First /* default-mobile*/ /* tablette */ @media (min-width: 768px) { } /* desktop */ @media (min-width: 1200px) { Héritage CSS } Utiliser « max-width » pour empêcher l’héritage de Styles. Ajouter une media query avec Dreamweaver Depuis le panneau « CSS Designer » Permet d’ajouter une media query La page affiche automatiquement l’aperçu pour la media query sélectionnée 61 Ajout des différentes règles Aperçu Il est possible également de dupliquer des CSS vers une media query Tester sa page sous différents devices/ résolutions Depuis Dreamweaver … On peut régler sur « Taille réelle » et tester les déformations de sa page Extension Chrome Screenfly, Edge Inspect, Opera Mobile Emulator, Tester sa page sur IE6,IE7, etc. 3. iPhone Font resizing en mode landscape Prévenir le redimensionnement (grossissement) de la police en mode paysage pour iPhone. html {-webkit-text-size-adjust: none; } 4. Box-sizing *{ box-sizing : border-box ;} 62 5. Anciennes versions de IE et HTML5 Pour que les versions antérieures à IE9 <head> comprennent HTML5 et les media queries <meta charset="utf-8" /> <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3mediaqueries.js"></script> <![endif]--> <title> </title> </head> HTML5SHIV 6. 12-column Grid Il existe des frameworks CSS 960gs, gridiculous ou encore notjustagrid. On peut également créer ses grilles soi-même. 960 .container { margin: 0 auto; width: 960px; } .row::after { content:''; display: block; clear:both; } .column-12,.column-11,.column-10,.column-9,.column-8,.column-7,.column-6,.column5,.column4,.column-3,.column-2,.column-1{ float:left; margin:0 10px; } .column-12{ width:940px;} .column-11{ width:860px;} .column-10{ width:780px;} .column-9{ width:700px;} .column-8{ width:620px;} .column-7{ width:540px;} .column-6{ width:460px;} .column-5{ width:380px;} .column-4{ width:300px;} .column-3{ width:220px;} .column-2{ width:140px;} .column-1{ width:60px;} 63 1200 .container { margin: 0 auto; width: 1200px; } .row::after { content:''; display: block; clear:both; } .column-12,.column-11,.column-10,.column-9,.column-8,.column-7,.column-6,.column5,.column4,.column-3,.column-2,.column-1{ float:left; margin:0 10px; } .column-12{ width:1180px;} .column-11{ width:1080px;} On pourrait utiliser display : inline.column-10{ width:980px;} block à la place de float. Attention .column-9{ width:880px;} toutefois aux espaces blancs dans le .column-8{ width:780px;} HTML .column-7{ width:680px;} .column-6{ width:580px;} .column-5{ width:480px;} .column-4{ width:380px;} .column-3{ width:280px;} .column-2{ width:180px;} .column-1{ width:80px;} 1500 .container { margin: 0 auto; width: 1500px; } .row::after { content:''; display: block; clear:both; } .column-12,.column-11,.column-10,.column-9,.column-8,.column-7,.column-6,.column5,.column4,.column-3,.column-2,.column-1{ float:left; margin:0 10px; } .column-12{ width:1480px;} .column-11{ width:1355px;} .column-10{ width:1230px;} .column-9{ width:1105px;} .column-8{ width:980px;} .column-7{ width:855px;} .column-6{ width:730px;} .column-5{ width:605px;} .column-4{ width:480px;} .column-3{ width:355px;} .column-2{ width:230px;} .column-1{ width:105px;} 64 Version avec % .container { margin: 0 auto; Exemple pour 960px width: 960px; } .row::after { content:''; display: block; clear:both; } .column-12,.column-11,.column-10,.column-9,.column-8,.column-7,.column-6,.column5,.column4,.column-3,.column-2,.column-1{ float:left; margin:0 1%; } .column-12{ width:98%;} .column-11{ width:89.666%;} .column-10{ width:81.333%;} .column-9{ width:73%;} .column-8{ width:64.666%;} .column-7{ width:56.333%;} .column-6{ width:48%;} .column-5{ width:39.666%} .column-4{width:31.333%;} .column-3{width:23%;} .column-2{width:14.666%} .column-1{width:6.333%} Version avec « padding » .row::after { content:''; display: block; clear:both; } .column-12, .column-11, .column-10, .column-9, .column-8, .column-7, .column-6, .column-5, .column-4, .column-3, .column-2, .column-1 { float: left; padding: 0 2%; } .column-12 { width: 100%; } .column-11 { width: 91.666%; } .column-10 { width: 83.333%; } .column-9 { width: 75%; } .column-8 { width: 66.666%; } .column-7 { width: 58.333%; } .column-6 { width: 50%; } .column-5 { width: 41.666%; } .column-4 { width: 33.333%; } .column-3 { width: 25%; } .column-2 { width: 16.666%; } .column-1 { width: 8.333%; } 65 Exemples d’utilisation <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Grid system</title> <style type="text/css"> body{margin: 0;} .green{background-color: green;} .red{background-color: red;} .blue{background-color: blue;} </style> <link rel="stylesheet" type="text/css" href="css/grid960.css" /> </head> <body> <div class="container green"> <div class="row"> Une ligne avec 6 <div class="column-2 red">1</div> colonnes <div class="column-2 red">2</div> <div class="column-2 red">3</div> <div class="column-2 red">4</div> <div class="column-2 red">5</div> <div class="column-2 red">6</div> </div> <div class="row"> <div class="column-1 blue">1</div> <div class="column-1 blue">2</div> </div> </div> </body> </html> 66 Autre exemple 3 boites qui se superposent sur mobile. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <title>Responsive</title> <style> *{ box-sizing : border-box ;} body{ margin: 0; } .container { margin: 0 auto; width: 960px; } .row::after { content:''; display: block; clear:both; } .column-4 { float: left; width: 33.33%; } .column-4{ width:300px; float:left; margin:0 10px; background-color:red; } @media (max-width: 480px){ .column-4 { width: 100%; margin: 0; background-color:lightblue; } } </style> </head> <body> <div class="container"> <div class="row"> <div class="column-4">box 1</div> <div class="column-4">box 2</div> <div class="column-4">box 3</div> </div> </div> </body> </html> 3 colonnes sur une ligne par défaut … se superposent sur mobile Pour l’exemple on fait simple mais cela pourrait être 3 « aside » avec une image (svg) et un texte en dessous, ou bien 2 articles et un aside 67 7. Menu Responsive Bureau Mobile a. Version avec float Bureau body{margin:0 auto;} ul{padding:0;} ul li{ list-style-type:none; float:left; width:25%; } ul li a{ display:block; background-color:rgba(85,67,67,1.00); text-align:center; color:white; text-decoration:none; padding:5px 0 5px 0; } ul li a:hover{ background-color:deepskyblue; } Float et width (divisée par le nombre de menus) Mobile @media all and (max-width: 480px) { ul li{ clear:both; width:100%; } } Clear et taille sur toute la largeur 68 b. Version avec inline-block body{margin:0 auto;} header ul{padding:0;} ul li{ display:inline-block; width:25%; list-style-type:none; } ul li a{ display:block; background-color:rgba(85,67,67,1.00); text-align:center; color:white; text-decoration:none; padding:5px 0 5px 0; } ul li a:hover{ background-color:deepskyblue; } Mobile @media all and (max-width: 480px) { ul li{ display:block; width:auto; } } HTML Block et dimension réglée sur auto (pour que la taille ne reste pas sur 25%) Attention ! bien gérer les espaces blancs au passage inline-block <header> <h1>Menu Responsive</h1> <ul><li><a href="#">Home</a></li><li><a href="#">Gallery</a></li><li><a href="#">About us</a></li><li><a href="#">Contact</a></li></ul> </header> 8. Image « flexible » Exemple avec une image flottante dans un paragraphe. En redimensionnant la page la taille de l’image s’adapte 69 p img{ float:left; width:30% } 9. Image crop On définit une image de fond pour une div. En redimensionnant la page, l’image est partiellement cachée. .img-crop{ height:585px; background:url(images/plage_nuage.jpg) no-repeat; } 10. Grilles fluides avec Dreamweaver Permet de définir la structure de sa page facilement et gère automatiquement le passage des colonnes « horizontal » « vertical » selon la taille de la page. Menu « Fichier »… « Nouveau » … Onglet « Mise en forme de grille fluide » 70 On demande ensuite d’enregistrer la feuille de styles (la nommer par exemple « fluid-grid.css ») et l’enregistrer dans le dossier de css du site. Boilerplate.css (boilerplate) et respond.min.js (respond) sont ajoutés également au site et référencés dans la page. La page ressemble à cela On peut basculer entre la résolution pour téléphone, tablette et bureau 71 Lorsque l’on insère un élément dans la page (depuis le panneau « Insertion »), exemple avec « section » … la classe « fluid » est automatiquement ajoutée. <section id="main" class="fluid ">Ceci est le contenu de la balise Section de mise en forme « main »</section> On peut dupliquer, supprimer, déplacer les éléments depuis le concepteur. Cacher (permet de cacher par ex une colonne sur la version mobile), remonter d’un niveau, dupliquer, supprimer Lorsqu’on redimensionne une « div » le nombre de colonnes est indiqué CSS (« orienté Mobile First ») Dans la feuille de styles que l’on a demandé de nommer et sauver (exemple « fluid-grid.css »). On a accès directement aux media queries et peut y ajouter ses styles. 72 XVI. LESS Peut-être utile pour définir par exemple les couleurs d’un thème et les « tailles fixes ». Ainsi on peut très facilement modifier les variables et observer les modifications de sa page. Développement Besoin : Exécution sur un serveur + feuille de styles « *.less » + script less <link href="css/styles.less" rel="stylesheet/less" type="text/css"> <script src="http://cdnjs.cloudflare.com/ajax/libs/less.js/2.5.0/less.min.js"></script> Production Générer la feuille de styles « *.css » avec SimpLess ou WinLess (en ligne et tool) Remplacer par cette feuille de Styles. Il existe une extension « DMXzone LESS CSS Compiler » que je ne recommande pas car elle semble assez buggée avec la dernière version de Dreamweaver. XVII. Templates On peut sauvegarder une page comme modèle pour laquelle on va définir des zones éditables .On pourra réutiliser ces Templates . 1. Enregistrer une page html en tant que modèle Menu « Fichier »… « Enregistrer comme modèle » 73 Un modèle (*.dwt) est alors généré et ajouté au site dans un dossier « Templates » Utiliser l’onglet « Modèle » du panneau « Insertion » 1. Région modifiable Exemple on sélectionne une balise h1 et on clique sur « Région modifiable » dans le panneau « Insertion » Une boite de dialogue s’ouvre, il suffit d’indiquer un nom pour cette région modifiable. Dans le modèle le code de la balise h1 ressemble désormais à cela 2. Attribut modifiable Exemple : rendre éditable l’attribut « src d’une image. 74 Sélectionner la balise image puis menu « Modifier »… « Modèles ».. « Rendre l’attribut modifiable » La balise image ressemble désormais à cela dans le modèle : Et le templateParam 3. Créer une page à partir d’un modèle du site Menu « Fichier » … « Nouveau »… Onglet « Modèles du site » On retrouve les modèles enregistrés 75 Pour éditer facilement les attributs modifiables …menus « Modifier » … « Propriétés du modèle » Pour les régions éditables, soit dans le code soit sur la page en mode création. Exemple on modifie le titre. Il est possible de modifier le Template par la suite, la page étant synchronisée avec celui-ci. 76 XVII. WordPress avec Dreamweaver 1. Installation locale 1. Besoins Apache (serveur), PHP (langage de script), MySQL (base de données) + PhpMyAdmin ou utilisation d’un bundle : WampServer pour Windows (32 et 64-bit) MAMP pour Mac OSX XAMP pour Windows (32-bit uniquement) et MAC OSX 2. Télécharger WordPress https://wordpress.org/ 3. PhpMyAdmin : Créer une base de données « worpressdb » par exemple 4. Copier le dossier du site vers le répertoire « www » (possibilité de renommer le dossier wordpress en blog par ex) 5. Connexion à la page du blog « http://localhost/[directory] / » (par exemple « http://localhost/blog/ ») Laisser vide si pas de mot de passe Recommandé de changer de préfixe pour sécurité … Puis lancer l’installation 77 On peut se connecter 6. Configuration du Site avec Dreamweaver Créer un nouveau Site 78 … Serveur local Décocher distant (remote) et cocher évaluation (testing) 79 Interface L’option « détecter » (discover) permet de trouver tous les fichiers en relation On peut lancer l’aperçu dans le navigateur (F12 navigateur par défaut) Filtrer les fichiers Activer la navigation entre liens dans Dreamweaver 80 2. Child Theme Permet de créer et personnaliser un thème à partir d’un thème existant Création d’un dossier contenant le thème et y ajouter la feuille de style et un screenshot du thème (respecter les noms par convention). On pourrait également nommer le thème « twentytwelve-child » /* Theme Name: Custom Twenty Twelve Description: un thème customisé de "Twenty Twelve" Author: J. Romagny Ici on customise le thème « Twenty Twelve » de Template: twentytwelve */ WordPress. Ces infos en commentaire seront affichées dans WordPress @import url('../twentytwelve/style.css'); Import de la feuille de style de base body{background-color:hsla(0,0%,0%,0.82);} Puis on change par exemple la couleur de fond et une classe CSS de la feuille de Styles de base .site{ min-width:90%; margin:0 auto; } Le thème est alors disponible et activable depuis WordPress. 81 3. Thème personnel Dossiers supplémentaires uniquement si besoin (dossier images, fonts, etc.) Structure de base html5.js dans dossier js pour HTML5 SHIV Index.php « assemble les différentes parties » Screenshot du thème (300x225px) Aucune contrainte au niveau des CSS (ID, noms de classe) header.php <!DOCTYPE HTML> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo('charset');?>"> <title> <?php global $page, $paged; wp_title( '|', true, 'right' ); bloginfo( 'name' ); Permet d’afficher le $site_description = get_bloginfo( 'description', 'display' ); titre de la page + le if ( $site_description && ( is_home() || is_front_page() ) ) nom du blog dans echo " | $site_description"; l’onglet du navigateur if ( $paged >= 2 || $page >= 2 ) echo ' | ' . sprintf( __( 'Page %s' ), max( $paged, $page ) ); ?> Lien vers la feuille de Styles </title> <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" /> <!--[if lt IE 9]> <script src="<?php echo get_template_directory_uri(); ?>/js/html5.js" type="text/javascript"></script> Utilisation d’une font Edge <![endif]--> Web Font. Il faudra ajouter « manuellement » le script <script>var __adobewebfontsappname__="dreamweaver"</script><script src="http://use.edgefonts.net/immi-five-o-five:n4:default.js" type="text/javascript"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script> $(document).ready(function() { $(window).scroll(function() { if ($(window).scrollTop() >= 80) { $('#top').slideUp(700); } else { $('#top').slideDown(700); } 82 }); </script> }); </head> Définition de l’en-tête <body <?php body_class(); ?>> des pages <div id="outerWrapper"> <div class="container"> Titre du blog avec lien <header> <h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1> <h2><?php bloginfo( 'description' ); ?></h2> Description du blog <nav> <?php wp_nav_menu(); ?> </nav> </header> </div> index.php Insertion du header (header.php) <?php get_header(); ?> Boucle sur les posts <div id="contentWrap" class="clearFix"> <div id="content"> <?php if ( have_posts() ) : ?> Titre du post avec lien vers la détails <?php while ( have_posts() ) : the_post(); ?> <article <?php post_class() ?> id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <div class="entry"> Contenu du post <?php the_content(); ?> </div> <div class="postmetadata"> Posté par <?php the_author() ?> le <?php the_time('d M Y') ?> dans <?php the_category(', ') ?> | <?php comments_popup_link('Pas de Commentaire »', '1 Commentaire »', '% Commentaires »'); ?> Informations et commentaires </div> </article> <?php endwhile; ?> <?php else : ?> <h2>Not Found</h2> <?php endif; ?> </div> <!-- end content --> Insertion du Sidebar (sidebar.php) <?php get_sidebar(); ?> </div> <!-- end contentWrap --> <?php get_footer(); ?> Insertion du footer (footer.php) 83 La sidebar affichera une liste de widgets (que l’on peut configurer depuis l’onglet Widgets dans WordPress) sidebar.php <div class="widget-area"> <?php if ( ! dynamic_sidebar( 'Sidebar Widgets' ) ) : ?> <aside id="search" class="widget"> <?php get_search_form(); ?> </aside> <aside id="archives" class="widget"> <h3 class="widget-title">Archives</h3> <ul> <?php wp_get_archives('type=monthly&limit=12'); ?> </ul> </aside> <?php endif; // end sidebar widget area ?> </div> footer.php <footer> <p>Copyright © <?php echo date("Y"); echo " "; bloginfo('name'); ?></p> </footer> </div> <!-- end outerWrapper --> Plus ou moins complexe selon les <?php wp_footer(); ?> </body> besoins </html> single.php (page permettant d’afficher le détail d’un post + affichage/ saisie de commentaires <?php get_header(); ?> <div id="contentWrap"> <div id="content"> <?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <article <?php post_class() ?> id="post-<?php the_ID(); ?>"> <h2><?php the_title(); ?></h2> <div class="entry"> <?php the_content(); ?> </div> <?php wp_link_pages(array('before' => 'Pages: ', 'next_or_number' => 'number')); ?> <div class="postmetadata"> Posté par <?php the_author() ?> le <?php the_time('d M Y') ?> dans <?php the_category(', ') ?> | <?php comments_popup_link('Pas de Commentaire »', '1 Commentaire »', '% Commentaires »'); ?> </div> </article> <?php comments_template(); ?> <?php endwhile; ?> <?php else : ?> <h2>Not Found</h2> <?php endif; ?> </div> <!-- end contentWrap --> <?php get_sidebar(); ?> </div> <!-- end content --> <?php get_footer(); ?> 84 Style.css /* Theme Name: Personal Description: un thème créé par J. Romagny Author: J. Romagny */ Puis les styles ainsi que les media queries pour le Web responsive functions.php Pour les zones de Widgets <?php if (function_exists('register_sidebar')) { register_sidebar(array( 'name' => 'Sidebar Widgets', 'id' => 'sidebar-widgets', 'description' => 'Widgets for the sidebar.', 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3>', 'after_title' => '</h3>' )); } function new_excerpt_length($length) { return 10; } add_filter('excerpt_length', 'new_excerpt_length'); Pour les posts réglés pour n’afficher qu’un extrait. Marche par « couple » (action, filtre) function new_excerpt_more($more) { global $post; return '... <a href="'. get_permalink($post->ID) . '">Lire la suite</a>'; } add_filter('excerpt_more', 'new_excerpt_more'); ?> Autres pages PHP possibles : - 404.php affichant un message personnalisé Search.php page de résultats de recherche personnalisée page.php archive.php page archives personnalisée Ou créer ses propres Templates de page Exemple de Template <?php /* Template Name: About */ ?> <?php get_header(); ?> <!-- etc. -> Donner un nom au template et sauvegarder au format *.php 85 Quand on crée une nouvelle page dans WordPress le modèle sera alors sélectionnable Plugin Il est possible également de modifier la feuille de style des plugins installés. (style.css) 4. Ressources Documentation Fonctions prédéfinies PHP de WordPress Data et heure 86 5. Publication a. Export « Outils » … « Exporter » (téléchargement d’un fichier XML) Import « Outils » … « Importer » … Activer l’extension 87 … Puis import b. Database Backup Depuis PhpMyAdmin .. Onglet « Export » de la base Sauvegarde fichier SQL Pour le backup : - soit Onglet « Import » : télécharger le fichier SQL Soit copier-coller le SQL « Onglet « SQL » 88 c. Serveur distant « Site » … « Gérer les sites » … Onglet « Serveurs » 89 Connecter/ déconnecter au serveur distant