<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://arts-numeriques.codedrops.net/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>Arts num&#233;riques</title>
	<link>https://arts-numeriques.codedrops.net/</link>
	<description>artsnumeriques est le support des cours de St&#233;phane Noel, professeur &#224; l'&#233;cole de recherche graphique.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="http://arts-numeriques.codedrops.net/spip.php?id_rubrique=38&amp;page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>Liens externes et internes &#224; la page</title>
		<link>http://arts-numeriques.codedrops.net/Liens-externes-et-internes-a-la-page</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Liens-externes-et-internes-a-la-page</guid>
		<dc:date>2020-11-29T17:09:14Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>



		<description>
&lt;p&gt;Le web est bas&#233; sur le lien hypertexte. Il s'agit, &#224; partir d'une page, de pouvoir par un simple clic visiter une autre page, qu'elle soit sur le m&#234;me serveur (un site est techniquement un ensemble de page dispos&#233;e sur le m&#234;me serveur, accessibles via des liens entre ces pages) ou externe. &lt;br class='autobr' /&gt; Le lien hypertexte vers un page du m&#234;me domaine Le cas le plus simple du lien est le lien vers une page li&#233;e au m&#234;me domaine. Dans ce cas, le lien ne sp&#233;cifique que le lien, le navigateur compl&#232;te (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Le-langage-HTML-" rel="directory"&gt;Le langage HTML&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L150xH70/arton635-670b6.jpg?1774276046' class='spip_logo spip_logo_right' width='150' height='70' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Le web est bas&#233; sur le lien hypertexte. Il s'agit, &#224; partir d'une page, de pouvoir par un simple clic visiter une autre page, qu'elle soit sur le m&#234;me serveur (un site est techniquement un ensemble de page dispos&#233;e sur le m&#234;me serveur, accessibles via des liens entre ces pages) ou externe.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Le lien hypertexte vers un page du m&#234;me domaine&lt;/h2&gt;
&lt;p&gt;Le cas le plus simple du lien est le lien vers une page li&#233;e au m&#234;me domaine. Dans ce cas, le lien ne sp&#233;cifique que le lien, le navigateur compl&#232;te automatique le nom de domaine, qui est celui sur lequel il se trouve d&#233;j&#224; . La page peut &#234;tre &#233;ventuellement dans un sous dossier, ou &#234;tre trait&#233;e par une &lt;i&gt;rewrite rule&lt;/i&gt; du serveur (mais on ne parlera pas de &#231;a ici).&lt;br class='autobr' /&gt;
Tout lien qui ne commence pas par un protocole comme http://, https://, ftp:// sont des liens vers une page du m&#234;me domaine.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;autrepage.html&#034;&gt;Un lien simple&lt;/a&gt; &lt;a href=&#034;sousdossier/autrepage.html&gt;Un page dans un sous-dossier&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Le lien hypertexte vers un autre site&lt;/h2&gt;
&lt;p&gt;un lien est techniquement une balise : un morceau de texte, ou une image, ou m&#234;me un bloc de code deviennent cliquables parce qu'un tag enserre ce contenu. Un attribut href permet au navigateur de savoir vers quel page il doit envoyer le visiteur en cas de clic.&lt;br class='autobr' /&gt;
Ce lien est reconnaissable par le fait qu'il commence par le protocole, la plupart du temps http:// ou https://&lt;br class='autobr' /&gt;
Ce lien peut &#234;tre simple, en donnant juste le nom g&#233;n&#233;ral du site, soit pointer vers une page de ce site, et m&#234;me transporter une information avec lui (on parle d'ent&#234;te en &#034;get&#034;, mais on en parlera pas ici).&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;http://www.site.org&#034;&gt;Un lien via du texte&lt;/a&gt; &lt;a href=&#034;https://wwww.sitesecurise.net&#034;&gt;Un lien en https&lt;/a&gt; &lt;a href=&#034;http://www.pagedunsite.net/page&#034;&gt;Un lien vers une sous-partie de site&lt;/a&gt; &lt;a href=&#034;http://www.site.org/page.php?info=truc&#034;&gt;un lien avec une information transport&#233;e en get&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Un lien vers une sous-partie de la page actuelle&lt;/h2&gt;
&lt;p&gt;Cas plus rarement employ&#233;, un lien peut &#234;tre interne &#224; la page en cours. On utilise alors un lien commen&#231;ant par #. On parle alors de la destination du lien comme une ancre.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;#chapitre1&#034;&gt;Un lien interne vers l'ancre &#034;chapitre1&#034;&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce qui signifie que dans cette page, un id du m&#234;me nom a &#233;t&#233; donn&#233; &#224; l'&#233;l&#233;ment vers lequel on veut pointer.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;!-- navigation interne --&gt; &lt;a href=&#034;#intro&#034;&gt;Lien vers &#034;intro&#034;&lt;/a&gt; &lt;a href=&#034;#partie_1&#034;&gt;Lien vers &#034;partie_1&#034;&lt;/a&gt; &lt;!-- le contenu est ses id de destination--&gt; &lt;div id=&#034;intro&#034;&gt;L'intro&lt;/div&gt; Du texte et des tags &lt;div id=&#034;partie_1&#034;&gt;Partie 1&lt;/div&gt; Autre texte et tags&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le clic sur un lien interne produit un saut imm&#233;diat vers l'endroit de la page o&#249; se trouve l'ancre, en le pla&#231;ant en haut de la fen&#234;tre.&lt;/p&gt;
&lt;p&gt;On peut pointer un lien vers une page externe comportant une ancre, &#233;galement :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;http://www.monsite.org#chap2&#034;&gt;Aller &#224; l'ancre chap2 de la page d'entre de monsite.org&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il faut, &#233;videmment, que cette ancre existe dans la page de ce site...&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Display : flex</title>
		<link>http://arts-numeriques.codedrops.net/Display-flex</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Display-flex</guid>
		<dc:date>2020-10-26T23:18:29Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>



		<description>
&lt;p&gt;L'attribut &#034;display&#034; permet de modifier la mani&#195;&#168;re dont un &#195;&#169;l&#195;&#169;ment va se comporter lors de l'affichage. Depuis CSS3, plusieurs nouvelles options tr&#195;&#168;s int&#195;&#169;ressantes sont propos&#195;&#169;es, dont display : flex. &lt;br class='autobr' /&gt; Les valeurs les plus courantes de display sont display:inline, qui transforme un &#195;&#169;l&#195;&#169;ment en un &#195;&#169;l&#195;&#169;ment inline, ou display:block. display:none permet quand &#195; lui de cacher un &#195;&#169;l&#195;&#169;ment dans la page, pour le rendre visible en cas de clic ou de survol. &lt;br class='autobr' /&gt;
Mais display:flex (ou encore (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Le-langage-CSS-" rel="directory"&gt;Le langage CSS&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L150xH71/arton624-8bd5a.png?1774276046' class='spip_logo spip_logo_right' width='150' height='71' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;L'attribut &#034;display&#034; permet de modifier la mani&#195;&#168;re dont un &#195;&#169;l&#195;&#169;ment va se comporter lors de l'affichage. Depuis CSS3, plusieurs nouvelles options tr&#195;&#168;s int&#195;&#169;ressantes sont propos&#195;&#169;es, dont display : flex.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Les valeurs les plus courantes de display sont &lt;i&gt;display:inline&lt;/i&gt;, qui transforme un &#195;&#169;l&#195;&#169;ment en un &#195;&#169;l&#195;&#169;ment inline, ou &lt;i&gt;display:block&lt;/i&gt;. &lt;i&gt;display:none&lt;/i&gt; permet quand &#195; lui de cacher un &#195;&#169;l&#195;&#169;ment dans la page, pour le rendre visible en cas de clic ou de survol.&lt;/p&gt;
&lt;p&gt;Mais display:flex (ou encore display:grid, qui fera l'objet d'un autre article) permet un comportement plus complexe, principalement l'organisation horizontale des contenus et la gestion de leur r&#195;&#169;partition horizontale et verticale.&lt;/p&gt;
&lt;p&gt;&lt;span class='spip_document_1214 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L331xH152/flex-a7f12.png?1726916475' width='331' height='152' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Une d&#195;&#169;claration qui affecte les enfants&lt;/h2&gt;
&lt;p&gt;Il faut comprendre que &lt;i&gt;display:flex&lt;/i&gt; va affecter non pas l'&#195;&#169;l&#195;&#169;ment qui re&#195;&#167;oit cette d&#195;&#169;claration, mais ses enfants. Voici le comportement par d&#195;&#169;faut de flex :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;.conteneur { display: flex; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class='spip_document_1209 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L500xH254/display_flex-b70f8.png?1774276047' width='500' height='254' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Attention, tous les enfants directement pr&#195;&#169;sents dans .conteneur seront affect&#195;&#169;s, quels que soit le type de tag (inline ou block, article, p, div, etc.). Il est donc n&#195;&#169;cessaire de bien structurer le code html dans ce but.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;... Et plein d'options !&lt;/h2&gt;
&lt;p&gt;Une fois que le conteneur a re&#195;&#167;u le comportement de base du flex, il est possible d'utiliser un grand nombre d'options compl&#195;&#169;mentaires, toutes d&#195;&#169;taill&#195;&#169;es de mani&#195;&#168;re claire sur &lt;a href=&#034;https://css-tricks.com/snippets/css/a-guide-to-flexbox/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;le site CSS tricks&lt;/a&gt; (par exemple).&lt;br class='autobr' /&gt;
Ces d&#195;&#169;clarations css compl&#195;&#169;mentaires sont de deux types : celles qui s'appliquent sur le conteneur, et celles qui s'applique sur ses enfants.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Un exemple : flex-wrap:wrap&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt; &lt;i&gt;flex-wrap&lt;/i&gt; &lt;/strong&gt; est un attribut important, qui permet aux &#195;&#169;l&#195;&#169;ments enfants de s'afficher sur plusieurs lignes si le conteneur est trop petit pour tout afficher sur une seule.&lt;br class='autobr' /&gt;
Ce code html permet de tester flex :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;section class=&#034;parent&#034;&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;/section&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;link rel=&#034;stylesheet&#034; href='http://arts-numeriques.codedrops.net/squelettes/flex.css'&gt;&lt;br class='autobr' /&gt;
Voici un premier essai avec des enfants avec une largeur de 25% :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;.parent { display:flex; } .parent article{ width:25%; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;div class=&#034;parent nowrap childrenfixe&#034;&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;/div&gt;
&lt;p&gt;Malgr&#195;&#169; la taille en 25%, les 6 &#195;&#169;l&#195;&#169;ments se r&#195;&#169;partissent la largeur de leur parent en flex. Par d&#195;&#169;faut, les enfants d'un &#195;&#169;l&#195;&#169;ment en &lt;i&gt;display:flex&lt;/i&gt; ne passent pas &#195; la ligne lorsque leur taille ex&#195;&#168;de leur parent.&lt;/p&gt;
&lt;h3&gt;Avec flex-wrap : wrap&lt;/h3&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;.parent { display:flex; flex-wrap: wrap; } .parent article{ width:25%; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;div class=&#034;parent wrap childrenfixe&#034;&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;article&gt;Bloc&lt;/article&gt; &lt;/div&gt;
&lt;p&gt;Cette fois, les &#195;&#169;l&#195;&#169;ments re&#195;&#167;oivent l'autorisation avec &lt;i&gt;flex-wrap:wrap&lt;/i&gt; de passer &#195; la ligne.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Des options nombreuses&lt;/h2&gt;
&lt;p&gt;Flex comporte de nombreuses options suppl&#195;&#169;mentaires. Certaines sont destin&#195;&#169;e &#195; l'&#195;&#169;l&#195;&#169;ment parent, comme flex-wrap, mais d'autres peuvent &#195;&#170;tre appliqu&#195;&#169;s aux enfants.&lt;/p&gt;
&lt;p&gt;Par exemple, &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;order&lt;/i&gt; permet de changer l'ordre des &#195;&#169;l&#195;&#169;ments.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;.element2 { order:-1; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;div class=&#034;parent wrap childrenfixe&#034;&gt; &lt;article&gt;Bloc 1&lt;/article&gt; &lt;article class=&#034;element2&#034;&gt;Bloc 2&lt;/article&gt; &lt;article&gt;Bloc 3&lt;/article&gt; &lt;article&gt;Bloc 4&lt;/article&gt; &lt;article&gt;Bloc 5&lt;/article&gt; &lt;article&gt;Bloc 6&lt;/article&gt; &lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; grow permet &#195; certains enfants de grandir plus que d'autres&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;.element4 { flex-grow: 4; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;div class=&#034;parent wrap&#034;&gt; &lt;article&gt;Bloc 1&lt;/article&gt; &lt;article class=&#034;element2&#034;&gt;Bloc 2&lt;/article&gt; &lt;article&gt;Bloc 3&lt;/article&gt; &lt;article class=&#034;element4&#034;&gt;Bloc 4&lt;/article&gt; &lt;article&gt;Bloc 5&lt;/article&gt; &lt;article&gt;Bloc 6&lt;/article&gt; &lt;/div&gt;
&lt;p&gt;Voir &lt;a href=&#034;https://css-tricks.com/snippets/css/a-guide-to-flexbox/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;l'excellent article sur CSS trick&lt;/a&gt; pour une description assez compl&#195;&#168;te des possibilit&#195;&#169;s&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Utilisation de class en html et css</title>
		<link>http://arts-numeriques.codedrops.net/L-utilisation-de-l-attribut-class-en-html-et-css</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/L-utilisation-de-l-attribut-class-en-html-et-css</guid>
		<dc:date>2020-10-25T13:41:24Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>



		<description>
&lt;p&gt;Les classes Une classe est assez proche de l'id, on l'associe &#195; un &#195;&#169;l&#195;&#169;ment de la page comme ceci : &lt;br class='autobr' /&gt;
Notez bien ! &lt;br class='autobr' /&gt;
Ensuite on peut les atteindre en css comme ceci : &lt;br class='autobr' /&gt; .important color:red ; &lt;br class='autobr' /&gt; Le point devant le terme signifie que l'on cherche &#195; atteindre une classe dont le nom est &#034;important&#034;. L'avantage de la classe c'est que plusieurs &#195;&#169;l&#195;&#169;ments peuvent se voir associer la m&#195;&#170;me classe : Notez bien ! &lt;br class='autobr' /&gt;
On peut m'associer plusieurs fois. &lt;br class='autobr' /&gt;
La diff&#195;&#169;rence entre les deux est dans le (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Le-langage-CSS-" rel="directory"&gt;Le langage CSS&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Les classes&lt;/h2&gt;
&lt;p&gt;Une classe est assez proche de l'id, on l'associe &#195; un &#195;&#169;l&#195;&#169;ment de la page comme ceci :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;p class=&#034;important&#034;&gt;Notez bien !&lt;/p&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ensuite on peut les atteindre en css comme ceci :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;.important { color:red; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le point devant le terme signifie que l'on cherche &#195; atteindre une classe dont le nom est &#034;important&#034;.&lt;br class='autobr' /&gt;
L'avantage de la classe c'est que plusieurs &#195;&#169;l&#195;&#169;ments peuvent se voir associer la m&#195;&#170;me classe :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;h1 class=&#034;important&#034;&gt;Notez bien !&lt;/h1&gt; &lt;p class=&#034;important&#034;&gt;On peut m'associer plusieurs fois.&lt;/p&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La diff&#195;&#169;rence entre les deux est dans le mani&#195;&#168;re de les coder (# et .) et dans la limitation des id &#195; &#195;&#170;tre associ&#195;&#169;s une seule fois.&lt;br class='manualbr' /&gt;On verra plus tard que les id sont prioritaires sur les classes dans la hi&#195;&#169;rarchie des d&#195;&#169;clarations css.&lt;/p&gt;
&lt;p&gt;G&#195;&#169;n&#195;&#169;ralement, associer un ID &#195; un &#195;&#169;l&#195;&#169;ment signifie &#034;bloc important&#034; dans une structure html. On les emploie souvent pour d&#195;&#169;signer, le bloc de titre, la navigation, le corps de la page et le footer, par exemple.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Associer plusieurs classes &#195; un &#195;&#169;l&#195;&#169;ment&lt;/h2&gt;
&lt;p&gt;Un des avantages des classes est que l'on peut en associer plusieurs au m&#195;&#170;me &#195;&#169;l&#195;&#169;ment. C'est d'ailleurs depuis quelques ann&#195;&#169;es une des tendances lourdes du d&#195;&#169;veloppement web.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;article class=&#034;cartouche alerte&#034;&gt; Un contenu &lt;/article&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Les deux classes sont simplement s&#195;&#169;par&#195;&#169;es par un espace, et peuvent seront cod&#195;&#169;es ind&#195;&#169;pendamment :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;.cartouche { padding:20px; border:1px solid #666; border-radius:10px; } .alerte { background-color:red; color:white; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Les deux comportements s'aditionnent, ou en fonction de la hi&#195;&#169;rarchie, se supplantent.&lt;/p&gt;
&lt;p&gt;Des classes et un id sur le m&#195;&#170;me &#195;&#169;l&#195;&#169;ment&lt;br class='autobr' /&gt;
Evidemment, il est tout &#195; fait possible d'associer des classes et un id au m&#195;&#170;me &#195;&#169;l&#195;&#169;ment.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;header id=&#034;truc&#034; class=&#034;machin&#034;&gt; Un header &lt;/header&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Avec par exemple :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#truc { font-size:28px; } .machin { color:orange; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;L&#195; aussi, les comportement s'additionnent ou se supplantent suivant la hi&#195;&#169;rarchie. On notera qu'en cas de conflit, c'est l'id qui a la plus grande priorit&#195;&#169; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;section id=&#034;chose&#034; class=&#034;bidule&#034;&gt;Une section&lt;/section&gt; #chose { color:green; } .bidule { color:orange; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ici la couleur des textes est d&#195;&#169;finie par la classe et l'id, et comme l'id est prioritaire, le texte sera affich&#195;&#169; en vert.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Ajouter Fancybox dans une page web</title>
		<link>http://arts-numeriques.codedrops.net/Ajouter-Fancybox-dans-une-page-web</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Ajouter-Fancybox-dans-une-page-web</guid>
		<dc:date>2020-03-24T15:34:55Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>



		<description>
&lt;p&gt;Fancybox est une librairie javascript (+ css) qui permet d'afficher des images en grand format dans une page. Ce n'est pas le seul qui existe, loin de l&#195; , mais c'est le plus utilis&#195;&#169;. Il est donc &#195;&#169;prouv&#195;&#169; et facile &#195; utiliser. &lt;br class='autobr' /&gt; Proc&#195;&#169;der par &#195;&#169;tapes Le site de Fancybox contient d&#195;&#169;j&#195; toute la documentation sur son utilisation, mais reprenons la proc&#195;&#169;dure de mani&#195;&#168;re adapt&#195;&#169;e au code d&#195;&#169;j&#195; &#195;&#169;crit dans les articles pr&#195;&#169;c&#195;&#169;dents : &lt;br class='autobr' /&gt;
1) T&#195;&#169;l&#195;&#169;charger et placer les fichiers Fancybox est une (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Quelques-applications-HTML-CSS-JS-" rel="directory"&gt;Quelques applications HTML CSS JS&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L150xH55/arton599-16355.jpg?1774276047' class='spip_logo spip_logo_right' width='150' height='55' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Fancybox est une librairie javascript (+ css) qui permet d'afficher des images en grand format dans une page. Ce n'est pas le seul qui existe, loin de l&#195; , mais c'est le plus utilis&#195;&#169;. Il est donc &#195;&#169;prouv&#195;&#169; et facile &#195; utiliser.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Proc&#195;&#169;der par &#195;&#169;tapes&lt;/h2&gt;
&lt;p&gt;Le &lt;a href=&#034;https://fancyapps.com/fancybox/3/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;site de Fancybox&lt;/a&gt; contient d&#195;&#169;j&#195; toute la documentation sur son utilisation, mais reprenons la proc&#195;&#169;dure de mani&#195;&#168;re adapt&#195;&#169;e au code d&#195;&#169;j&#195; &#195;&#169;crit dans les articles pr&#195;&#169;c&#195;&#169;dents :&lt;/p&gt;
&lt;p&gt;1) T&#195;&#169;l&#195;&#169;charger et placer les fichiers&lt;br class='autobr' /&gt;
Fancybox est une librairie bas&#195;&#169;e sur jQuery. &#195;&#8225;a tombe bien, nous avons d&#195;&#169;j&#195; t&#195;&#169;l&#195;&#169;charg&#195;&#169; et plac&#195;&#169; jQuery dans le tutoriel pr&#195;&#169;c&#195;&#169;dent.&lt;br class='autobr' /&gt;
Apr&#195;&#168;s avoir t&#195;&#169;l&#195;&#169;charg&#195;&#169; la librairie depuis le site de Fancybox, on identifie les fichiers n&#195;&#169;cessaires. Ils sont au nombre de deux et sont situ&#195;&#169;s dans le dossier dist :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; jquery.fancybox.min.css
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; jquery.fancybox.min.js&lt;/p&gt;
&lt;p&gt;&lt;span class='spip_document_1065 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L500xH212/java-6-c8bc5.jpg?1774276047' width='500' height='212' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Il suffit de placer ces deux fichiers dans le dossier du site, puis de les charger dans le head de la page :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; &lt;head&gt; &lt;meta charset=&#034;utf-8&#034;&gt; &lt;meta name=&#034;viewport&#034; content=&#034;width=device-width, initial-scale=1.0&#034;&gt; &lt;title&gt;Un site en une page&lt;/title&gt; &lt;link rel=&#034;stylesheet&#034; href=&#034;style.css&#034;&gt; &lt;!-- jquery d'abord ! --&gt; &lt;script src=&#034;jquery-3.4.1.min.js&#034;&gt;&lt;/script&gt; &lt;script src=&#034;script.js&#034;&gt;&lt;/script&gt; &lt;!-- fancybox, apr&#195;&#168;s jQuery ! --&gt; &lt;script src=&#034;jquery.fancybox.min.js&#034;&gt;&lt;/script&gt; &lt;link rel=&#034;stylesheet&#034; href=&#034;jquery.fancybox.min.css&#034;&gt; &lt;/head&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;2) Pr&#195;&#169;parer l'image et sa vignette&lt;/h2&gt;
&lt;p&gt;Le principe de Fancybox est que l'on affiche une vignette de l'image. Un clic sur cette vignette produit l'affichage en plus grand de cette m&#195;&#170;me image.&lt;br class='autobr' /&gt;
L'&lt;strong&gt;image en grand format&lt;/strong&gt; ne doit pas &#195;&#170;tre trop grande. Une taille d'environ 1200 pixels de large est tout &#195; fait suffisante. Il est inutile et m&#195;&#170;me d&#195;&#169;conseill&#195;&#169; de placer des image de 1600 pixels ou plus : elles seront r&#195;&#169;duites &#195; l'affichage alors que le navigateur devra en t&#195;&#169;l&#195;&#169;charger chaque pixel. Du gaspillage de bande passante, pas tr&#195;&#168;s &#195;&#169;colo donc.&lt;br class='autobr' /&gt;
La taille de la vignette d&#195;&#169;pend du nombre de vignettes affich&#195;&#169;es. Dans notre cas, 500 pixels de large sera suffisant, et probablement un peu trop, mais on va garder &#195;&#167;a.&lt;/p&gt;
&lt;p&gt;Produisez ces images et d&#195;&#169;posez-les dans le dossier &#034;images&#034; qui est fait pour &#195;&#167;a.&lt;br class='autobr' /&gt;
On obtient ceci :&lt;br class='autobr' /&gt;
&lt;span class='spip_document_1066 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L500xH229/java-8-86fc5.jpg?1774276047' width='500' height='229' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Trouvez un syst&#195;&#168;me de nom logique, la plupart du temps on ajoute &#034;-small&#034; au nom des vignettes pour que les deux images soient list&#195;&#169;es c&#195;&#180;te &#195; c&#195;&#180;te et aient un nom similaire.&lt;br class='autobr' /&gt;
Rappel : ne mettez jamais de caract&#195;&#168;re sp&#195;&#169;ciaux (@&amp;&#195;&#169; etc.) ni d'espace dans un nom de fichier sur le web ! C'est une source d'erreur.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;3) Placer les images dans la page&lt;/h2&gt;
&lt;p&gt;Il nous reste maintenant &#195; placer le code html dans notre page.&lt;br class='autobr' /&gt;
La m&#195;&#169;thode est simple : on cr&#195;&#169;e un tag &#034;a&#034; qui enserre la vignette. La destination du lien (l'attribut &#034;href&#034;) est le lien vers l'image. On ajoute un attribut au lien data-fancybox=&#034;truc&#034; qui permet &#195; Fancybox de savoir qu'il dit agir sur cet &#195;&#169;l&#195;&#169;ment. Lorsqu'on clique, Fancybox r&#195;&#169;cup&#195;&#168;re le lien dans l'attribut href et l'ouvre par dessus la page dans des &#195;&#169;l&#195;&#169;ments html qu'il cr&#195;&#169;e &#195; la vol&#195;&#169;e.&lt;/p&gt;
&lt;p&gt;Voici le code &#195;&#169;crit dans l'article de la galerie ;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; &lt;article id=&#034;galerie&#034;&gt; &lt;h2&gt;La galerie&lt;/h2&gt; &lt;div class=&#034;grille&#034;&gt; &lt;a href=&#034;images/australie.jpg&#034; data-fancybox=&#034;truc&#034;&gt;&lt;img src=&#034;images/australie-small.jpg&#034;&gt;&lt;/a&gt; &lt;a href=&#034;images/le-navire-grande-america.jpg&#034; data-fancybox=&#034;truc&#034;&gt;&lt;img src=&#034;images/le-navire-grande-america.jpg&#034;&gt;&lt;/a&gt; &lt;/div&gt; &lt;/article&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le fait que les deux liens aie le m&#195;&#170;me attribut data-fancybox (truc, dans le code ci-dessus) les lie entre elles : fancybox dispose les fl&#195;&#168;ches qui permettent de passer directement de l'affichage de l'une &#195; l'autre.&lt;/p&gt;
&lt;p&gt;&#195;&#8225;a donne donc &#195;&#167;a :&lt;br class='autobr' /&gt;
&lt;span class='spip_document_1067 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L500xH184/java-9-f203e.jpg?1774276047' width='500' height='184' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Afficher des contenus dans un &#195;&#169;l&#195;&#169;ment avec jquery</title>
		<link>http://arts-numeriques.codedrops.net/Afficher-des-contenus-dans-un-elements-avec-jquery</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Afficher-des-contenus-dans-un-elements-avec-jquery</guid>
		<dc:date>2020-03-24T13:56:20Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>



		<description>
&lt;p&gt;Sur base du code du premier tutoriel, qui pla&#195;&#167;ait le code de base html et cs, nous pouvons maintenant int&#195;&#169;grer des fonctions en javascript, et plus pr&#195;&#169;cis&#195;&#169;ment jquery. &lt;br class='autobr' /&gt; 1) Avant tout, t&#195;&#169;l&#195;&#169;charger et placer jQuery Avant de coder, on ira chercher la derni&#195;&#168;re version de jQuery. La version compress&#195;&#169;e pour la production est celle qui nous int&#195;&#169;resse. T&#195;&#169;l&#195;&#169;chargez-l&#195; et placez le fichier dans le dossier du site. &lt;br class='autobr' /&gt;
Dans la foul&#195;&#169;e, on cr&#195;&#169;e un fichier script.js dans lequel on placera (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Quelques-applications-HTML-CSS-JS-" rel="directory"&gt;Quelques applications HTML CSS JS&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L150xH131/arton598-818fd.jpg?1774276047' class='spip_logo spip_logo_right' width='150' height='131' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Sur base du code du premier tutoriel, qui pla&#195;&#167;ait le code de base html et cs, nous pouvons maintenant int&#195;&#169;grer des fonctions en javascript, et plus pr&#195;&#169;cis&#195;&#169;ment jquery.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;1) Avant tout, t&#195;&#169;l&#195;&#169;charger et placer jQuery&lt;/h2&gt;
&lt;p&gt;Avant de coder, on ira chercher la derni&#195;&#168;re version de jQuery. La version &lt;a href=&#034;https://jquery.com/download/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;compress&#195;&#169;e pour la production&lt;/a&gt; est celle qui nous int&#195;&#169;resse. T&#195;&#169;l&#195;&#169;chargez-l&#195; et placez le fichier dans le dossier du site.&lt;/p&gt;
&lt;p&gt;Dans la foul&#195;&#169;e, on cr&#195;&#169;e un fichier script.js dans lequel on placera notre code.&lt;br class='autobr' /&gt;
On obtient la structure suivante :&lt;/p&gt;
&lt;p&gt;&lt;span class='spip_document_1060 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L314xH103/java-2-13619.jpg?1726902487' width='314' height='103' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Dans le code html, on charge les deux fichiers javascript dans le head de la page, comme ceci&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; &lt;head&gt; &lt;meta charset=&#034;utf-8&#034;&gt; &lt;meta name=&#034;viewport&#034; content=&#034;width=device-width, initial-scale=1.0&#034;&gt; &lt;title&gt;Un site en une page&lt;/title&gt; &lt;link rel=&#034;stylesheet&#034; href=&#034;style.css&#034;&gt; &lt;!-- jquery d'abord ! --&gt; &lt;script src=&#034;jquery-3.4.1.min.js&#034;&gt;&lt;/script&gt; &lt;script src=&#034;script.js&#034;&gt;&lt;/script&gt; &lt;/head&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;2) Formuler clairement ce qu'on veut coder&lt;/h2&gt;
&lt;p&gt;Une des bases de l'&#195;&#169;criture du code, c'est d'&#195;&#170;tre capable d'&#195;&#169;noncer de la mani&#195;&#168;re la plus pr&#195;&#169;cise possible ce qu'on veut coder. &lt;br class='autobr' /&gt;
Dans notre cas, c'est assez simple :&lt;/p&gt;
&lt;p&gt;&lt;span class='spip_document_1059 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L500xH398/java-1-0059e.jpg?1774276047' width='500' height='398' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Pour pouvoir tester ce code, nous devons cr&#195;&#169;er des contenus minimaux &#195; afficher.&lt;/p&gt;
&lt;p&gt;Pour cela, on va placer un peu de html dans la partie #contenus :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; &lt;section id=&#034;contenus&#034;&gt; &lt;button id=&#034;close&#034;&gt;Fermer&lt;/button&gt; &lt;article id=&#034;contenu1&#034;&gt; &lt;h2&gt;Contenu num&#195;&#169;ro 1&lt;/h2&gt; &lt;/article&gt; &lt;article id=&#034;contenu2&#034;&gt; &lt;h2&gt;Contenu num&#195;&#169;ro 2&lt;/h2&gt; &lt;/article&gt; &lt;article id=&#034;galerie&#034;&gt; &lt;h2&gt;La galerie&lt;/h2&gt; &lt;/article&gt; &lt;/section&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Tous les liens de la navigation se comportent de la m&#195;&#170;me mani&#195;&#168;re : ils provoquent l'affichage d'un contenu sp&#195;&#169;cifique. On peut donc employer une m&#195;&#170;me commande pour tous les liens qui dit &#034;affiche cet article dans la partie #contenus&#034; mais il faut cr&#195;&#169;er un lien logique entre un lien et son contenu. Pour &#195;&#167;a on va employer l'attribut &#034;data-contenu&#034; (voir la &lt;a href=&#034;https://developer.mozilla.org/fr/docs/Apprendre/HTML/Comment/Utiliser_attributs_donnes&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;documentation sur Mozilla&lt;/a&gt;) comme ceci :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;header&gt; &lt;h1&gt;Titre principal&lt;/h1&gt; &lt;nav&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#034;#&#034; data-contenu=&#034;#contenu1&#034;&gt;Information 1&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#034;#&#034; data-contenu=&#034;#contenu2&#034;&gt;Information 2&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#034;#&#034; data-contenu=&#034;#galerie&#034;&gt;Galerie&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/nav&gt; &lt;/header&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Remarquez que le contenu de l'attribut &#034;data-contenu&#034; correspond aux attribut &#034;id&#034; des articles cr&#195;&#169;&#195;&#169;s plus haut. C'est ce qui permet de faire la correspondance entre les deux &#195;&#169;l&#195;&#169;ments pour le code javascript.&lt;br class='autobr' /&gt;
Nous somme maintenant pr&#195;&#170;t &#195; coder.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Le code javascript&lt;/h2&gt;
&lt;p&gt;La version minimale de notre code va faire ceci :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; au chargement de la page, cacher #contenus
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; quand on clique sur un des liens, cacher tous les articles de #contenus, et n'afficher que celui li&#195;&#169; au clic
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; puis afficher #contenus&lt;/p&gt;
&lt;p&gt;Comme cette fen&#195;&#170;tre apparait par dessus une image, on va donner la possibilit&#195;&#169; de la fermer par un clic. &lt;br class='autobr' /&gt;
On a d&#195;&#169;j&#195; ajout&#195;&#169; un &#195;&#169;l&#195;&#169;ment de type &#034;button&#034; directement dans le tag #contenus, on va ajouter dans javascript le code correspondant&lt;/p&gt;
&lt;p&gt;&#195;&#8225;a donne &#195;&#167;a&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$(document).ready(function(){ // quand la page est charg&#195;&#169;e enti&#195;&#168;rement, juste avant de l'afficher $(&#034;#contenus&#034;).hide(); // cacher #contenus $(&#034;nav a&#034;).click(function(){ // quand on clique sur les liens de la navigation // r&#195;&#169;cup&#195;&#169;rer le contenu de data-contenu pour le lien cliqu&#195;&#169; var lequel=$(this).attr(&#034;data-contenu&#034;); $(&#034;#contenus article&#034;).hide(); // cacher les articles $(lequel).show(); // montrer celi qui correspond au clic $(&#034;#contenus&#034;).fadeIn(500); // afficher #contenus }); // le bouton close $(&#034;#close&#034;).click(function(){ $(&#034;#contenus&#034;).fadeOut(&#034;500&#034;); }); });&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et c'est fait.&lt;/p&gt;
&lt;p&gt;&lt;span class='spip_document_1063 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L500xH435/java-5-a6063.jpg?1774276047' width='500' height='435' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="http://arts-numeriques.codedrops.net/IMG/zip/site-unepage.zip" length="221388" type="application/zip" />
		

	</item>
<item xml:lang="fr">
		<title>Web et s&#195;&#169;mantique</title>
		<link>http://arts-numeriques.codedrops.net/Web-et-semantique</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Web-et-semantique</guid>
		<dc:date>2019-12-10T12:30:16Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>



		<description>
&lt;p&gt;La s&#195;&#169;mantique est une notion importante dans le domaine du code. Et ceci pour des raisons diff&#195;&#169;rentes, qu'il faut un peu pr&#195;&#169;ciser. &lt;br class='autobr' /&gt; La s&#195;&#169;mantique &#034;La s&#195;&#169;mantique est une branche de la linguistique qui &#195;&#169;tudie les signifi&#195;&#169;s, ce dont on parle, ce que l'on veut &#195;&#169;noncer. Sa branche sym&#195;&#169;trique, la syntaxe, concerne pour sa part le signifiant, sa forme, sa langue, sa graphie, sa grammaire, etc. ; c'est la forme de l'&#195;&#169;nonc&#195;&#169;.&#034; (wikipedia) &lt;br class='autobr' /&gt;
La s&#195;&#169;mantique concerne donc les langages en (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Le-langage-HTML-" rel="directory"&gt;Le langage HTML&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;La s&#195;&#169;mantique est une notion importante dans le domaine du code. Et ceci pour des raisons diff&#195;&#169;rentes, qu'il faut un peu pr&#195;&#169;ciser.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;La s&#195;&#169;mantique&lt;/h2&gt;&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;&#034;La s&#195;&#169;mantique est une branche de la linguistique qui &#195;&#169;tudie les signifi&#195;&#169;s, ce dont on parle, ce que l'on veut &#195;&#169;noncer. Sa branche sym&#195;&#169;trique, la syntaxe, concerne pour sa part le signifiant, sa forme, sa langue, sa graphie, sa grammaire, etc. ; c'est la forme de l'&#195;&#169;nonc&#195;&#169;.&#034;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(&lt;a href=&#034;https://fr.wikipedia.org/wiki/S%C3%A9mantique&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;wikipedia&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;La s&#195;&#169;mantique concerne donc les langages en g&#195;&#169;n&#195;&#169;ral, et leur relation avec le sens qu'ils v&#195;&#169;hiculent. &lt;br class='autobr' /&gt;
En s&#195;&#169;mantique, on peut par exemple associer le mot &#034;Lune&#034; et &#034;Douleur&#034; dans le champ s&#195;&#169;mantique de la po&#195;&#169;sie alors qu'il n'y a entre ces deux mots aucun lien &#195;&#169;tymologique ou syntaxique. Au quotidien, nous sommes capables d'identifier des champs s&#195;&#169;mantiques lors de lecture ou discussion et donc comprendre leur signification. Cela nous permet d'adapter notre langage et nos &#195;&#169;crits pour leur contexte de r&#195;&#169;ception.&lt;br class='autobr' /&gt;
Dans la phrase &#034;Notre ami Charles nous a quitt&#195;&#169; bien trop pr&#195;&#169;cipitamment&#034; nous pouvons facilement identifier que la signification est que Charles est mort, et que le contexte est celui du respect et de la peine. D'autres verbes appartiennent au m&#195;&#170;me champ s&#195;&#169;mantique comme s'&#195;&#169;teindre, d&#195;&#169;c&#195;&#169;der, mourir, disparaitre, crever, passer l'arme &#195; gauche, claquer, etc. mais leur champ s&#195;&#169;mantique les associe &#195; d'autres contextes. Savoir choisir ses mots, c'est identifier le champ s&#195;&#169;mantique ambiant et les utiliser en accord ou en rupture avec celui-ci.&lt;/p&gt;
&lt;p&gt;Il existe des dictionnaires et des bases de donn&#195;&#169;es s&#195;&#169;mantiques qui relient des mots &#195; des autres par association s&#195;&#169;mantique, et c'est un domaine d'&#195;&#169;tude important dans le domaine de l'intelligence artificielle, puisque des tas d'informations sont nich&#195;&#169;es dans la s&#195;&#169;mantique. Parfois l'ironie, la moquerie ou la flatterie sont cach&#195;&#169;s dans les choix s&#195;&#169;mantiques. &lt;br class='autobr' /&gt;
Ceci &#195;&#169;tant pos&#195;&#169;, qu'est-ce que la s&#195;&#169;mantique a &#195; voir avec le web ? Et bien, on parlera de s&#195;&#169;mantique &#195; 2 niveaux au moins.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Le html est un code s&#195;&#169;mantique&lt;/h2&gt;
&lt;p&gt;Le code html est un syst&#195;&#168;me de balises (comme la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;h1&gt;&lt;/code&gt; par exemple) qui entourent le contenu des pages, en leur donnant une valeur s&#195;&#169;mantique. La balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;h1&gt;Truc&lt;/h1&gt;&lt;/code&gt; permet au navigateur de reconnaitre le mot &#034;Truc&#034; comme &#195;&#169;tant un titre, et lui donner visuellement une taille plus importante, en accord avec cette fonction s&#195;&#169;mantique. Coder une page web est donc principalement structurer s&#195;&#169;mantiquement un contenu complexe compos&#195;&#169; de titres, de textes, de listes, de citations, etc. avec les balises correspondantes. Une fois ce travail fait, on assure un meilleur affichage de la page, mais aussi un meilleur r&#195;&#169;f&#195;&#169;rencement, puisque les moteur d'indexation et de recherche se base sur ces structures s&#195;&#169;mantiques pour identifier les diff&#195;&#169;rents contenus de la page.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Le web est s&#195;&#169;mantique&lt;/h2&gt;
&lt;p&gt;Dans la foul&#195;&#169;e de cette notion de page s&#195;&#169;mantique, beaucoup de personnes impliqu&#195;&#169;es dans l'avenir d'internet, Tim Bernes-Lee en t&#195;&#170;te, voudraient renforcer la s&#195;&#169;mantique non pas seulement d'une page ou d'un site, mais d'internet tout entier. Ils ont cr&#195;&#169;&#195;&#169; le concept de web s&#195;&#169;mantique avec l'id&#195;&#169;e que si tout le monde utilise une m&#195;&#170;me mani&#195;&#168;re d'indexer les contenus, le r&#195;&#169;f&#195;&#169;rencement serait tellement facile que le web deviendrait alors une gigantesque base de donn&#195;&#169;e. On peut penser que c'est d&#195;&#169;j&#195; le cas, mais en fait non : les pages web sont cod&#195;&#169;es par des personnes diff&#195;&#169;rentes, qui utilisent des structures de page diff&#195;&#169;rentes, et un m&#195;&#170;me type d'information peut &#195;&#170;tre cod&#195;&#169; de mani&#195;&#168;re tr&#195;&#168;s diff&#195;&#169;rent selon les choix des codeurs. Par exemple le site web d'un mus&#195;&#169;e pourrait contenir une page d&#195;&#169;crivant le d&#195;&#169;jeuner sur l'herbe de Manet de la mani&#195;&#168;re suivante :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;img src=&#034;dsle.jpg&#034;&gt; &lt;h1&gt;Le d&#195;&#169;jeuner sur l'Herbe&lt;/h1&gt; &lt;div class=&#034;auteur&#034;&gt;Edouard Manet&lt;/div&gt; &lt;p&gt;1863&lt;/p&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;L'information est pr&#195;&#169;sente, le titre est dans une balise h1, mais l'auteur est identifi&#195;&#169; par un nom de classe et la date est juste dans une balise de paragraphe. Pour un robot, pas facile de savoir quelle information correspond &#195; quoi...&lt;/p&gt;
&lt;p&gt;La question est politique, car si un contenu est ignor&#195;&#169; juste parce qu'il est mal structur&#195;&#169;, l'information risque d'&#195;&#170;tre uniquement dans les mains de ceux qui &#034;codent bien&#034;, au d&#195;&#169;triment des amateurs qui font des erreurs. Or l'id&#195;&#169;e des premiers d&#195;&#169;veloppeurs du net &#195;&#169;tait l'acc&#195;&#168;s d&#195;&#169;mocratique &#195; la cr&#195;&#169;ation de contenus.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Faire apparaitre un bloc lat&#195;&#169;ral avec un clic en jquery</title>
		<link>http://arts-numeriques.codedrops.net/Faire-apparaitre-un-bloc-lateral-avec-un-clic-en-jquery</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Faire-apparaitre-un-bloc-lateral-avec-un-clic-en-jquery</guid>
		<dc:date>2019-12-04T22:51:49Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>



		<description>
&lt;p&gt;En utilisant html, css et javascript, on peut produire l'apparition de bloc d'information en clic. &lt;br class='autobr' /&gt; Il s'agit dans ce cas assez courant de d&#195;&#169;clencher l'apparition de blocs d'informations gr&#195;&#162;ce &#195; un clic sur un &#195;&#169;l&#195;&#169;ment quelconque (image, texte, etc.). &lt;br class='autobr' /&gt;
Cet exemple assume que jquery est install&#195;&#169;. &lt;br class='autobr' /&gt;
Code html Un bloc Un autre Un troisi&#195;&#168;me &lt;br class='autobr' /&gt; Contenu du bloc 1 (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Quelques-applications-HTML-CSS-JS-" rel="directory"&gt;Quelques applications HTML CSS JS&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L150xH79/arton567-5b912.jpg?1774276047' class='spip_logo spip_logo_right' width='150' height='79' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;En utilisant html, css et javascript, on peut produire l'apparition de bloc d'information en clic.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Il s'agit dans ce cas assez courant de d&#195;&#169;clencher l'apparition de blocs d'informations gr&#195;&#162;ce &#195; un clic sur un &#195;&#169;l&#195;&#169;ment quelconque (image, texte, etc.).&lt;/p&gt;
&lt;p&gt;Cet exemple assume que jquery est install&#195;&#169;.&lt;/p&gt;
&lt;p&gt;Code html&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; &lt;ul id=&#034;liste&#034;&gt; &lt;li&gt;&lt;a href=&#034;#bloc1&#034;&gt;Un bloc&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#034;#bloc2&#034;&gt;Un autre&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#034;#bloc3&#034;&gt;Un troisi&#195;&#168;me&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;section id=&#034;blocs&#034;&gt; &lt;article id=&#034;bloc1&#034;&gt; &lt;h2&gt;Contenu du bloc 1&lt;/h2&gt; &lt;/article&gt; &lt;article id=&#034;bloc2&#034;&gt; &lt;h2&gt;Contenu du bloc 2&lt;/h2&gt; &lt;/article&gt; &lt;article id=&#034;bloc3&#034;&gt; &lt;h2&gt;Contenu du bloc 3&lt;/h2&gt; &lt;/article&gt; &lt;/section&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Le code CSS&lt;/h2&gt;
&lt;p&gt;Aucun code superflu ici. Les blocs d'information sont mis en position fixed et position hors de la fen&#195;&#170;tre (avec right : -410px). Lorsque la classe '.show&#034; est ajout&#195;&#169;e &#195; l'&#195;&#169;l&#195;&#169;ment, il glisse gr&#195;&#162;ce &#195; la transition jusqu'&#195; &#034;right:0&#034;, ce qui le fait apparaitre.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; #blocs article { width:400px; background-color:#fff; padding:20px; box-sizing: border-box; box-shadow:0 0 10px #ccc; position:fixed; right:-410px; bottom:10px; transition:right 0.5s linear; } #blocs article.show { right:0; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Le code javascript&lt;/h2&gt;
&lt;p&gt;Ce code a pour unique but d'ajouter ou retirer la classe &#034;show&#034; aux blocs de contenus, le reste est op&#195;&#169;r&#195;&#169; par la CSS.&lt;br class='autobr' /&gt;
Le code javascript s&#195;&#169;lectionne les liens de la liste. Lors du clic, il r&#195;&#169;cup&#195;&#168;re l'id du bloc correspondant au lien. Il v&#195;&#169;rifie que ce bloc correspondant n'est pas d&#195;&#169;j&#195; visible. Si c'est le cas, il le cache simplement, sinon il retire la classe show de tous les &#195;&#169;l&#195;&#169;ments &#195;&#169;ventuellement visibles, puis ajoute alors la classe &#034;show&#034; &#195; cet &#195;&#169;l&#195;&#169;ment, ce qui le fait apparaitre.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; &lt;script&gt; $(&#034;#liste a&#034;).click(function(){ var lequel=$(this).attr(&#034;href&#034;); if($(lequel).hasClass(&#034;show&#034;)){ $(lequel).removeClass(&#034;show&#034;); } else { $(&#034;#blocs article&#034;).removeClass(&#034;show&#034;); $(lequel).addClass(&#034;show&#034;); } return false; }); &lt;/script&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class='spip_document_964 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L500xH306/illu2-c7909.jpg?1774276048' width='500' height='306' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Info-bulles en survol, pur html-css</title>
		<link>http://arts-numeriques.codedrops.net/Info-bulles-en-html-css</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Info-bulles-en-html-css</guid>
		<dc:date>2019-12-04T18:54:22Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>



		<description>
&lt;p&gt;Afficher une information en survol d'un &#195;&#169;l&#195;&#169;ment ne demande que quelques lignes d'html et css. &lt;br class='autobr' /&gt; Une info-bulle, ou popover en anglais, est une information qui s'affiche en survol ou en clic d'un &#195;&#169;l&#195;&#169;ment. ce syst&#195;&#168;me permet de ne pas surcharger une interface mais de permettre l'acc&#195;&#168;s &#195; une information si le visiteur en fait la demande par un simple survol de l'&#195;&#169;l&#195;&#169;ment. Les infos-bulles peuvent &#195;&#170;tre complexes, utilisant du javascript et des requ&#195;&#170;tes AJAX, mais on fera ici la (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Quelques-applications-HTML-CSS-JS-" rel="directory"&gt;Quelques applications HTML CSS JS&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Afficher une information en survol d'un &#195;&#169;l&#195;&#169;ment ne demande que quelques lignes d'html et css.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Une info-bulle, ou popover en anglais, est une information qui s'affiche en survol ou en clic d'un &#195;&#169;l&#195;&#169;ment. ce syst&#195;&#168;me permet de ne pas surcharger une interface mais de permettre l'acc&#195;&#168;s &#195; une information si le visiteur en fait la demande par un simple survol de l'&#195;&#169;l&#195;&#169;ment. Les infos-bulles peuvent &#195;&#170;tre complexes, utilisant du javascript et des requ&#195;&#170;tes AJAX, mais on fera ici la d&#195;&#169;monstration d'une m&#195;&#169;thode simple.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Structure HTML&lt;/h2&gt;
&lt;p&gt;La base de la structure html est un &#195;&#169;l&#195;&#169;ment visible et un &#195;&#169;l&#195;&#169;ment invisible, tous deux encapsul&#195;&#169;s dans un tag.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;div class=&#034;bouton b1&#034;&gt; Survolez-moi! &lt;div class=&#034;hidden&#034;&gt; Une info cach&#195;&#169;e &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#034;bouton b2&#034;&gt; Survolez-moi aussi! &lt;div class=&#034;hidden&#034;&gt; Une info cach&#195;&#169;e &lt;/div&gt;
&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ici, un div avec la classe bouton contient une image (qui sera visible) et un bloc d'information qui sera cach&#195;&#169;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;CSS&lt;/h2&gt;
&lt;p&gt;Le code css stylise le bouton, et le cache. En survol de l'&#195;&#169;l&#195;&#169;ment, la partie invisible est affich&#195;&#169; avec display:block.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;.bouton { position:absolute; cursor:pointer;
}
.bouton.b1 { left:700px; top:150px;
}
.bouton .hidden { background-color:red; color:#fff; border-radius:4px; padding:10px; text-align: center; position:absolute; right:-220px; top:20px; width:200px; display:none;
} .bouton:hover .hidden { display:block;
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Avec un effet d'apparition&lt;/h2&gt;
&lt;p&gt;En utilisant une ou plusieurs animations, il est possible de produire un effet.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;.bouton .hidden { position: absolute; top: -42px; left: -95px; text-align: center; background-color: rgba(0,0,0,0.85); border-radius: 5px; box-shadow: 0 0 5px rgba(0,0,0,0.4); color: #fff; font-size: 12px; padding: 7px 10px; width: 200px; z-index: 4; display: none;
} .bouton:hover .hidden { display: block; animation: fade-in .3s linear 1, move-up .3s linear 1;
} @keyframes fade-in { from { opacity: 0; } to { opacity: 1; }
}
@keyframes move-up { from { top: -60px; } to { top: -42px; }
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;De plus jolis blocs&lt;/h2&gt;
&lt;p&gt;il est &#195;&#169;videmment possible de composer avec css de plus jolis blocs. On trouve de nombreux codes sur le web, notamment le site &lt;a href=&#034;http://www.cssarrowplease.com/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;cssarrowplease&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>les animations CSS3</title>
		<link>http://arts-numeriques.codedrops.net/les-animations-CSS3</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/les-animations-CSS3</guid>
		<dc:date>2019-09-18T10:56:53Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>



		<description>
&lt;p&gt;CSS3 permet en plus de produire des animations, autonomes ou en survol d'un &#195;&#169;l&#195;&#169;ment. Voyons &#195;&#167;a. &lt;br class='autobr' /&gt; Les animations permettent de cr&#195;&#169;er des effets divers ind&#195;&#169;pendamment des actions du visiteur d'une page (m&#195;&#170;me s'il est possible de les associer &#195; un survol par exemple). &lt;br class='autobr' /&gt;
La base d'une animation sont les keyframes, un concept venu de l'animation traditionnelle, signifiant points-cl&#195;&#169;s. Les points cl&#195;&#169;s sont des moments identifiables dans la transformation d'un &#195;&#169;l&#195;&#169;ment, comme indiqu&#195;&#169; (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Le-langage-CSS-" rel="directory"&gt;Le langage CSS&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L150xH76/arton561-04cf4.png?1774276048' class='spip_logo spip_logo_right' width='150' height='76' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;CSS3 permet en plus de produire des animations, autonomes ou en survol d'un &#195;&#169;l&#195;&#169;ment. Voyons &#195;&#167;a.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Les animations permettent de cr&#195;&#169;er des effets divers ind&#195;&#169;pendamment des actions du visiteur d'une page (m&#195;&#170;me s'il est possible de les associer &#195; un survol par exemple).&lt;/p&gt;
&lt;p&gt;La base d'une animation sont les keyframes, un concept venu de l'animation traditionnelle, signifiant points-cl&#195;&#169;s. Les points cl&#195;&#169;s sont des moments identifiables dans la transformation d'un &#195;&#169;l&#195;&#169;ment, comme indiqu&#195;&#169; dans le sch&#195;&#169;ma ci-dessous.&lt;/p&gt;
&lt;p&gt;&lt;span class='spip_document_958 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L500xH248/animation-keyframe-2-e8014.jpg?1774276048' width='500' height='248' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;En css, on cr&#195;&#169;e donc une animation avec un nom choisi (pas de caract&#195;&#168;re sp&#195;&#169;ciaux, pas d'espace) comme suit :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;@keyframes mon_animation { 0% {background-color: red; padding:20px} 50% {background-color: yellow; padding:60px;} 100% {background-color: red; padding:20px} }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ou&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;@keyframes mon_animation { from {background-color: red; } to {background-color: yellow; } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On sp&#195;&#169;cifie des changements &#195; certains pourcentage de l'animation, ou passer d'une position &#195; une autre avec &lt;i&gt;from&lt;/i&gt; et &lt;i&gt;to&lt;/i&gt;. Dans le cas o&#195;&#185; on veut faire une animation en r&#195;&#169;p&#195;&#169;tition constante, on utilisera les pourcentage et faisant se terminer l'animation &#195; 100% dans la m&#195;&#170;me situation que celle &#195; 0%.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Un exemple rapide&lt;/h2&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;div class=&#034;truc&#034;&gt;Un &#195;&#169;l&#195;&#169;ment&lt;/div&gt; &lt;style&gt; .truc { width:300px; padding:20px; background-color:red; animation-name: superanim; animation-duration: 4s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; } @keyframes superanim { 0% {background-color: red; padding:20px} 50% {background-color: yellow; padding:60px;} 100% {background-color: red; padding:20px} } &lt;/style&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Cr&#195;&#169;er une animation&lt;/h2&gt;
&lt;p&gt;Cr&#195;&#169;er une animation, c'est d'abord d&#195;&#169;clarer diff&#195;&#169;rents keyframe, c'est &#195; dire les &#195;&#169;tapes cl&#195;&#169; de l'animation. Un d&#195;&#169;part et une fin, et un certain nombre d'&#195;&#169;tapes interm&#195;&#169;diaires &#195;&#169;ventuelles.&lt;/p&gt;
&lt;p&gt;Cette d&#195;&#169;claration n'a pas la forme traditionnelle d'une s&#195;&#169;lecteur CSS, mais s'en rapproche. Elle commence par un @ pour bien s'en distinguer, suivi du mot keyframes et un nom &#195; cr&#195;&#169;er pour l'occasion, sans espace ni caract&#195;&#168;re sp&#195;&#169;ciaux.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;@keyframes un_nom { from {font-size: 12px; } to {font-size: 24px; } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;A l'int&#195;&#169;rieur de la d&#195;&#169;claration, on va soit utiliser les sous-d&#195;&#169;clarations &lt;i&gt;from&lt;/i&gt; et &lt;i&gt;to&lt;/i&gt;. Si elles ne sont pas d&#195;&#169;clar&#195;&#169;es, le navigateur va supposer que cet &#195;&#169;tat est l'&#195;&#169;tat d&#195;&#169;j&#195; d&#195;&#169;clar&#195;&#169;s ailleurs dans la css.&lt;br class='autobr' /&gt;
On peut aussi utiliser des pourcentage pour remplacer &lt;i&gt;from&lt;/i&gt; et &lt;i&gt;to&lt;/i&gt;, pour exactement le m&#195;&#170;me r&#195;&#169;sultat.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;@keyframes un_nom { 0% {font-size: 12px; } 100% {font-size: 24px; } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Plusieurs &#195;&#169;tapes et plusieurs d&#195;&#169;clarations&lt;/h2&gt;
&lt;p&gt;On peut &#195; partir de l&#195; d&#195;&#169;duire le reste des d&#195;&#169;clarations compatibles avec &lt;i&gt;@keyframes&lt;/i&gt; : on peut d&#195;&#169;clarer plusieurs &#195;&#169;tapes, et pour chacune de ces &#195;&#169;tapes, plusieurs d&#195;&#169;clarations CSS :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;@keyframes un_nom { from { /* ou 0% */ font-size: 12px; color:rgba(255,0,0,0}; } 25% { font-size: 36px; /* pas besoin de d&#195;&#169;finir la couleur si elle ne fait rien de sp&#195;&#169;cial ici */ } to { /* ou 100% */ font-size: 24px; color:rgba(255,0,0,1}; } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Voir la documentation sur &lt;a href=&#034;https://developer.mozilla.org/fr/docs/Web/CSS/@keyframes&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;@keyframes sur le site de Firefox&lt;/a&gt;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Dur&#195;&#169;e et r&#195;&#169;p&#195;&#169;tition&lt;/h2&gt;
&lt;p&gt;Pour utiliser cette animation, il faut l'associer &#195; un &#195;&#169;l&#195;&#169;ment quel qu'il soit (pourvu que les d&#195;&#169;claration css soient compatible avec celui-ci). &lt;br class='autobr' /&gt;
On va en profiter pour donner une dur&#195;&#169;e d'animation &#195; l'animation, qui n'est pas contenue dans le &lt;i&gt;@keyframes&lt;/i&gt;. Est-ce que l'animation est rapide ou lente ? Il est donc possible d'utiliser la m&#195;&#170;me animation pour deux &#195;&#169;l&#195;&#169;ments diff&#195;&#169;rents avec des vitesses diff&#195;&#169;rentes.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;h2 { animation-name: un_nom; animation-duration: 1s; animation-iteration-count: infinite; } .broum { animation-name: un_nom; animation-duration: 8s; animation-iteration-count: 2; animation-fill-mode: forwards; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Par d&#195;&#169;faut, une animation est ex&#195;&#169;cut&#195;&#169;e une seule fois. Si on veut la r&#195;&#169;p&#195;&#169;ter en boucle, ou la r&#195;&#169;p&#195;&#169;ter une nombre de fois d&#195;&#169;fini, on utilise la fonction &lt;i&gt;animation-iteration-count&lt;/i&gt; qui est faite pour &#195;&#167;a, avec comme valeur &lt;i&gt;infinite&lt;/i&gt; pour une boucle continue, ou un chiffre pour d&#195;&#169;finir le nombre de r&#195;&#169;p&#195;&#169;titions.&lt;/p&gt;
&lt;p&gt;Si on d&#195;&#169;fini un nombre de r&#195;&#169;p&#195;&#169;tition avec un chiffre, l'animation va s'arr&#195;&#170;ter &#195; la position d&#195;&#169;finie par ailleurs dans la css, ce qui peut produire une saute apr&#195;&#168;s l'animation. Il est donc pr&#195;&#169;f&#195;&#169;rable de d&#195;&#169;finir o&#195;&#185; s'arr&#195;&#170;te l'animation : &#195; la fin ou au d&#195;&#169;but de l'animation. La d&#195;&#169;claration &lt;i&gt;animation-fill-mode : forwards&lt;/i&gt; d&#195;&#169;clare que l'&#195;&#169;l&#195;&#169;ment s'arr&#195;&#170;tera sur son &#195;&#169;tat en fin d'animation, l&#195; ou &lt;i&gt;animation-fill-mode : backwards&lt;/i&gt; reviendra au d&#195;&#169;but et&lt;/p&gt;
&lt;p&gt;Voir la &lt;a href=&#034;https://developer.mozilla.org/fr/docs/Web/CSS/animation&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;documentation g&#195;&#169;n&#195;&#169;rale sur les animations &lt;br class='autobr' /&gt;
ici&lt;/a&gt;&lt;br class='autobr' /&gt;
Voir la documentation sur &lt;a href=&#034;https://developer.mozilla.org/fr/docs/Web/CSS/Animations_CSS/Utiliser_les_animations_CSS&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;les diff&#195;&#169;rentes d&#195;&#169;clarations li&#195;&#169;es aux animations ici&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Les transitions css</title>
		<link>http://arts-numeriques.codedrops.net/Les-transitions-css</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Les-transitions-css</guid>
		<dc:date>2019-09-18T09:58:32Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>



		<description>
&lt;p&gt;CSS2 permettait de changer certains comportement visuels des &#195;&#169;l&#195;&#169;ments de la page, en survol par exemple. Un lien qui change de couleur, une typo qui s'agrandit, un bord qui s'&#195;&#169;paissit, etc. Cependant, le passage d'un &#195;&#169;tat &#195; l'autre est imm&#195;&#169;diat et donc assez brutal visuellement, surtout s'il est important. CSS3 permet de produire des animations sur ces changements, pour les rendre plus fluide. &lt;br class='autobr' /&gt; Changer le comportement en survol de la souris L'exemple le plus courant est le changement (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Le-langage-CSS-" rel="directory"&gt;Le langage CSS&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;CSS2 permettait de changer certains comportement visuels des &#195;&#169;l&#195;&#169;ments de la page, en survol par exemple. Un lien qui change de couleur, une typo qui s'agrandit, un bord qui s'&#195;&#169;paissit, etc. Cependant, le passage d'un &#195;&#169;tat &#195; l'autre est imm&#195;&#169;diat et donc assez brutal visuellement, surtout s'il est important.&lt;br class='autobr' /&gt;
CSS3 permet de produire des animations sur ces changements, pour les rendre plus fluide.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Changer le comportement en survol de la souris&lt;br class='autobr' /&gt;
L'exemple le plus courant est le changement de comportement d'un &#195;&#169;l&#195;&#169;ment en survol.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;div class=&#034;moveme&#034;&gt;Un &#195;&#169;l&#195;&#169;ment&lt;/div&gt; &lt;style&gt; .moveme { padding:20px; border:1px solid #ddd; width:400px; background-color:#fff; } .moveme:hover { background-color:red; width:500px; } &lt;/style&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le r&#195;&#169;sultat est un bloc dont le font devient rouge en survol, et qui s'&#195;&#169;largit. Comme mentionn&#195;&#169; pr&#195;&#169;c&#195;&#169;demment, le tout se fait sans transition, brutalement, et en m&#195;&#170;me temps.&lt;br class='autobr' /&gt;
Il est possible depuis CSS3 de rendre le passage d'un &#195;&#169;tat &#195; un autre plus fluide gr&#195;&#162;ce aux transitions :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;div class=&#034;moveme&#034;&gt;Un &#195;&#169;l&#195;&#169;ment&lt;/div&gt; &lt;style&gt; .moveme { padding:20px; border:1px solid #ddd; width:400px; background-color:#fff; transition-property: width background-color; transition-duration: 1s; transition-timing-function: linear; } .moveme:hover { background-color:red; width:500px; } &lt;/style&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous avons ajout&#195;&#169; trois lignes. &lt;br class='autobr' /&gt;
&lt;strong&gt;transition-property&lt;/strong&gt; permet de choisir les attributs qui seront affect&#195;&#169;s par la transition. Dans l'exemple ci-dessus, ce sont la largeur et la couleur de fond. Si d'autres attributs changent de valeur, ils passeront de l'une &#195; l'autre sans transition.&lt;br class='autobr' /&gt;
Si on veut que tous les attributs fassent l'objet d'une transition, on &#195;&#169;crira :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;transition-property:all;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;transition-duration&lt;/strong&gt;, sans surprise, d&#195;&#169;signe la vitesse de transition. Elle peut &#195;&#170;tre d&#195;&#169;finie en secondes ou millisecondes, par exemple 0.5s ou 500ms pour une demi-seconde, car une seconde vaut 1000 millisecondes (ms).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;transition-timing-function&lt;/strong&gt; permet de param&#195;&#169;trer la m&#195;&#169;thode de transition. Linear, dans notre exemple, fait passer d'un &#195;&#169;tat &#195; l'autre de mani&#195;&#168;re r&#195;&#169;guli&#195;&#168;re, mais on peut faire une transition qui d&#195;&#169;marre lentement et acc&#195;&#169;l&#195;&#168;re, etc.&lt;br class='autobr' /&gt;
Il existe de nombreuses valeurs possible pour le timing-function, comme linear, ease, ease-in, ease-out, ease-in-out, et m&#195;&#170;me la possiblilit&#195;&#169; de d&#195;&#169;finir le mouvement avec un vecteur, par exemple cubic-bezier(0.42, 0, 0.58, 1) ;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;transition-delay&lt;/strong&gt;, pas pr&#195;&#169;sent dans l'exemple, permet de mettre un d&#195;&#169;lai avant le d&#195;&#169;but de l'animation.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;D&#195;&#169;clarations minimales&lt;/h2&gt;
&lt;p&gt;Attention, il faut au minimum utiliser la d&#195;&#169;claration &lt;strong&gt;transition-property&lt;/strong&gt; et &lt;strong&gt;transition-duration&lt;/strong&gt; pour que quelque chose se passe. Les autres d&#195;&#169;claration sont optionnelles.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
