Les actualités du Mardi 23 décembre 2014 dans les métiers du web - Marmits.com - Reims

Le: 23 12 2014 à 23:15 korben.info Auteur: Korben

Je m'amuse bien avec mon petit drone Parott, mais pour le moment, je n'ai pas encore osé l'utiliser en extérieur. D'abord parce que je ne le maitrise pas encore bien, ensuite parce que je crains de le perdre dans un arbre ou dans la flotte et ensuite parce que j'ai "peur" de la réaction de […]

Cet article merveilleux et sans aucun égal intitulé : Les règles à respecter quand on a un drone ; a été publié sur Korben, le seul site qui t'aime plus fort que tes parents.

Le: 23 12 2014 à 22:38 korben.info Auteur: Korben

Si vous avez toujours rêvé de vous la jouer comme dans un film de hackers, voici une application qui devrait vous faire plaisir, surtout si vous êtes vous-même réalisateur. Il s'agit d'Hollywood, un programme qui a été développé par le Chef de Produit de la solution de Cloud proposée par Canonical et qui simule un […]

Cet article merveilleux et sans aucun égal intitulé : Hackez comme à Hollywood ; a été publié sur Korben, le seul site qui t'aime plus fort que tes parents.

Le: 23 12 2014 à 17:46 FrenchWeb.fr Auteur: La rédaction

CENTRALE LYON et EMLYON s’allient en 2009 et créent le Programme Innovation, Design, Entrepreneurship & Arts (I.D.E.A). Ce programme...

Le: 23 12 2014 à 17:43 korben.info Auteur: Korben

Je pourrais passer ma vie entière sur YouTube... J'y regarde un peu de tout et sans honte. Ça va d'un tuto technique à la dernière vidéo de Norman en passant par un sujet de vulgarisation scientifique ou encore un truc débile à base de chats qui s'éclatent la tronche dans des murs. Un régal de […]

Cet article merveilleux et sans aucun égal intitulé : Comment garder privés vos abonnements et « j’aime » YouTube ; a été publié sur Korben, le seul site qui t'aime plus fort que tes parents.

Le: 23 12 2014 à 17:30 WebLife Auteur: Baptiste

Google nous souhaite de Joyeuses Fêtes en doodle

A deux jours du solstice d’hiver et la veille du réveillon de Noël, Google offre aux internautes un nouveau doodle sur la page d’accueil de son moteur de recherche. C’est […]

L'article Google nous souhaite de Joyeuses Fêtes en doodle est la propriété de Baptiste sur WebLife - Actualités internet, high-tech & startups.

Le: 23 12 2014 à 17:23 FrenchWeb.fr Auteur: La rédaction

Jusqu'au 5 janvier 2015 online

Le: 23 12 2014 à 16:50 Framablog Auteur: Goofy

Depuis un an ou deux une conscience floue de l’ubiquité du pistage est perceptible dans les conversations sous la forme de brèves remarques fatalistes :

— De toutes façons on est espionnés, alors…
— Ils peuvent savoir tout ce qu’on fait sur Internet, hein…

et chez les Dupuis-Morizet :

— J’ai réservé la location moins cher avec le PC du boulot pour exactement la même chose… Faut croire que depuis qu’on fait des achats en ligne ils se figurent qu’on pourrait payer plus…

Vous qui savez, ne vous moquez pas trop vite : mieux vaut cette perception diffuse qu’une certitude naïve d’être protégé (« ah tu vois le petit s derrière http ça veut dire que c’est sécurisé ce site » hum) ou pire une ignorance dangereuse.
Certes le chemin est long encore avant de pouvoir susciter une plus large prise de conscience puis une évolution des comportements et des usages dans notre vie numérique. C’est à quoi Framasoft s’efforce de mener par étapes avec la campagne longue durée Dégooglisons Internet. Mais bien d’autres initiatives surgissent semaine après semaine, et nous sommes ravis de leur donner un écho.
Tel est le cas aujourd’hui avec le projet amiunique (non, ce n’est pas un site de rencontre pour trouver un seul ami pour la vie : Am I unique? signifie : « Suis-je unique ? »).
Nous sommes pistés, traqués, espionnés, piégés, profilés… d’accord, tout le monde en a désormais « entendu parler ». Mais que sait-on de nous au juste lorsqu’on va jeter coup d’œil sur un site web ?
Il existe déjà des moyens d’en avoir une idée, par exemple dans Firefox, de nombreux outils de développement proposent des fonctionnalités pour voir ce qui se passe sous les jupes de la connexion. Mais le site amiunique.org en facilite l’accès et explique de quoi il retourne.
On découvre ainsi que cette quantité importante d’informations permet le plus souvent de faire de vous un utilisateur « unique »
— Ah j’en vois qui se rengorgent de n’être pas comme tous les autres et qui sont tout fiers de se distinguer du supposé troupeau des internautes…[1]
Mais ne vous réjouissez pas trop vite, écoutez un peu ce que nous dit Benoît Baudry et voyez comment tout au contraire se fondre dans une masse d’empreintes numériques similaires pourrait être un moyen de ne plus être unique, donc de risquer moins d’être pisté !

Bonjour, pouvez-vous vous présenter brièvement ?
baudry.pngJe suis chercheur depuis 2004 dans le domaine du génie logiciel. J’ai beaucoup travaillé sur des outils et algorithmes pour améliorer les activités de test logiciel dans le domaine des systèmes embarqués. Cette activité s’est ensuite élargie pour traiter de problèmes d’analyse de programme. Depuis février 2013 je coordonne un projet de recherche européen (DIVERSIFY) sur le thème de la diversification du logiciel pour faire des applications web plus robustes.
Dans ce contexte, nous avons démarré une activité sur le browser fingerprinting, c’est-à-dire les empreintes, les traces numériques que laissent nos plateformes quand nous nous connectons avec nos navigateurs.
La petite équipe qui se consacre à amiunique.org et aux technologies anti-fingerprint comprend un doctorant et bénéficie du conseil scientifique et technique de deux chercheurs en sécurité et génie logiciel.

Il n’est pas si fréquent qu’un labo de recherche universitaire entame un projet qui peut toucher un assez vaste public et potentiellement l’ensemble des utilisateurs du Web. Alors pourquoi s’intéresser au fingerprinting ?
Tous nos travaux de recherche sont inspirés par des problèmes réels rencontrés lors de la construction de systèmes logiciels. La nouveauté dans ce cas tient sans doute au fait que le problème ne touche pas seulement les développeurs de logiciels, mais que tout internaute peut se sentir concerné.
Dans le cadre de DIVERSIFY, nous étudions la diversité logicielle et la manière dont elle peut être exploitée, voire amplifiée par des procédures automatiques. L’idée de ce projet c’est que l’augmentation de la diversité logicielle augmente également la résilience et la sécurité des applis webs.
Par ailleurs, nous avons découvert que dans le cas du browser fingerprinting la très grande diversité et la richesse de l’écosystème web sont devenues un problème pour la vie privée : cet écosystème très très riche permet à chacun de disposer d’une plateforme qui correspond parfaitement à ses envies et à son confort, mais c’est ce même phénomène qui rend chaque plateforme unique et donc traçable. La question qui nous a alors intéressés est la suivante :

Peut-on exploiter la diversité qui est à l’origine du problème de fingerprint pour lutter contre le traçage, en modifiant automatiquement et régulièrement la plateforme logicielle d’un internaute ?

La première étape pour répondre à cette question consiste à étudier de près la diversité des plateformes qu’on peut trouver sur le web, ce qui nous a amené à développer le site amiunique.org

Bon alors de quoi s’agit-il au juste ? Pourquoi devrais-je me demander si je suis unique ? C’est inquiétant d’être unique sur le Net ?

Une première remarque à propos de l’unicité : quand le site affiche « Êtes-vous unique ? Oui ! », ce qu’il faut comprendre c’est que la plateforme logicielle (navigateur, OS, polices, plugins, etc.) que vous avez utilisée pour aller sur le site est unique parmi toutes celles observées jusqu’à présent. 

Un clic pour essayer…

test_empreinte.png

et voici le résultat :

unique.png
Quand vous visitez un site web, celui-ci peut facilement récolter un grand nombre d’informations à propos de votre plateforme. Certaines de ces informations sont systématiquement fournies au site web par le navigateur (user agent et en-têtes http), et pour le reste le serveur peut interroger les interfaces Flash, JavaScript et toute autre interface offerte par le navigateur et ses plugins.

Une longue liste de données que l’on peut récolter… (cliquer pour agrandir)

Am_I_unique__2014-12-23_14-32-33.png

Le problème d’avoir une plateforme unique c’est que les sites marchands peuvent personnaliser leur contenu en fonction de la plateforme (pratiques tarifaires en fonction des clients ou publicités ciblées). Par exemple, les sites peuvent varier les prix en fonction de la localisation de l’internaute, déduite approximativement par l’adresse IP (voyez cet exemple), ou en fonction du système d’exploitation (un autre exemple). Une étude a montré que le site de voyages Orbitz propose des prix plus élevés aux utilisateurs de Mac OS (exemple d’Orbitz).

Mais ce que vous proposez de faire, ça commence bien comme du pistage non ? Vous voulez qu’on vous donne toutes les informations sur notre navigateur pour votre recherche, vous êtes sympathique avec votre bonne tête de nerd barbu mais comment puis-je avoir confiance ? Et puis vous allez faire quoi de cette bientôt énorme base de données récoltées, mmh ? 

La politique de confidentialité d’amiunique.org établit très clairement ce qui advient des données récoltées : elles sont stockées sur une machine sécurisée et nous les utilisons à des fins d’analyse statistique. Par ailleurs, nous ne récoltons absolument aucune information qui nous permette de relier une empreinte à une personne, les donnée sont donc anonymes par construction. Les analyses statistiques d’empreintes réelles sont essentielles pour établir des procédures qui modifient automatiquement la plateforme d’un internaute de manière réaliste. Dans cet objectif, 2 défis à relever : réussir à modifier la plateforme de manière transparente, mais suffisamment pour changer l’empreinte ; modifier la plateforme tout en la faisant ressembler à une vraie plateforme pour éviter d’être repéré comme un usager qui essaie de se cacher.

Quelle est selon vous la masse critique d’empreintes collectées qui vous permettra de passer à la phase suivante du projet ?

Il est important pour nous de rassembler un maximum d’empreintes pour que le verdict que nous rendons aux visiteurs (oui / non vous êtes unique) soit vraiment significatif. À l’échelle du Web, être unique parmi quelques dizaines de milliers d’internautes, ce n’est pas forcément très impressionnant, alors qu’être unique parmi quelques millions c’est déjà plus surprenant. Pour nos travaux futurs sur le brouillage c’est surtout important de récupérer une très grande diversité d’empreintes (diversité géographique, diversité de navigateur, polices, etc.). Un échantillon étendu et diversifié nous permettra d’identifier quelles sont les caractéristiques les plus discriminantes, qui devront être la cible principale pour le brouillage.

goofy-inquiet.jpget euh… je ne risque rien si je “triche” en envoyant finalement des données trompeuses ? C’est bien légal ça ?

Il n’y a rien d’illégal à modifier/changer/envoyer des fausses informations. Cependant, deux problèmes peuvent se poser avec les extensions de navigateurs qui renvoient de fausses informations dans le user agent (par exemple User agent switcher).
Le premier vient du fait que les informations que vous envoyez à un serveur sont censées être utilisées pour vous renvoyer une page web qui est parfaitement adaptée à votre navigateur et à sa configuration. Si vous mentez, la page web peut présenter de nombreux défauts et certaines fonctionnalités peuvent ne pas être opérationnelles.
Le second problème vient du fait que si vous mentez, il se peut que votre empreinte soit incohérente et cela vous rend tout de suite identifiable. Par exemple, sur une des empreintes récoltées sur amiunique, le navigateur annonce dans son User Agent qu’il tourne sous Windows alors que le moteur de rendu JavaScript nous indique que la machine en question est un Mac. Cette configuration qui n’est pas censée exister dans la réalité vous rend identifiable car vous serez une des seules personnes au monde à avoir cette configuration incohérente.
Ce n’est donc pas illégal de mentir, mais ça peut engendrer des problèmes à la fois liés à la navigation et au traçage par empreinte.

Par ailleurs, il n’y a rien d’illégal à modifier charger / supprimer des nouvelles polices à chaque lancement de votre navigateur ou à utiliser régulièrement une version différente d’un navigateur.
Nous pensons qu’un avantage de *modifier la plateforme* (plutôt que de renvoyer de fausses informations) c’est qu’on ne prendra pas le risque d’être identifié comme un menteur ou comme une plateforme qui tente d’envoyer des données trompeuses.

C’est astucieux tout ça mais vous ne craignez pas que ceux qui nous pistent trouvent une parade à votre dispositif ?

Certainement et c’est toute la difficulté de tout dispositif pour la vie privée : dès qu’un nouveau dispositif apparaît, il fixe également les nouvelles barrières à franchir pour ceux qui veulent nous pister. Ce que nous espérons surtout c’est que ce genre de mécanisme rende le pistage plus difficile et plus coûteux.

Est-ce qu’on peut espérer que cette expérience “de laboratoire” aura une utilité pour nous les internautes concernés par le pistage de nos empreintes ? Pour votre équipe c’est un intéressant objet de recherche, mais sous quelle forme finale pourrait aboutir votre projet pour la famille Dupuis-Morizet[2]  ?

Nous l’espérons vraiment. Pour l’instant, il faudrait idéalement que la famille Dupuis-Morizet ait des PC sous Linux, et dans ce cas nous visons une solution qui puisse être téléchargée et utilisée à la place du navigateur standard. En gros, ça devrait être un conteneur qui isole le navigateur et tous les éléments de plateforme, qui est lancé à chaque fois que quelqu’un veut naviguer sur Internet. Au lancement de ce conteneur, un navigateur, des polices, des plugins, voire quelques éléments de configurations système sont sélectionné aléatoirement, assemblés et démarrés. L’internaute peut alors naviguer avec une plateforme différente de celle utilisée la dernière fois.

Bon, on y voit un peu plus clair et ce projet a de quoi intéresser. Que peuvent faire les lecteurs de cet article s’ils souhaitent contribuer ?

Distribuer l’URL pour augmenter le nombre d’empreintes c’est déjà une énorme contribution. Toute idée de forums internationaux pour augmenter la diversité des empreintes est aussi tout à fait bienvenue. Enfin, le code du site est open source et nous serions ravis d’avoir des contributions à ce projet sous forme de traduction de pages, revue de code (architecture du site, sécurité, etc.) ou toute idée pour mieux valoriser les données auprès des visiteurs.

amiunique_geektionnerd.png

Liens

Notes

[1] Si vous pensez que les internautes moyens sont Mme Michu, une dinde ménopausée, et son mari tonton Roger, que ses gros doigts de pêcheur de brochet empêchent d’appuyer sur la bonne touche, cet article n’est pas pour vous.

[2] L’authentique Mme Michu a demandé qu’on cesse de la mentionner. Le Framablog a décidé d’employer désormais l’exemple des Dupuis-Morizeau, une sympathique famille recomposée qui vit à Rouen en Normandie.

Le: 23 12 2014 à 16:32 korben.info Auteur: Korben

Vendredi dernier, en lisant le texte de Philippe Aigrain (co-fondateur de la Quadrature), j'étais vraiment dégouté de voir que personne ou presque n'avait soutenu la Quadrature du Net. Il y avait quelque chose comme 1200 donateurs et pas de quoi faire tenir l'association de défense des Internautes plus de 2 semaines. En effet, le budget […]

Cet article merveilleux et sans aucun égal intitulé : La Quadrature du Net est sauvée et c’est grâce à vous ! ; a été publié sur Korben, le seul site qui t'aime plus fort que tes parents.

Le: 23 12 2014 à 16:13 FrenchWeb.fr Auteur: Adeline Raynal

Cnova et Alibaba sont entrés en Bourse, Sarenza a levé 74 millions d'euros.

Le: 23 12 2014 à 15:41 Web Design Shock Auteur: LashondaJ

This is a beautiful, flat and useful snippet composed of a carousel, created with JavaScript and CSS. It is composed of parallelograms with a thumbnail and a little label for the name right below. You can style it any way you want and use it for free (personal and commercial).

The post CSS & JavaScript Carousel Staff Box appeared first on ByPeople.

Le: 23 12 2014 à 15:24 Web Design Shock Auteur: boundshock

This is a flat events calendar perfect for websites or even mobile apps. The calendar includes the regular days, along with a single header for the month and the year. The cool thing about it, although it lacks some functionality, is that you can select a day and see some additional information within the same […]

The post Flat jQuery Events Calendar Snippet appeared first on ByPeople.

Le: 23 12 2014 à 15:11 Web Design Shock Auteur: statusman

This zoom effect is cool for image galleries or mobile apps to give the user the option to enlarge the text or other content. This JavaScript library zooms DOM elements, and you can adapt features like on-click zooming. This is a free experiment that can be used in personal and commercial projects.

The post zoom.js: Zooming Effect JavaScript Library appeared first on ByPeople.

Le: 23 12 2014 à 14:50 Web Design Shock Auteur: MarcoMaass

Dropzone.js is an open source library made with JavaScript that allows you uploading files. It is a lightweight library that doesn’t depend on other libraries. To use it, just download the file, include into your document and you can start using it. This library can be used both personally and commercially.

The post Dropzone.js: Drag & Drop File Upload JS Library appeared first on ByPeople.

Le: 23 12 2014 à 14:44 Journal du Net Développeurs

Depuis 2007, Gartner a prédit les principales tendances technologiques stratégiques pour l'année à venir - pas une tâche facile compte tenu de la volatilité du marché de l'informatique.






Le: 23 12 2014 à 14:31 Journal du Net Développeurs

La Chine est LE pays émetteur de touristes de 2013.Les 98 millions de touristes chinois à avoir voyagé à l’étranger en 2013 ont dépensé 129 milliards de dollars. Des chiffres qui devraient au minimum doubler d’ici 2020 selon les experts du domaine.






Le: 23 12 2014 à 14:20 open-source-guide.com Auteur: com@smile.fr (Samuel Deberles)

La société du créateur de Nginx, serveur web Open Source, vient de lever 20 M$. Après une première levée de 20 M$ en 2013.

Le: 23 12 2014 à 14:18 open-source-guide.com Auteur: com@smile.fr (Samuel Deberles)

Google vient de publier en Open Source le code de End-to-End. Cette extension permet de chiffrer, signer et vérifier la signature numérique de messages directement dans le navigateur en utilisant OpenPGP.

Le: 23 12 2014 à 14:16 open-source-guide.com Auteur: com@smile.fr (Samuel Deberles)

L’équipe de développement de swift vient d’annoncer la mise à jour du contrôleur pour OpenStack en version 2.2.1 Petit tour des nouveautés embarquées dans cette mise à jour :

Le: 23 12 2014 à 13:57 codrops Auteur: Mary Lou

A tutorial on how to create a simple layout with a fullscreen header that slides up to reveal a content area with an image grid.

Sliding Header Layout was written by Mary Lou and published on Codrops.

Le: 23 12 2014 à 13:17 FrenchWeb.fr Auteur: Camille Adaoust

Sarenza a levé 74 millions d'euros en juin, Blablacar a bouclé un tour de table de 100 millions de dollars en juillet...

Le: 23 12 2014 à 13:00 FrenchWeb.fr Auteur: Camille Adaoust

Cloze analyse les interactions entre les contacts et hiérarchise les fils d'actualité selon qui compte le plus.

Le: 23 12 2014 à 12:41 FrenchWeb.fr Auteur: Olivier Harmant

Webedia a racheté Jeuxvideo.com, Etsy s'est offert A Little Market…

Le: 23 12 2014 à 12:20 presse-citron.net Auteur: alexandragiroux

Cela fait des jours que vous réfléchissez à votre menu de Noël. Mais avez-vous pensé à la musique que vous allez diffuser ?

Le: 23 12 2014 à 11:58 Les dossiers référencement de WebRankInfo Auteur: Olivier Duffez

Google Pigeon (mise à jour de la recherche locale) est déployé partout dans le monde en anglais (sauf en Inde) Sorti en juillet 2014 aux Etats-Unis, la mise à jour baptisée Pigeon vise à améliorer les résultats des recherches locales sur Google. Elle s'étend désormais partout dans le monde en anglais, sauf en Inde.L'algo Google […]

Cet article écrit par Olivier Duffez a été publié sur L'algo Google Pigeon étendu partout en anglais, sauf Inde

Le: 23 12 2014 à 11:55 presse-citron.net Auteur: Fredzone

Voilà de quoi vous occuper pendant vos vacances.

Le: 23 12 2014 à 11:41 Journal du Net Développeurs

Avec la nouvelle application “Apple Santé” et l’expansion continue des objets connectés, des applications dédiées au sommeil ne cessent de fleurir sur les sites marchands. Que ce soit des applications analytiques - dites intelligentes- ou plus amusantes, elles ont toutes pour objectif de rendre le difficile moment du réveil plus agréable.






Le: 23 12 2014 à 11:38 powerpress.fr Auteur: BDP

La Boutique du Parfum innove à nouveau en France et se met à l’heure américaine en lançant son BOXING DAY   La Boutique du Parfum qui propose sur son site e-commerce les produits de parfumerie sélective de 140 grandes marques de luxe, signe sa première participation au Boxing day* dans un domaine d’activité où les acteurs de [...]

PowerPress - Communiqués de presse gratuits

Le: 23 12 2014 à 11:31 Journal du Net Développeurs

L'attaque dont a été victime le régulateur technique en décembre nourri les phantasmes d'un Internet victime de cyber-pirates. Pourtant, il s'agit d'une intrusion mineure dans des systèmes loin d'être critiques.






Le: 23 12 2014 à 11:23 freebiesbug.com Auteur: Pasquale Vitiello

Pull menu interaction concept

An interesting pull menu interaction experiment for mobile devices made with few lines of CSS and Javascript.

The post Pull menu interaction concept appeared first on Freebiesbug.

Le: 23 12 2014 à 11:20 FrenchWeb.fr Auteur: Adeline Raynal

Cette plate-forme ne représente qu'une petite fraction du trafic généré par les marketplace d'Alibaba.

Le: 23 12 2014 à 11:00 WebLife Auteur: Baptiste

Google : OneBox de paroles de chansons dans les SERPS

Après l’origine des mots évoquée hier, un nouveau type de card a été lancé par Google au sein de ses pages de résultats : la OneBox paroles de chansons. Sans […]

Via

L'article Google : OneBox de paroles de chansons dans les SERPS est la propriété de Baptiste sur WebLife - Actualités internet, high-tech & startups.

Le: 23 12 2014 à 10:00 WebLife Auteur: Baptiste

OS X : Faille critique pour le protocole NTP & mise à jour

Une vulnérabilité critique a été découverte au sein du protocole NTP (Network Time Protocol) – permettant de synchroniser l’horloge locale d’ordinateurs sur une référence d’heure – par deux chercheurs en sécurité […]

L'article OS X : Faille critique pour le protocole NTP & mise à jour est la propriété de Baptiste sur WebLife - Actualités internet, high-tech & startups.

Le: 23 12 2014 à 10:00 Alsacreations.com - Actualités Auteur: Raphael

Ce tutoriel a pour but de présenter dans les détails une technique de conception de grille de mise en forme responsive à l’aide du positionnement CSS3 Flexbox Layout, actuellement parfaitement adapté à ce genre de fonctions en attendant une meilleure implémentation de Grid Layout.

Le concept de grille produite permettra de gérer les espaces inter-colonnes (gouttières), les décalages (“offsets”), les différentes tailles d’écran et d’être automatisable. Le tout en un minimum de code et un maximum de propreté HTML.

flexbox grid

Voir le résultat en ligne

Le fondement : Flexbox Layout

Notre grille sera construite grâce au module Flexbox, aujourd’hui compatible sur une bonne majorité des navigateurs (88% selon les stats en fin 2014).

Si vous souhaitez assurer un maximum de compatibilité envers les anciens navigateurs, vous devrez vous rabattre sur les techniques float, table-cell ou inline-block avec tous les détails et exemples dans cet article consacré aux grilles de mise en forme.

Note : Flexbox nécessitant encore certaines précautions en terme de préfixes et de syntaxes, je vous conseille vivement de vous équiper de l’outil Autoprefixer afin de vous décharger de cette tâche fastidieuse une fois pour toutes.

Les bases de la grille

Mon souhait est que seul le conteneur sera affublé d’une classe, et ses enfants (directs) en bénéficieront automatiquement, sans avoir à les nommer spécifiquement.

Par exemple, le code imaginaire suivant pourrait générer une grille de 4 colonnes où tous les enfants directs occuperaient 1/4 de l’espace disponible s’il n’y a pas de gouttière :

.container-grid-4 {
    /* container's styles */
}
.container-grid-4 > * {
    /* direct children's styles */
}

Ébauche de grille en flexbox

Commençons par une grille de 4 éléments via flexbox et sans définir de gouttière :

/* moving to box-sizing (always) */
* { box-sizing: border-box; }

/* styles du conteneur */
/* hozizontl dysplay and wrap enabled */
.container-grid-4 {
    display: flex;
    flex-flow: row wrap;
}
/* direct children's styles */
/* flex-basis (width) defined to 25% */
.container-grid-4 > * {
    flex: 0 0 25%;
}

Gérer la gouttière

À l’heure actuelle, gérer l’espace entre les éléments d’une grille n’est toujours pas aussi intuitif qu’il devrait l’être, nous sommes encore obligés de passer par des bidouilles pour cela.

L’une des astuce devenue un grand classique, le combo margin-left négatif sur le parent + padding-left sur chaque enfant, est certainement la plus prisée.

Voici comment elle opère… Supposons que je souhaite créer deux colonnes espacées de 30px. Le principe de cette astuce est de :

  • conférer une largeur de 50% à chacun des enfants,
  • d’attribuer un box-sizing: border-box pour être sûr que les boîtes ne s’agrandiront pas en ajoutant du padding ou une bordure,
  • appliquer un padding-left de 30px sur chaque enfant (plutôt que margin-left qui ne permettrait pas de conserver un total de 50% + 50%,,
  • appliquer une margin-left de valeur négative (-30px) sur le conteneur, ce qui aura pour effet d’étirer ses enfants et d’absorber le padding du premier enfant.

padding ou border ?

L’astuce du padding-left négatif a été testée et éprouvée sur de très nombreux frameworks CSS existants.

Elle a cependant un inconvénient gênant : puisque je dois appliquer un padding défini sur chaque enfant, je ne peux plus lui attribuer une valeur de padding différente si je souhaite espacer le contenu interne de mes colonnes.
Je suis donc généralement obligé d’imbriquer un nouvel élément au sein de chaque enfant direct.

J’ai donc opté pour une autre méthode : remplacer padding-left au profit de border-left.

A priori ce n’est pas sans inconvénient majeur : la couleur de bordure, que l’on souhaite transparente, est héritée par celle du padding de la boîte. Ce qui signifie que l’on ne pourrait pas attribuer de couleur de fond ou d’image de fond à nos colonnes sans que la couleur de la gouttière ne la subisse.

La solution à ce problème est pourtant simple et très compatible : tirer profit de la méconnue propriété background-clip: padding-box; qui n’affectera pas de couleur de fond à la zone de bordure.

Et hop, le tour est joué :

.container-grid-4 {
    margin-left: -30px;
}
.container-grid-4 > * {
    border-left: 30px solid transparent;
    background-clip: padding-box; /* no background on border */
}

flex gouttières

Automatiser avec un préprocesseur

Parvenu à ce stade, un nouveau pallier pourrait être franchi : celui d’automatiser la construction de la grille quel que soit le nombre de colonnes souhaitées et quelle qu’en soit la valeur de gouttière.

C’est à présent le boulot des préprocesseurs tels que LESS ou Sass. Pour ma part, j’ai choisi LESS pour ce tutoriel.

Créons un mixin .flex-grid(x,y) que l’on pourrait appliquer à n’importe quel élément HTML conteneur, et donc les paramètres x et y représenteraient respectivement le nombre de colonnes et la largeur de la gouttière.

La largeur des enfants en pourcentage serait calculée selon le nombre de colonnes via la formule flex: 0 0 ((100 /@number) + 0%); :

// grid styles for container wich has a .flex-grid(n,g) class
// n = number of columns (default = 4)
// g = gutter value (default = 1em)
// exemple : .grid-container { .flex-grid(12, 10px); }
 .flex-grid(@number:4, @gutter:1em) {
    display: flex;
    flex-flow: row wrap;
    margin-left: -@gutter;

    > * {
        /* grid child can be any element */
        flex: 0 0 ((100 /@number) + 0%);
        padding: 1em;
        border-left: @gutter solid transparent;
        background-clip: padding-box;
    }
 }

Bonus : meilleure “sémantique” HTML

L’apport d’un mixin LESS, outre le fait d’automatiser la création de grilles, est d’épurer le code HTML et CSS en développement.

Ainsi, il ne sera plus nécessaire d’ajouter des classes supplémentaires dans notre “markup” puisque ce genre de syntaxe sera rendu possible :

<section>ici je veux une grille de 6 colonnes</section>
// section crée une grille de 6 colonnes espacées de 1em (défaut) chacune
section {
    .flex-grid(6);
}

Bonus : éléments double ou triple taille

Certains éléments doivent être mis en exergue et occuper le double d’espace que leurs voisins ? Rien de plus simple avec flexbox : il suffit de doubler la valeur de flex-basis voire de l’automatiser avec LESS pour que cette valeur s’adapte quel que soit le nombre de colonnes.

// double sized element
.grid-double {
    flex: 0 0 ((100 /@number * 2) + 0%);
}
// triple sized element
.grid-triple {
    flex: 0 0 ((100 /@number * 3) + 0%);
}

Bonus : “à la Une”

À présent, pourquoi ne pas continuer avec les bonnes choses ? Grâce à la propriété order du positionnement flexbox, il est très simple d’intervertir l’ordre d’affichage des éléments et faire remonter un bloc avant les autres.

Il suffit pour cela de lui attribuer une valeur de order inférieure à la valeur par défaut qu’est 0 :

// will be displayed first
.grid-first {
    order: -1;
}
// will be displayed last
.grid-last {
    order: 2;
}

Des Media Queries pour toutes les surfaces

Enfin, n’oublions pas le bouquet final qu’est l’adaptation à toutes les surfaces.

Là encore il est possible d’automatiser un maximum de fonctionnalités à l’aide de variables et de mixins.

Par exemple, pour forcer une grille à s’afficher en deux colonnes lorsque l’écran est réduit, voilà ce qui est envisageable :

@media (min-width: (@tiny-screen + 1)) and (max-width: @small-screen) {
    & > * {
        flex: 0 0 50%;
    }
    & > .grid-double {
        flex: 0 0 100%;
    }
}

Résultat final

Nous voici donc arrivés à la fin de notre (agréable) périple. Notre grille est prête et fonctionnelle.

flexbox grid

Concrètement, voici le récapitulatif des codes HTML et CSS / LESS employés tout au long de ce tutoriel.

J’espère que le résultat (et sa simplicité) vous convaincront !

HTML

<div class="grid-container">
    <div>1.</div>
    <div>2.</div>
    <div>3.</div>
    <div>4.</div>
    <div class="grid-double grid-first">5.</div>
    <div>6.</div>
    <div>7.</div>
    <div>8.</div>
    <div>9.</div>
    <div style="margin-left: auto;">10.</div>
</div>

CSS / LESS (styles de travail)

C’est le fichier LESS qui nous servira de base de travail pour modifier les styles de notre projet.

Pour notre plus grand plaisir, il est réduit au strict minimum.

// .grid-container crée une grille de 6 colonnes espacées de 1em (défaut) chacune
.grid-container {
    .flex-grid(6);
}

// section crée une grille de 12 colonnes espacées de 10px chacune
section {
    .flex-grid(12, 10px);
}

CSS / LESS (mixins LESS)

Ces mixins sont définis une fois pour toute, il devrait être inutile d’y toucher ou de les modifier une fois qu’ils sont en place.

// config breakpoints
@tiny-screen            : 480px; // tiny screens media query (less than 480px)
@small-screen           : 768px; // screens between 481px and 768px
@medium-screen          : 1024px; // screens between 769px and 1024px
@large-screen           : 1280px; // screens between 1025px and 1280px

// grid styles for container wich has a .flex-grid(n,g) class
// n = number of columns (default = 4)
// g = gutter value (default = 1em)
// example : .grid-container { .flex-grid(12, 10px); }
.flex-grid(@number:4, @gutter:1em) {
    display: flex;
    flex-flow: row wrap;
    margin-left: -@gutter;

    > * {
        /* grid child can be any element */
        flex: 0 0 ((100 /@number) + 0%);
        padding: 1em;
        border-left: @gutter solid transparent;
        background-clip: padding-box; /* no background on border */
    }
    > .grid-double {
        flex: 0 0 ((100 /@number * 2) + 0%);
    }
    > .grid-first {
        order: -1;
    }
    @media (min-width: (@small-screen + 1)) and (max-width: @medium-screen) {
        & > * {
            flex: 0 0 33.333%;
        }
        & > .grid-double {
            flex: 0 0 66.666%;
        }
    }
    @media (min-width: (@tiny-screen + 1)) and (max-width: @small-screen) {
        & > * {
            flex: 0 0 50%;
        }
        & > .grid-double {
            flex: 0 0 100%;
        }
    }
    @media (max-width: @tiny-screen) {
        & > * {
            flex: 0 0 100%;
        }
        & > .grid-double {
            flex: 0 0 100%;
        }
    }
}

Voir le résultat en ligne

Retrouvez l'intégralité de ce tutoriel multi-pages en ligne

Le: 23 12 2014 à 10:00 Alsacreations.com - Apprendre Auteur: Raphael

Ce tutoriel a pour but de présenter dans les détails une technique de conception de grille de mise en forme responsive à l’aide du positionnement CSS3 Flexbox Layout, actuellement parfaitement adapté à ce genre de fonctions en attendant une meilleure implémentation de Grid Layout.

Le concept de grille produite permettra de gérer les espaces inter-colonnes (gouttières), les décalages (“offsets”), les différentes tailles d’écran et d’être automatisable. Le tout en un minimum de code et un maximum de propreté HTML.

flexbox grid

Voir le résultat en ligne

Le fondement : Flexbox Layout

Notre grille sera construite grâce au module Flexbox, aujourd’hui compatible sur une bonne majorité des navigateurs (88% selon les stats en fin 2014).

Si vous souhaitez assurer un maximum de compatibilité envers les anciens navigateurs, vous devrez vous rabattre sur les techniques float, table-cell ou inline-block avec tous les détails et exemples dans cet article consacré aux grilles de mise en forme.

Note : Flexbox nécessitant encore certaines précautions en terme de préfixes et de syntaxes, je vous conseille vivement de vous équiper de l’outil Autoprefixer afin de vous décharger de cette tâche fastidieuse une fois pour toutes.

Les bases de la grille

Mon souhait est que seul le conteneur sera affublé d’une classe, et ses enfants (directs) en bénéficieront automatiquement, sans avoir à les nommer spécifiquement.

Par exemple, le code imaginaire suivant pourrait générer une grille de 4 colonnes où tous les enfants directs occuperaient 1/4 de l’espace disponible s’il n’y a pas de gouttière :

.container-grid-4 {
    /* container's styles */
}
.container-grid-4 > * {
    /* direct children's styles */
}

Ébauche de grille en flexbox

Commençons par une grille de 4 éléments via flexbox et sans définir de gouttière :

/* moving to box-sizing (always) */
* { box-sizing: border-box; }

/* styles du conteneur */
/* hozizontl dysplay and wrap enabled */
.container-grid-4 {
    display: flex;
    flex-flow: row wrap;
}
/* direct children's styles */
/* flex-basis (width) defined to 25% */
.container-grid-4 > * {
    flex: 0 0 25%;
}

Gérer la gouttière

À l’heure actuelle, gérer l’espace entre les éléments d’une grille n’est toujours pas aussi intuitif qu’il devrait l’être, nous sommes encore obligés de passer par des bidouilles pour cela.

L’une des astuce devenue un grand classique, le combo margin-left négatif sur le parent + padding-left sur chaque enfant, est certainement la plus prisée.

Voici comment elle opère… Supposons que je souhaite créer deux colonnes espacées de 30px. Le principe de cette astuce est de :

  • conférer une largeur de 50% à chacun des enfants,
  • d’attribuer un box-sizing: border-box pour être sûr que les boîtes ne s’agrandiront pas en ajoutant du padding ou une bordure,
  • appliquer un padding-left de 30px sur chaque enfant (plutôt que margin-left qui ne permettrait pas de conserver un total de 50% + 50%,,
  • appliquer une margin-left de valeur négative (-30px) sur le conteneur, ce qui aura pour effet d’étirer ses enfants et d’absorber le padding du premier enfant.

padding ou border ?

L’astuce du padding-left négatif a été testée et éprouvée sur de très nombreux frameworks CSS existants.

Elle a cependant un inconvénient gênant : puisque je dois appliquer un padding défini sur chaque enfant, je ne peux plus lui attribuer une valeur de padding différente si je souhaite espacer le contenu interne de mes colonnes.
Je suis donc généralement obligé d’imbriquer un nouvel élément au sein de chaque enfant direct.

J’ai donc opté pour une autre méthode : remplacer padding-left au profit de border-left.

A priori ce n’est pas sans inconvénient majeur : la couleur de bordure, que l’on souhaite transparente, est héritée par celle du padding de la boîte. Ce qui signifie que l’on ne pourrait pas attribuer de couleur de fond ou d’image de fond à nos colonnes sans que la couleur de la gouttière ne la subisse.

La solution à ce problème est pourtant simple et très compatible : tirer profit de la méconnue propriété background-clip: padding-box; qui n’affectera pas de couleur de fond à la zone de bordure.

Et hop, le tour est joué :

.container-grid-4 {
    margin-left: -30px;
}
.container-grid-4 > * {
    border-left: 30px solid transparent;
    background-clip: padding-box; /* no background on border */
}

flex gouttières

Automatiser avec un préprocesseur

Parvenu à ce stade, un nouveau pallier pourrait être franchi : celui d’automatiser la construction de la grille quel que soit le nombre de colonnes souhaitées et quelle qu’en soit la valeur de gouttière.

C’est à présent le boulot des préprocesseurs tels que LESS ou Sass. Pour ma part, j’ai choisi LESS pour ce tutoriel.

Créons un mixin .flex-grid(x,y) que l’on pourrait appliquer à n’importe quel élément HTML conteneur, et donc les paramètres x et y représenteraient respectivement le nombre de colonnes et la largeur de la gouttière.

La largeur des enfants en pourcentage serait calculée selon le nombre de colonnes via la formule flex: 0 0 ((100 /@number) + 0%); :

// grid styles for container wich has a .flex-grid(n,g) class
// n = number of columns (default = 4)
// g = gutter value (default = 1em)
// exemple : .grid-container { .flex-grid(12, 10px); }
 .flex-grid(@number:4, @gutter:1em) {
    display: flex;
    flex-flow: row wrap;
    margin-left: -@gutter;

    > * {
        /* grid child can be any element */
        flex: 0 0 ((100 /@number) + 0%);
        padding: 1em;
        border-left: @gutter solid transparent;
        background-clip: padding-box;
    }
 }

Bonus : meilleure “sémantique” HTML

L’apport d’un mixin LESS, outre le fait d’automatiser la création de grilles, est d’épurer le code HTML et CSS en développement.

Ainsi, il ne sera plus nécessaire d’ajouter des classes supplémentaires dans notre “markup” puisque ce genre de syntaxe sera rendu possible :

<section>ici je veux une grille de 6 colonnes</section>
// section crée une grille de 6 colonnes espacées de 1em (défaut) chacune
section {
    .flex-grid(6);
}

Bonus : éléments double ou triple taille

Certains éléments doivent être mis en exergue et occuper le double d’espace que leurs voisins ? Rien de plus simple avec flexbox : il suffit de doubler la valeur de flex-basis voire de l’automatiser avec LESS pour que cette valeur s’adapte quel que soit le nombre de colonnes.

// double sized element
.grid-double {
    flex: 0 0 ((100 /@number * 2) + 0%);
}
// triple sized element
.grid-triple {
    flex: 0 0 ((100 /@number * 3) + 0%);
}

Bonus : “à la Une”

À présent, pourquoi ne pas continuer avec les bonnes choses ? Grâce à la propriété order du positionnement flexbox, il est très simple d’intervertir l’ordre d’affichage des éléments et faire remonter un bloc avant les autres.

Il suffit pour cela de lui attribuer une valeur de order inférieure à la valeur par défaut qu’est 0 :

// will be displayed first
.grid-first {
    order: -1;
}
// will be displayed last
.grid-last {
    order: 2;
}

Des Media Queries pour toutes les surfaces

Enfin, n’oublions pas le bouquet final qu’est l’adaptation à toutes les surfaces.

Là encore il est possible d’automatiser un maximum de fonctionnalités à l’aide de variables et de mixins.

Par exemple, pour forcer une grille à s’afficher en deux colonnes lorsque l’écran est réduit, voilà ce qui est envisageable :

@media (min-width: (@tiny-screen + 1)) and (max-width: @small-screen) {
    & > * {
        flex: 0 0 50%;
    }
    & > .grid-double {
        flex: 0 0 100%;
    }
}

Résultat final

Nous voici donc arrivés à la fin de notre (agréable) périple. Notre grille est prête et fonctionnelle.

flexbox grid

Concrètement, voici le récapitulatif des codes HTML et CSS / LESS employés tout au long de ce tutoriel.

J’espère que le résultat (et sa simplicité) vous convaincront !

HTML

<div class="grid-container">
    <div>1.</div>
    <div>2.</div>
    <div>3.</div>
    <div>4.</div>
    <div class="grid-double grid-first">5.</div>
    <div>6.</div>
    <div>7.</div>
    <div>8.</div>
    <div>9.</div>
    <div style="margin-left: auto;">10.</div>
</div>

CSS / LESS (styles de travail)

C’est le fichier LESS qui nous servira de base de travail pour modifier les styles de notre projet.

Pour notre plus grand plaisir, il est réduit au strict minimum.

// .grid-container crée une grille de 6 colonnes espacées de 1em (défaut) chacune
.grid-container {
    .flex-grid(6);
}

// section crée une grille de 12 colonnes espacées de 10px chacune
section {
    .flex-grid(12, 10px);
}

CSS / LESS (mixins LESS)

Ces mixins sont définis une fois pour toute, il devrait être inutile d’y toucher ou de les modifier une fois qu’ils sont en place.

// config breakpoints
@tiny-screen            : 480px; // tiny screens media query (less than 480px)
@small-screen           : 768px; // screens between 481px and 768px
@medium-screen          : 1024px; // screens between 769px and 1024px
@large-screen           : 1280px; // screens between 1025px and 1280px

// grid styles for container wich has a .flex-grid(n,g) class
// n = number of columns (default = 4)
// g = gutter value (default = 1em)
// example : .grid-container { .flex-grid(12, 10px); }
.flex-grid(@number:4, @gutter:1em) {
    display: flex;
    flex-flow: row wrap;
    margin-left: -@gutter;

    > * {
        /* grid child can be any element */
        flex: 0 0 ((100 /@number) + 0%);
        padding: 1em;
        border-left: @gutter solid transparent;
        background-clip: padding-box; /* no background on border */
    }
    > .grid-double {
        flex: 0 0 ((100 /@number * 2) + 0%);
    }
    > .grid-first {
        order: -1;
    }
    @media (min-width: (@small-screen + 1)) and (max-width: @medium-screen) {
        & > * {
            flex: 0 0 33.333%;
        }
        & > .grid-double {
            flex: 0 0 66.666%;
        }
    }
    @media (min-width: (@tiny-screen + 1)) and (max-width: @small-screen) {
        & > * {
            flex: 0 0 50%;
        }
        & > .grid-double {
            flex: 0 0 100%;
        }
    }
    @media (max-width: @tiny-screen) {
        & > * {
            flex: 0 0 100%;
        }
        & > .grid-double {
            flex: 0 0 100%;
        }
    }
}

Voir le résultat en ligne

Retrouvez l'intégralité de ce tutoriel multi-pages en ligne

Le: 23 12 2014 à 09:53 Les dossiers référencement de WebRankInfo Auteur: Olivier Duffez

Google affiche les paroles des chansons dans les SERP + un lien vers Google Play Les internautes seront sans doute contents de trouver directement dans Google les paroles de leurs chansons préférées... mais sans doute pas les sites qui vivaient de ça.Google affiche les paroles des chansons dans les SERPCet article écrit par Olivier Duffez […]

Cet article écrit par Olivier Duffez a été publié sur Google affiche les paroles des chansons dans les SERP

Le: 23 12 2014 à 09:44 presse-citron.net Auteur: Setra

La technologie a peut-être facilité nos vies, mais elle n’a pas que de bons côtés. De nombreuses études ont déjà prouvé que les smartphones, le travail sur ordinateur ou encore les e-mails peuvent nuire à notre santé. Voici quelques conseils pour limiter les dégâts.

Le: 23 12 2014 à 09:39 FrenchWeb.fr Auteur: Camille Adaoust

Le naming consiste en la création de noms pour les entreprises, les marques ou les évènements.

Le: 23 12 2014 à 09:37 WebdesignerNews Auteur: Cameron

Elf is a small, powerful Stylus grid that’s built with calc(). It offers unlimited nesting with consistently sized gutters, ratio based sizing, and more.

Le: 23 12 2014 à 09:35 presse-citron.net Auteur: Fredzone

Vous aimez les auto-collants et vous passez votre vie sur Facebook ? Pas de doute, Stickered est fait pour vous.

Le: 23 12 2014 à 09:15 Webdesigner Depot Auteur: Marc Schenker

These days, it seems, you can’t turn anywhere on the web without hearing about or directly encountering flat design in some way, shape or form. What started out as a mere design trend just a couple of years ago is now clearly a mainstream design aesthetic that’s a force to be reckoned with. You can […]

Le: 23 12 2014 à 09:02 cssdesignawards.com

Boutique interaction design agency website, specializing in web & mobile platforms and products.

Le: 23 12 2014 à 09:00 WebLife Auteur: Anne

Google Car : La voiture prête pour être testée

La fameuse voiture autonome Google Car est officiellement prête à être testée. C’est ce qu’annonce Google sur son compte Google+ comme l’indique la citation ci-dessous. We’re going to be spending […]

Via

L'article Google Car : La voiture prête pour être testée est la propriété de Anne sur WebLife - Actualités internet, high-tech & startups.

Le: 23 12 2014 à 08:21 presse-citron.net Auteur: Fredzone

Huawei vient de lever le voile sur un nouveau terminal particulièrement intéressant, et qui devrait plaire à tous ceux qui ne jurent que par les grands écrans.

Le: 23 12 2014 à 08:08 presse-citron.net Auteur: Setra

Le site web du vrai Pirate Bay affiche maintenant un timer ainsi qu’un code.

Le: 23 12 2014 à 08:06 FrenchWeb.fr Auteur: Olivier Harmant

Plus de 177 millions de nouveaux utilisateurs devraient à leur tour posséder un smartphone dans les quatre prochaines années.

Le: 23 12 2014 à 07:46 jqueryrain.com Auteur: Admin

Videoconverter.js is a library that allows you to convert and manipulate videos inside of your web browser.The idea for the application was to try and convert any video file into […]

The post Videoconverter.js : Convert videos in your Browser appeared first on jQuery Rain.

Le: 23 12 2014 à 07:39 presse-citron.net Auteur: Setra

Remerciez Google (ou pas), car bientôt, il ne sera peut-être plus utile d’aller sur les sites spécialisés dans les paroles de chansons.

Le: 23 12 2014 à 07:37 FrenchWeb.fr Auteur: Olivier Harmant

« L'offre proposée par Kindle Unlimited ne semble pas conforme à la loi » estime la ministre.

Le: 23 12 2014 à 07:33 jqueryrain.com Auteur: Admin

jQuery simple event calendar make it easier for you to create an event calendar, datepicker or whatever you want with jquery.

The post jQuery Simple Event Calendar appeared first on jQuery Rain.

Le: 23 12 2014 à 07:18 jqueryrain.com Auteur: Admin

Extract images, text from any link like facebook does when you put any url in status update box, This script does the same thing, It extracts contents like image and […]

The post Facebook like Status update Link extractor appeared first on jQuery Rain.

Le: 23 12 2014 à 07:05 presse-citron.net Auteur: Setra

Google vient de montrer une image du premier prototype entièrement fonctionnel de son véhicule autonome.

Le: 23 12 2014 à 07:03 FrenchWeb.fr Auteur: Olivier Harmant

Il aura pour mission de diversifier les sources de revenus du groupe.

Le: 23 12 2014 à 06:44 WebdesignerTrends Auteur: WDTrends

Wall Editions, maison d’édition française d’Art-Posters, édite et propose sur sa boutique des affiches d’Art Pop et contemporain à prix unique. Un concept bien sympathique qui vaut le détour pour redécorer votre bureau ou votre maison. Souvenez-vous il y a … Continuer la lecture