{"id":430,"date":"2010-08-10T10:55:15","date_gmt":"2010-08-10T08:55:15","guid":{"rendered":"https:\/\/www.creativejuiz.fr\/blog\/?p=430"},"modified":"2015-01-18T17:38:40","modified_gmt":"2015-01-18T16:38:40","slug":"effet-lightbox-en-css3-grace-a-transition","status":"publish","type":"post","link":"https:\/\/www.creativejuiz.fr\/blog\/tutoriels\/effet-lightbox-en-css3-grace-a-transition","title":{"rendered":"Effet Lightbox en CSS3 gr\u00e2ce \u00e0 transition"},"content":{"rendered":"<p>C&rsquo;est en parcourant <a href=\"http:\/\/css-tricks.com\/expanding-images-html5\/\" target=\"_blank\" title=\"Article sur CSS Tricks\" hreflang=\"en\">un lien<\/a> partag\u00e9 par <a href=\"http:\/\/goetter.fr\" target=\"_blank\" title=\"Le site perso de Rapha\u00ebl Goetter\">Rapha\u00ebl<\/a> hier dans la journ\u00e9e, que je me suis d\u00e9cid\u00e9 \u00e0 tripoter un petit peu de CSS et HTML pour am\u00e9liorer le rendu de M. Chris Coyier.<!--more--><\/p>\n<h2>O\u00f9 cela se passe-t-il ?<\/h2>\n<p>Vous trouverez les fichiers sur l&rsquo;<a href=\"http:\/\/www.creativejuiz.fr\/trytotry\/\" target=\"_blank\" title=\"Espace de test de CreativeJuiz (nouvelle fen\u00eatre)\">espace de test de CreativeJuiz<\/a>, pr\u00e9cis\u00e9ment \u00e0 cette adresse :<br \/>\n<a href=\"http:\/\/www.creativejuiz.fr\/trytotry\/lightbox-with-tabindex-and-css3\/\" hreflang=\"en\" target=\"_blank\" title=\"Lightbox en CSS3 avec tabindex (nouvelle fen\u00eatre)\">http:\/\/www.creativejuiz.fr\/trytotry\/lightbox-with-tabindex-and-css3\/<\/a><\/p>\n<h2>Le HTML<\/h2>\n<p>Le code HTML utilis\u00e9 est vraiment basique. Pour pimenter le jeu j&rsquo;ai utilis\u00e9 HTML5.<br \/>\nL&rsquo;id\u00e9e c&rsquo;est d&rsquo;avoir un conteneur, une image et un titre pour l&rsquo;image&#8230; rien de mieux qu&rsquo;un jeu de <code>figure<\/code> et <code>figcaption<\/code> pour cela !<\/p>\n<pre class=\"code\"><code class=\"html\">&lt;figure tabindex=\"0\"&gt; \r\n   &lt;img src=\"images\/demo1.jpg\" alt=\"Demo\" \/&gt; \r\n   &lt;figcaption&gt;Rorschach Artefact&lt;\/figcaption&gt; \r\n&lt;\/figure&gt; \r\n&lt;span>&lt;\/span&gt; \r\n\t\t\t\t\t\t\t\r\n&lt;figure tabindex=\"0\"&gt; \r\n   &lt;img src=\"images\/demo2.jpg\" alt=\"Demo\" \/&gt; \r\n   &lt;figcaption&gt;Mystic Light&lt;\/figcaption&gt; \r\n&lt;\/figure&gt; \r\n&lt;span&gt;&lt;\/span&gt; \r\n\t\t\t\t\t\t\t\r\n&lt;figure tabindex=\"0\"&gt; \r\n   &lt;img src=\"images\/demo3.jpg\" alt=\"Demo\" \/&gt; \r\n   &lt;figcaption&gt;A simple idea...&lt;\/figcaption&gt; \r\n&lt;\/figure&gt; \r\n&lt;span&gt;&lt;\/span&gt;<\/code><\/pre>\n<p>Vous remarquerez l&rsquo;ajout d&rsquo;un attribut <code>tabindex<\/code> sur chacun des <code>figure<\/code>, le but est de permettre le focus sur ces \u00e9l\u00e9ments.<br \/>\nL&rsquo;utilisation de <code>span<\/code> vides permettra d&rsquo;imiter le petit <em lang=\"en\">overlay<\/em> que l&rsquo;on retrouve souvent sur les versions JavaScript des lightbox (fancybox, zommbox, etc.).<\/p>\n<h2>Le CSS<\/h2>\n<p>Nous allons b\u00eatement effectuer des animations au focus des <code>figure<\/code>, c&rsquo;est tout l&rsquo;int\u00e9r\u00eat des tabindex :<\/p>\n<p class=\"center\"><img decoding=\"async\" src=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2010\/08\/article-trytotry.jpg\" alt=\"\" title=\"Lightbox Effect with CSS3\" width=\"550\" height=\"279\" class=\"aligncenter size-full wp-image-434\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2010\/08\/article-trytotry.jpg 550w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2010\/08\/article-trytotry-300x152.jpg 300w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n<pre class=\"code\"><code class=\"css\">#slideshow figure {\r\n\tposition: relative;\r\n\tfloat: left;\r\n\tmargin: 20px 37px;\r\n\tz-index: 100;\r\n\twidth: 200px;\r\n\tbackground: #fff;\r\n\tborder: 10px solid #fff;\r\n\t\r\n\t-webkit-border-radius: 8px;\r\n\t-moz-border-radius: 8px;\r\n\tborder-radius: 8px;\r\n\t\r\n\t-webkit-box-shadow: 0 3px 10px #ccc; \r\n\t-moz-box-shadow: 0 3px 10px #ccc;\r\n\tbox-shadow: 0 3px 10px #ccc;\r\n\t\r\n\t-webkit-transition: all 0.7s ease; \r\n\t-moz-transition: all 1s ease;\r\n\t-o-transition: all 1s ease;\r\n\ttransition: all 1s ease;\r\n}\r\n#slideshow figure img {\r\n\twidth: 100%;\r\n}\r\n#slideshow figcaption {\r\n\tfont-family: verdana, arial, sans-serif;\r\n\tfont-size: 1.1em;\r\n\ttext-align: center;\r\n\tcolor: #5d7885;\r\n\tbackground: #fff;\r\n}\r\n\r\n\/*actions*\/\r\n#slideshow figure:focus {\r\n\toutline: none;\r\n\tz-index: 200;\r\n\tmargin-top: 100px;\r\n    -webkit-transform: scale(1.8); \r\n\t-moz-transform: scale(1.8);\r\n\t-o-transform: scale(1.8);\r\n\ttransform: scale(1.8);\r\n    \r\n\t-webkit-box-shadow: 0 3px 10px #333; \r\n\t-moz-box-shadow: 0 3px 10px #333;\r\n\tbox-shadow: 0 3px 10px #333;\r\n}\r\n\r\n#slideshow figure:focus+span {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 0;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\tbackground: #000;\r\n\tz-index: 150;\r\n\t-moz-opacity: 0.6;\r\n\t-webkit-opacity: 0.6;\r\n\topacity: 0.6;\r\n}<\/code><\/pre>\n<p>Beaucoup de code, mais rien de bien compliqu\u00e9, il y a beaucoup de lignes dupliqu\u00e9es \u00e0 cause des diff\u00e9rences de prise en charge de CSS3 des navigateurs \ud83d\ude09<br \/>\nPour que l&rsquo;effet <em lang=\"en\">overlay<\/em> couvre tout le <em lang=\"en\">viewport<\/em>, il faudra ruser pour que chaque parent du <code>span<\/code> soit \u00e0 100% en hauteur et sans position relatif (assez marrant en pratique, en effet).<\/p>\n<h2>Contenteditable<\/h2>\n<p>M. Chris Coyier, dans <a href=\"http:\/\/css-tricks.com\/expanding-images-html5\/\" target=\"_blank\" title=\"Article sur CSS Tricks\" hreflang=\"en\">son article<\/a>, utilisait (hier m\u00eame) l&rsquo;attribut HTML5 contenteditable pour rendre \u00ab\u00a0focusable\u00a0\u00bb un \u00e9l\u00e9ment.<br \/>\nC&rsquo;est toujours bon de savoir que des styles pourront \u00eatre appliqu\u00e9s \u00e0 ces \u00e9l\u00e9ments au contenu \u00e9ditable, c&rsquo;est un comportement qui devient donc tr\u00e8s proche d&rsquo;un simple <code>input<\/code> ou <code>textarea<\/code>.<\/p>\n<p><em class=\"sources\">Liens utiles :<br \/>\n&#8211; <a href=\"http:\/\/www.creativejuiz.fr\/trytotry\/\" target=\"_blank\" title=\"Espace de test de CreativeJuiz (nouvelle fen\u00eatre)\">TryToTry &#8211; Espace de test de CreativeJuiz<\/a><br \/>\n&#8211; <a href=\"http:\/\/www.creativejuiz.fr\/trytotry\/lightbox-with-tabindex-and-css3\/\" hreflang=\"en\" target=\"_blank\" title=\"Lightbox en CSS3 avec tabindex (nouvelle fen\u00eatre)\">TryToTry &#8211; Lightbox en CSS3 avec Tabindex<\/a><br \/>\n&#8211; <a href=\"http:\/\/css-tricks.com\/expanding-images-html5\/\" target=\"_blank\" title=\"Article sur CSS Tricks\" hreflang=\"en\">Article de Chris Coyier sur le sujet<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>C&rsquo;est en parcourant un lien partag\u00e9 par Rapha\u00ebl hier dans la journ\u00e9e, que je me suis d\u00e9cid\u00e9 \u00e0 tripoter un petit peu de CSS et HTML pour am\u00e9liorer le rendu de M. Chris Coyier.<\/p>\n","protected":false},"author":4,"featured_media":317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_bluesky_dont_syndicate":"","_bluesky_syndication_accounts":"","_bluesky_syndication_text":"","footnotes":""},"categories":[17,9,12],"tags":[155,156,16,153,154,121],"coauthors":[597],"class_list":["post-430","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-css-css3","category-tutoriels","category-veille-technologique","tag-clavier","tag-focus","tag-html5","tag-lightbox","tag-tabindex","tag-transition"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/comments?post=430"}],"version-history":[{"count":0,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/430\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media\/317"}],"wp:attachment":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media?parent=430"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/categories?post=430"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/tags?post=430"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/coauthors?post=430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}