Mais pourquoi le dev' saccage mon intégration? Atelier technique CSS Paris Web 2011 par Romy Duhem-Verdière http://romy.tetue.



Documents pareils
.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

Formation HTML / CSS. ar dionoea

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Tutoriel : Feuille de style externe

Celui qui vous parle. Yann Vigara

JOOMLA 1.5 avancé SUPPORT DE COURS + annexe

Zen, SASS, responsive design

Tour d horizon des CMS. Content Management System

Travaux dirigés n 10

Intégrateur Web HTML5 CSS3

UN SITE WEB RESPONSIVE EN UNE HEURE?

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Grille fluide. Une grille fluide sert à structurer la mise en page, la rendre harmonieuse et faciliter le passage au responsive web design

Un site web collaboratif avec Drupal. Judith Hannoun - Journées INSHS 16 Octobre 2012

Media queries : gérer différentes zones de visualisation

1. La notion de cascade

SYSTÈMES D INFORMATIONS

{less} Guide de démarrage

Quel CMS choisir pour son site web?

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Présentation du Framework BootstrapTwitter

Notice d accessibilité HTML, CSS et JavaScript

Projet en nouvelles technologies de l information et de la communication

Luc Brun. Création de pages Web Dynamiques p.1/75

les techniques d'extraction, les formulaires et intégration dans un site WEB

RESPONSIVE WEB DESIGN

SOUTENANCE ORALE RAPPORT DE PROJET D INFORMATIQUE

TP JAVASCRIPT OMI4 TP5 SRC

Le piratage informatique. Rapport de projet. Spécialité Informatique 1 re année. DEJOUR Kévin SOUVILLE Jean-François. Suivi : Mokhtari-Brun Myriam

Responsive Web Design. La Rochelle, Avril 2014

Drupal (V7) : principes et petite expérience

ING & NEWSLETTER NEWSLETTER RESPONSIVE

May Lopez PETIT COUTEAU SUISSE CRÉATIF. May Lopez Petit couteau suisse créatif

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Prototyper un site web avec Awestruct et Boostrap

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Normes techniques 2011

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Guide de réalisation d une campagne marketing

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Devenez un véritable développeur web en 3 mois!

CREATION d UN SITE WEB (INTRODUCTION)

Drupal un CMS orienté mé2er. Romain JARRAUD Mathieu GROS

Stage «Créer et animer un site Web en équipe»

Karim EL KHALIFA Web developer

Demagis Interactive, la nouvelle société hybride

Découvrir le CMS. et l utiliser dans une approche pro!

Pierre Racine Professionnel de recherche Centre d étude de la forêt Département des sciences du bois et de la forêt, Université Laval, Québec

Créateur de sites Internet. Développeur de logiciels.

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

ISTEX-SNU. ISTEX en quelques clics dans votre portail documentaire. Séminaire technique ISTEX 18 mars 2015

Les outils de création de sites web

Webmaster / Webdesigner / Wordpress

Formation Webmaster : Création de site Web Initiation + Approfondissement

Responsive Design. Technologies du web. Stéphane Bouvry, 2014

TP 5 Les CMS, la forme et le fond Internet et Outils (IO2)

Loïc Rossignol Ingénieur Consultant

Qualité web : les bonnes pratiques front-end

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

proximite + qualite + competitivite

Normes graphiques / Sigma Assistel / Site Internet version 1.0 /

Pourquoi? Pourquoi externaliser? Pour être flexible et réactif Pour réduire ses coûts sans perdre en qualité

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Découvrir Drupal. Les meilleurs thèmes et modules Drupal (présenta5on démo)

Panorama des CMS open sources. Sylvain Ferrand, CMAP École Polytechnique Journées Mathrice, Poitiers, 19 mars 2008

Installation du glossaire Eaufrance sur un site DRUPAL (version 6.x)

Une interface moderne et multi devices avec Drupal Focus sur Omega

CMS Open Source : état de l'art et méthodologie de choix

101 Réaliser et publier un site WEB

Initiation à html et à la création d'un site web

DOSSIER PROJET ISN. PARTIE 1 : Présentation de l équipe projet. PARTIE 2 : Présentation du projet

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Formation : WEbMaster

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

Module BD et sites WEB

Exemple de charte d intégration web

CATALOGUE FORMATION 2015

STID 2ème année : TP Web/PHP

Questionnaire GTA - Analyse des re ponses

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Point sur les solutions de développement d apps pour les périphériques mobiles

Développeur - Conseiller - Formateur web

Marie-eve TREMBLAY GROUPE B. Rapport de synthèse : Le responsive web design, CSS3 et HTML5. Apprentissage autonome 582-FXA-06

SPECIFICITES TECHNIQUES DES FORMATS PUBLICITAIRES

APPROFONDISSEMENT LOGICIELS DU WEB

PROGRAMME DE LA 1ERE JOURNEE DE FORMATION : QUALITE WEB ET REFERENCEMENT NATUREL

Programme ASI Développeur

Du point de vue des entreprises, faut-il privilégier les Frameworks PHP aux CMS Open pour la création de sites internet?

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Notre vision, Votre croissance

novatis Agence Web innovatrice

HTML. Notions générales

TP création et publication d'un site web statique

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Offres de stages 2011/2012

c o n c e p t i o n Un savoir-faire et des experts pour concevoir des sites efficaces et durables

Transcription:

Mais pourquoi le dev' saccage mon intégration? Atelier technique CSS Paris Web 2011 par Romy Duhem-Verdière http://romy.tetue.net/857

Intégrateur de STPo - Robot de Gordon Bennett 2

L'intégrateur XHML, CSS, jquery, media queries, microformats, RGAA, Accessiweb, WCAG, BluePrint, 960 Grid, oocss, LESS, Framework Z, sprites, PSD, Gimp Cf.: http://www.nota-bene.org/integrateurs-montez-au-front-paris 3

Vous réalisez vos intégrations avec soin et amour : P valides P sémantiques P accessibles 4

Mais pourquoi faut-il que le dev' saccage tout ça? 5

Le développeur.toto p a p { } 6

PHP, ASP, Java, SQL, Perl, Ruby, Python, Klingon, Zend, Symphony, ez publish, Drupal, SPIP, TypoScript, cahier des charges 7

Faire simple!

Ce qu'à codé l'intégrateur h1 { font-size : 2em; } h2 { font-size : 1.33em; } h3 { font-size : 1.17em; } h4 { font-size : 1.1em; } p { font-size:.688em; } li { font-size:.688em; } blockquote { font-size:.688em; } small { font-size:.52em; } 9

Problèmes 10

Trop de font-size! Résultats de recherche desweb occurrences de «font-size» dans un projet... 11 Atelier technique CSS Romy Duhem-Verdière Paris 2011

Ressortir la calculette? Em Calculator : http://riddle.pl/emcalc/ 12

Définir une taille relative html { font-size: 100%; } body { font-size:.75em; } h1 { font-size: 150%; } h2 { font-size: 130%; } h3 { font-size: 110%; } small { font-size: 90%; } 13

Définir une taille relative html { font-size: 100%; } body { font-size:.75em; } h1 { font-size: 150%; } h2 { font-size: 130%; } h3 { font-size: 110%; } small { font-size: 90%; } 14

Définir une taille relative html { font-size: 100%; } body { font-size:.75em; } h1 { font-size: 150%; } h2 { font-size: 130%; } h3 { font-size: 110%; } small { font-size: 90%; } 15

Définir une taille relative html { font-size: 100%; } body { font-size:.75em; } h1 { font-size: 150%; } h2 { font-size: 130%; } h3 { font-size: 110%; } small { font-size: 90%; } Cf. : http://www.pompage.net/definir-des-tailles-de-polices-en-css 16

Définir une taille relative 1) Ne pas définir la taille de chaque élément! 2) Définir une font-size de base, sur le <body> (dont chaque élément hérite) 3) Puis définir quelques exceptions : titres plus gros mentions plus petites 17

Au fait, qui saccage l'intégration?

Au fait, qui saccage? 1) Le développement 19

Au fait, qui saccage? 1) Le développement 2) Le code généré (framework, CMS, plugins) 20

Au fait, qui saccage? 1) Le développement 2) Le code généré (framework, CMS, plugins) 3) Les rédacteurs 21

Comment améliorer? 1) Discuter avec les 1) Le développement développeurs 2) Apprendre à coder souple et modulaire 2) Le code généré (framework, CMS, plugins) 3) Les rédacteurs 22

Comment améliorer? 1) Discuter avec les 1) Le développement développeurs 2) Apprendre à coder souple et modulaire 2) Le code généré (framework, CMS, plugins) 3) Travailler sur un échantillon de code généré 3) Les rédacteurs 23

Comment améliorer? 1) Discuter avec les 1) Le développement développeurs 2) Apprendre à coder souple et modulaire 2) Le code généré (framework, CMS, plugins) 3) Travailler sur un échantillon de code généré 4) Anticiper les 3) Les rédacteurs expérimentations des rédacteurs 24

Anticiper

Quel CSS pour styler ces listes? 26

Ce qu'à codé l'intégrateur 27

Problème 28

Un bon exemple /* Lists --------------------------------------------- */ li ul, li ol ul, ol { margin: 0; } { margin: 0 1.5em 1.5em 0; padding-left: 1.5em; } ul ol { list-style-type: disc; } { list-style-type: decimal; } dl dl dt dd { margin: 0 0 1.5em 0; } { font-weight: bold; } { margin-left: 1.5em;} Source : http://www.blueprintcss.org 29

Correction 30

Listes hétérogènes 31

Comment anticiper? 1) Styler tout le HTML y compris les balises rarement utilisées utiliser une page de démo exhaustive 2) Se constituer une page de test récolter des exemples vicieux des extraits générés via WYSIWYG 32

Styler tout le HTML Source : framework CSS Blueprint 33

Exemple de charte typo 34 Source : charte typo SPIP

Laisser la main

Qui l'emporte? #content h2 { color: red; }.chapo h2 { color: purple; } De quelle couleur sera le titre du chapo? 36

Spécificité des sélecteurs En supposant que tous les sélecteurs suivants sont justes et désignent le même élément, lequel sera appliqué en priorité? a) #page ul li a { } b) #page.menu a { } c) div.menu ul li a { } d) div#page ul a { } Source : http://www.alsacreations.com/quiz/lire/7-css-difficile.html 37

Spécificité des sélecteurs En supposant que tous les sélecteurs suivants sont justes et désignent le même élément, lequel sera appliqué en priorité? a) #page ul li a { } b) #page.menu a { } 0103 : le sélecteur contient 1 identifiant, 0 classe et 3 éléments 0111 : le sélecteur contient 1 identifiant, 1 classe et 1 élément c) div.menu ul li a { } 0014 : le sélecteur contient 1 classe et 4 éléments d) div#page ul a { } 0103 : le sélecteur contient 1 identifiant et 3 éléments Cascade CSS et priorité des sélecteurs : http://openweb.eu.org/articles/cascade_css/ 38

Soyez.class plutôt qu'#id Voir : http://oli.jp/2011/ids/ 39

Soyez.class plutôt qu'#id Exemple : http://romy.tetue.net/structure-html-de-base 40

Laissez les IDs au dev! 1) Les ID sont uniques : laissez la liberté de réemployer à ceux qui suivent 2) Réservez les IDs à : JavaScript formulaires N identifiants (BDD) etc. 41

Mettre des.class à disposition

Mettre des.class à disposition small,.small { font-size: 90%; } big,.big { font-size: 130%;} 43

Mettre des.class à disposition h1, h2, h3, h4, h5, h6,.h1.h2.h3.h4.h5.h6 { { { { { { font-size: font-size: font-size: font-size: font-size: font-size: 3em; line-height: 1; marg 2em; margin-bottom: 0.75e 1.5em; line-height: 1; ma 1.2em; line-height: 1.25; 1em; font-weight: bold; m 1em; font-weight: bold; } D'après : Object Oriented CSS 44

Mettre des.class à disposition body,.font1 { font-family: h1,h2,.font2 { font-family: code,pre,.font3 { font-family:.font4 { font-family: Helvetica, Arial, san 'Arial Black', Gadget Courier, monospace; } Palatino, Georgia, se 45

Familles typo + classes réemployables Définition des titres + classes réemployables Exceptions définies. via sélecteur parent. via classes distinctives 46

Mettre des.class à disposition Voir : http://romy.tetue.net/styler-les-messages-du-systeme 47

Sélecteurs multiples <input class= button add edit cancel delete like next prev start save submit super big small pink red orange yellow green > blue black gray white 48

Séparer sémantique et déco Classes sémantiques <input class= button add edit cancel delete like next prev start save submit super big small déco pink red orange yellow green > blue black gray white 49

50

Bref, livrez un framework! Avec du code facilement ré-utilisable pour les suivants Source : framework interne de la Netscouade 51

Habiller le code généré

Quelle structure HTML? En plus de celles propres aux formulaires (form, fieldset, label, input) quelles balises HTML utiliser pour structurer ce formulaire de contact? 53

Ce qu'à codé l'intégrateur 54

Code généré Exemple de code généré par Joomla 55

Code généré Exemple de code généré par SPIP 56

Code généré Exemple de code généré par Zend Framework 57

Conclusion? 1) Ne pas présupposer de la structure HTML 2) Demander un échantillon de code généré (voire adopter le framework de l'outil, du dev, de l'équipe) 3) Appliquer le style à cet échantillon 58

Penser modulaire 59

Bloc modulaire Quel code pour ce bloc d'actus? 60

Bloc modulaire <div class="bloc" id="news"> <h2>l'info en continu</h2> <ul> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> </ul> <a href="#" class="more">toutes les infos</a> </div><!----> { width: 300px; } h2 { padding-left: 20px; background: url(img/puce.png) no-repeat; ul { background: #e5e4d3; border: 1px solid #5b4c2a; border-width li { display: block; padding: 10px; }.more { display: block; color: red; background: url(img/more.png) 61

Bloc modulaire Quel code pour ce bloc d'actus ailleurs dans la page? 62

Bloc modulaire <div class="bloc" id="news"> <h2>l'info en continu</h2> <ul> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> </ul> <a href="#" class="more">toutes les infos</a> </div><!----> { padding: 5px; background: #e5e4d3; } h2 { float: left; padding-left: 20px; background: url(img/puce.pn ul { } li { float: left; display: block; width: 660px; padding: 10px; ba.more { float: right; display: block; color: red; background: url 63

Comment disposer des deux? <div class="bloc" id="news"> <h2>l'info en continu</h2> <ul> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> </ul> <a href="#" class="more">toutes les infos</a> </div><!----> { width: 300px; } h2 { padding-left: 20px; background: url(img/puce.png) no-repeat; ul { background: #e5e4d3; border: 1px solid #5b4c2a; border-width li { display: block; padding: 10px; }.more { display: block; color: red; background: url(img/more.png) { padding: 5px; background: #e5e4d3; } h2 { float: left; padding-left: 20px; background: url(img/puce.pn ul {} li { float: left; display: block; width: 660px; padding: 10px; ba.more { float: right; display: block; color: red; background: url 64

Comment disposer des deux? <div class="bloc" id="news"> <h2>l'info en continu</h2> <ul> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> </ul> <a href="#" class="more">toutes les infos</a> </div><!----> Méthode 1 : surcharge { width: 300px; } h2 { padding-left: 20px; background: url(img/puce.png) no-repeat; ul { background: #e5e4d3; border: 1px solid #5b4c2a; border-width li { display: block; padding: 10px; }.more { display: block; color: red; background: url(img/more.png).toto.toto.toto.toto.toto { width: auto; padding: 5px; background: #e5e4d3; } h2 { float: left; } ul { background: none; border: 0; } li { float: left; width: 660px; background: #fff; }.more { float: right; border: 2px solid #fff; } 65

Comment disposer des deux? <div class="bloc" id="news"> <h2>l'info en continu</h2> <ul> Méthode 2 : <li><a href="#">...</a></li> <li><a href="#">...</a></li> bloc modulaire <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> </ul> <a href="#" class="more">toutes les infos</a> </div><!----> { } h2 { padding-left: 20px; background: url(img/puce.png) no-repeat; ul { } li { display: block; padding: 10px; }.more { display: block; color: red; background: url(img/more.png).aside { width: 300px; }.aside ul { background: #e5e4d3; border: 1px solid #5b4c2a; borde.toto { padding: 5px; background: #e5e4d3; }.toto ul {}.toto li { float: left; width: 660px; background: #fff; }.toto.more { float: right; border: Atelier technique CSS Romy Duhem-Verdière Paris Web 20112px solid #fff; } 66

Souple sur les pattes arrières!

Merci! Merci à Bertrand Keller de la Netscouade, à Martin Supiot de Clever Age, à Cyril Marion des Ateliers CYM, à Hugues Moreno, Frédéric Xavier et à tous vos retours d'expérience en intégration. Merci à vous et #sharethelove Retrouvez-moi ici : http://romy.tetue.net/857