Daniel K. Schneider - David Ott - Vivian Synteta Version: 0.4 (modifié le 15/8/01 par DKS)

Like dokumenter
Eksamen FSP5020/PSP5013 Fransk nivå I Elevar og privatistar / Elever og privatister. Nynorsk/Bokmål

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

Stilark Cascading Style Sheets - CSS

Stilark Cascading Style Sheets - CSS

Håkon Tolsby Håkon Tolsby

Laser vert : moins de plus de 300. Acheter Laser PRODUITS CHAUDS. Pointeur Laser étanche


Høgskolen i Telemark EKSAMEN Webpublisering (inkludert denne) Hjelpemiddel: Ingen

CSS-formatering: stilark med kommentarer

Brosses intérieures avec manche


Roulements à rouleaux cylindriques

CSS. Aud Marie Hauge ekspert i brukskvalitet og universell utforming i Epinova AS

I. Évolution du commerce mondial

EKSAMEN. Elektronisk publisering. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

Roulements à rouleaux cylindriques

Sommaire. Montre MOVETIME Family Aperçu de la montre... 1 Touche Marche-Arrêt Retrait des bracelets Résistance à l eau...

Clôture Métallique. Portails / Portillons / Accessoires

TENK TECH SUMMERCAMP BYGG DIN EGEN NETTSIDE

HTML-del. 1. <!-- ikke slett min kode, vær så snill --> er a) en HTML stil-tag b) en CSS stil-tag c) en HTML kommentar-tag d) en CSS kommentar-tag

Eksamen FSP5020 Fransk I PSP5013 Fransk nivå I. Nynorsk/Bokmål

REQUÊTE APPLICATION KLAGESKJEMA

Alt for ofte blir problemer med avløpsrør i bygninger løst ved å bytte ut gamle defekte rør med nye. Dette innebærer tapphull- og utgravingsarbeide

Intro til WWW, HTML5 og CSS

CASCADING STYLESHEETS (CSS)

1. Intégrales définies et indéfinies I. (a) Soit b > 0. Montrer que pour tout x > 0 la fonction. 2 b. F (x) = arctan bx. 1 (1 + bx) x. f(x) = x t dt.

Corrigé du BTS, groupement A, Nouvelle-Calédonie, novembre 2008

Innføring i Dynamisk HTML

CSS: Endre utseende og stil på tekst Nybegynner

MMT105 Internettprogrammering Uke 44, høst 2007

Steg 1: Vi starter fra toppen

CSS: Style nettsider. Introduksjon. Skrevet av: Arve Seljebu

Javascript. Mer om layout

Disjoncteurs sélectifs

Stilark "Cascading Style Sheets" CSS

EKSAMEN FRA0502 Fransk II HØSTEN 2012

Mise à jour des marges requises

Håkon Tolsby Håkon Tolsby

EKSAMENSOPPGAVE FRA1300 Fransk basisemne Vår 2012

Årsplan for 9. klasse i Fransk ( )

Bilder, tabeller. Kirsten Ribu 26.09

Stilark "Cascading Style Sheets" CSS

Eksamen FSP5020/PSP5013 Fransk nivå I Elevar og privatistar / Elever og privatister.

LIBER BVEL MAGI SVB FIGVRÂ I


Netbook mouse SPM NO Brukerhåndbok. Register your product and get support at

Energie et corrélation. Systèmes de Traitement du Signal Polytech Marseille INFO 2016

FRANSKLÆRERFORENINGENS STYRE

PremiCron. Tresse synthétique non résorbable de polyester enduit. PremiCron

RAPPORT WEBP MAGNE SILJAN

HTML5 og CSS. Webdesign med Dreamweaver. Glemmen vgs - Medier og kommunikasjon 1. januar Arly Dale 2013 Side 1

BACCALAURÉAT GÉNÉRAL ET TECHNOLOGIQUE NORVÉGIEN. Langue vivante 2

EKSAMEN Web-publisering

file://c:\etext\document\dlftools.xsl

1. Cascading Style Sheet (CSS)

DYNAMIQUE. Etude des mouvements de tangage d une transmission de puissance d hélicoptère. x r 2. y r 2. x 1. y r y r

Oppgaver Oppgavetype Vurdering Status 1 FR generell informasjon Flervalg Automatisk poengsum Levert

EKSAMEN Webpublisering

Webutvikling Oblig 5. Oppg 1. Her ser du sidebar og widgets som er tilgjengelig.

BEFOLKNINGSFORHOLDENE

Kommunikasjonsperm. Overvåking og undersøkelser side 1. Smerter side 2. Naturlige funksjoner, eliminasjon side 3. Sengeleie og stell side 4

Mes architectes ont 10 ans!

Design d'un champ de vecteurs tangents

CSS: Style nettsider Nybegynner

NCE TOURISM FJORD NORWAY. FJORDNETT INTERNETTFORUM 2012 Bergen, 12./13. juni 2012

Mouse with Bluetooth wireless technology. SPM6950. NO Brukerhåndbok. Register your product and get support at

Rapport annuel p. 4 Reise til Frankrike?... p. 8 Felles språkdag... p. 12 Examens du BI. p. 16 Travailler du vocabulaire. p. 20 Et plus...

Enchanté 1. Grammatikktema i kapittel 12

OBLIG 1 - WEBUTVIKLING

M13/2/ABNOR/SP1/NOR/TZ0/XX/Q

INF1040 Oppgavesett 4: CSS

OBLIG 1 WEBUTVIKLING. Oppgave 1 Gå gjennom nettsiden arngren.net og list opp alle problemene du ser. Både i funksjonalitet/bruk og i koden bak.

Corrigés des exercices du chapitre 25

Tri sélectif de déchets. Kildesortering

CSS: Animasjon Nybegynner

EKSAMEN / 6101N WebPublisering

BACCALAURÉAT GÉNÉRAL

Cours de français pour la classe de 3ème Semaines 18 23, 2017 LÆRINGSMÅL TEMA/LÆRESTOFF VURDERING. Chapitre 6: «J habite à Belleville», p

1. XHTML. Innhold Innledning

GUI/ SYSTEM DESIGNHÅNDBOK. Versjon 1.0 December 2014

Hvordan lærer du best? Ulike tilnærmingsmåter

Des accouplements raisonnés, un élément essentiel à l amélioration génétique

PREPARATION BREVET BLANC 1 CALCUL FRACTIONNAIRE : AIDE : d'abord transformer l'écriture du nombre entier 1. Tout nombre a peut s'écrire 1

Comportement du discordantiel «ne» dans six points d enquêtes du corpus PFC

Norsk-fransk ordbok over lumske likheter. Dictionnaire des faux amis norvégiens-français

Forslag til årsplaner LINGUA PLANET fransk Se lærerveiledningen for tips til klasseromsaktiviteter.

M03/108/S(2) NORWEGIAN A1 STANDARD LEVEL PAPER 2 NORVEGIEN A1 NIVEAU MOYEN ÉPREUVE 2 NORUEGO A1 NIVEL MEDIO PRUEBA 2

Oppgave 1. Gå gjennom nettsiden arngren.net og list opp alle problemene du ser. Både i funksjonalitet/bruk og i koden bak.

Prøve tema 1. Cappelen Damm AS

Steg 1: Animasjons-attributtet

GAMME DETENTE DIRECTE SOMMAIRE. X32 monosplit Inverter Page 88. X3 multisplit Inverter Page 90. Monosplits/Multisplits

6092-DV Document 5

BACCALAURÉAT GÉNÉRAL

Smart Transmitter 2,4

Informations sur l'hépatite A, B et C et comment éviter la contamination

StreamLine TV. Guide d'utilisation. Hearing Systems

IUFM DE BOURGOGNE DIJON

OFFICE NORVÉGIEN DE LA PROPRIÉTÉ INDUSTRIELLE

Transkript:

&DVFDGLQJ6W\OH6KHHWV &DVFDGLQJ6W\OH6KHHWV &RGH 2ULJLQDX[ XUOhttp://tecfa.unige.ch/guides/tie/html/css-into/css-intro.html XUOhttp://tecfa.unige.ch/guides/tie/pdf/files/css-intro.pdf $XWHXUVHWYHUVLRQ Daniel K. Schneider - David Ott - Vivian Synteta Version: 0.4 (modifié le 15/8/01 par DKS) 3UpUHTXLV 0RGXOHWHFKQLTXHSUpFpGHQWhtml-intro 0RGXOHWHFKQLTXHSUpFpGHQW xml-tech (pour les chapitres sur XML seulement) $XWUHVPRGXOHV 0RGXOHWHFKQLTXHVXSSOxml-xslt

&DVFDGLQJ6W\OH6KHHWV $EVWUDFW Petite introduction à CSS Attention: sans description des propriétés (consultez un autre document!) 2EMHFWLIV Savoir faire de simples style sheets HTML avec CSS XML avec CSS (Pas de DHTML pour le moment, ce sera fera dans un autre module je pense)

&DVFDGLQJ6W\OH6KHHWV7DEOHGHVPDWLqUHVGpWDLOOpH 7DEOHGHVPDWLqUHVGpWDLOOpH 1. Table des matières détaillée 3 2. Introduction aux "Cascading Style Sheets" 5 0RWLYDWLRQ 3ULQFLSHGHEDVH 5HVVRXUFHV &RQVHLOVVHFWLRQjGpSODFHU 3. Association d une feuille de style à une page HTML 8 6W\OHVLQOLQH )HXLOOHGHVW\OHLPEULTXpHGDQVXQHSDJH )HXLOOHGHVW\OHH[WHUQHDVVRFLpjGHVSDJHV+70/,PSRUWDWLRQ )HXLOOHGHVW\OHFOLHQWVLGH 4. Sélecteurs pour HTML 12 6LPSOHVHOHFWHXUVSRXUOHVEDOLVHV /HVEDOLVHVGLY!HWVSDQ! 6HOHFWHXUVFRQWH[WXHOV 3VHXGRVpOHFWHXUVpOpPHQWHWFODVVHV A.Pseudo-éléments 15 B.Pseudo-classes 15 &ODVVHWDWWULEXWV,' A.Les selecteurs "class" 16 5. Les déclarations 17 6. XML avec CSS 18 $VVRFLDWLRQG XQHIHXLOOHGHVW\OH 6HOHFWHXUV&66SRXU;0/HW+70/

&DVFDGLQJ6W\OH6KHHWV7DEOHGHVPDWLqUHVGpWDLOOpH 3UHPLHUVSDV

&DVFDGLQJ6W\OH6KHHWV,QWURGXFWLRQDX[&DVFDGLQJ6W\OH6KHHWV,QWURGXFWLRQDX[&DVFDGLQJ6W\OH6KHHWV 0RWLYDWLRQ $YDQWDJHV Mises en page HTML et XML sophistiquées DHTML (changement de positionnement d éléments sur x,y et z par exemple) Séparation de contenu et de style: permet de servir une page à plusieurs "sauces" (HTML riche, HTML pauvre mais efficace, HTML vocal,...) permet de gérér centralement le "look" de pleins de pages, donc diminue le coût de maintenance rends un page plus "lisible" et plus rapide à télécharger 'pvdydqwdjhv Mauvaise implémentation avec Netscape 4 Médiocre en NS 4.7 et IE 5 (suffisante pour mises en pages simples) Potable dans IE 5.5 et NS 6, presque bonne dans Mozilla 0.9 Il existe des tables de compatibilités, par exemple: XUOhttp://webreview.com/wr/pub/guides/style/mastergrid.html

&DVFDGLQJ6W\OH6KHHWV,QWURGXFWLRQDX[&DVFDGLQJ6W\OH6KHHWV 3ULQFLSHGHEDVH Feuille de style = jeux de règles qui précise l affichage d un élément HTML Chaque règle est composée: d un VpOHFWHXU (qui indique à quel type d élément la règle s applique une GpFODUDWLRQ (qui comprend une ou plusieurs instructions de mise en page ([HPSOHVGHVHQVLELOLVDWLRQ H1 { color: red } P { font-face: Verdana, sans-serif ; font-size: 12pt} H1, H2, H3 { color : blue } H1.ChapterTOC, H2.PeriodeTOC, H2.ExerciceTOC, H2.SectionTOC { display: block;text-indent: 30pt; text-align: left; font-size: 14.000000pt; font-weight: Bold; font-family: "Times"; } Sélecteurs H1 {color: red} Déclarations H1, H2 {font-face: Verdana, sans-serif; font-size: 12pt}

&DVFDGLQJ6W\OH6KHHWV,QWURGXFWLRQDX[&DVFDGLQJ6W\OH6KHHWV 5HVVRXUFHV XUOhttp://tecfa.unige.ch/guides/css/pointers.html XUOhttp://www.w3.org/Style/CSS/ (CSS page c/o W3C) XUOhttp://style.webreview.com/ VW\OHDWZHEUHIHUHQFH XUOhttp://webreview.com/wr/pub/guides/style/glossary.html RYHUYLHZRIWKH&66VSHF &RQVHLOVVHFWLRQjGpSODFHU Mettez des balises fermantes (<p>...</p>, <li>... </li>, etc) Testez avec Mozilla pour voir si votre code est juste, ajustez ensuite pour Netscape et IE Explorer. 3RXUrWUHFRPSDWLEOH Manipulations sophistiqués uniquement avec <div> et <span> Sinon, utilisez des classes Pour gérer les anciens browsers (NS 4 et IE 5) comprénant mal CSS il faut écrire des scripts de filtrage (disponibles sur le "web master s sites"). Pour gérer les Netscape 3 etc. pas de problème, ils ignorent les CSS

&DVFDGLQJ6W\OH6KHHWV$VVRFLDWLRQG XQHIHXLOOHGHVW\OHjXQHSDJH+70/ $VVRFLDWLRQG XQHIHXLOOHGHVW\OHjXQHSDJH+70/,OH[LVWHSOXVLHXUVPpWKRGHV 6W\OHVLQOLQH On peut définir un attribut style pour chaque élément HTML <p style="color: red; font: 12pt times; margin-left: 2em"> On peut définir un style pour chaque balise. Ce paragraphe contient son propre style, mais ce n est pas très efficace </p> XUOhttp://tecfa.unige.ch/guides/css/ex/simple-css2.html Il s agit ici d une technique qu il faut mieux éviter, car elle ne respecte pas très bien le principe de la séparation de contenu et présentation Je pense qu il s agit aussi d une tentative pour abolir la balise <font> problématique dans le versions futurs de HTML (XHTML) voir <span>

&DVFDGLQJ6W\OH6KHHWV$VVRFLDWLRQG XQHIHXLOOHGHVW\OHjXQHSDJH+70/ )HXLOOHGHVW\OHLPEULTXpHGDQVXQHSDJH Déclaration d une feuille de style avec la balise <style> ([HPSOH6LPSOHVIHXLOOHV&66LPEULTXpHV XUOhttp://tecfa.unige.ch/guides/css/ex/simple-css.html XUOhttp://tecfa.unige.ch/guides/css/ex/simple-css2.htmlH[HPSOHSOXVFRPSOLTXp 8WLOLVDWLRQ La déclaration doit se faire dans le <head> (sinon il peut y avoir des problèmes, par ex. la couleur background du body qui ne s affiche pas) Pour rester compatible avec les anciens navigateurs, il faut absolument commenter les règles CSS comme dans l exemple ci-dessous! <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.2//EN"> <html> <head> <title>simple CSS démo</title> <STYLE type="text/css"> <!-- body {background: white; font-family: Helvetica, Arial, sans-serif;} H2, H3{font-family: Helvetica, Arial, sans-serif;} P.intro {color: blue; margin-left: 4em; margin-right: 2em;}.default {margin-left: 2em;} --> </STYLE> </head>

&DVFDGLQJ6W\OH6KHHWV$VVRFLDWLRQG XQHIHXLOOHGHVW\OHjXQHSDJH+70/ )HXLOOHGHVW\OHH[WHUQHDVVRFLpjGHVSDJHV+70/ Solution efficace pour gérér le look des plusieurs (ou pleins!) de pages La balise <link> doit se trouver dans le <head> Si vous utilisez des caractères non standards dans le texte ("é","ö", etc.) il faudrait déclarer l attribut CHARSET (à vérifier) Pensez à créer un répertoire central pour vos styles! A tecfa: /web/styles ([HPSOH6LPSOHIHXLOOH&66H[WHUQH XUOhttp://tecfa.unige.ch/guides/css/ex/simple-css3.html <html> <head> <LINK REL="STYLESHEET" HREF="simple-css3.css" CHARSET="ISO-8859-1" TYPE="text/css"> <title>simple CSS démo III</title> </head> <body>

&DVFDGLQJ6W\OH6KHHWV$VVRFLDWLRQG XQHIHXLOOHGHVW\OHjXQHSDJH+70/,PSRUWDWLRQ Il s agit d une alternative au "linking" ci-dessus XUOhttp://tecfa.unige.ch/guides/css/ex/simple-css4.html <style> <!-- @import ("simple-css3.css") ; p.default {margin-right: 3em; margin-left: 3em} --> </style> $WWHQWLRQ Marche mal avec certains Explorer 4 Ne marche pas avec Netscape (4.x)! )HXLOOHGHVW\OHFOLHQWVLGH Marche uniquement dans Mozilla et c est très cool: On peut censurer tout ce qu on aime pas, adapter la page à la vue etc. :)

&DVFDGLQJ6W\OH6KHHWV6pOHFWHXUVSRXU+70/ 6pOHFWHXUVSRXU+70/ Ici, on ne discute que les sélecteurs, c.a.d. la définition des éléments à qui on applique une règle. [à faire: priorités!] 5DSSHOGHODV\QWD[HSRXUXQHUqJOH&66 selecteur(s) { propriété: valeur ; propriété: valeur1, valeur2, valeur3 ;... } Il existe plusieurs méthodes pour identifier les éléments 6LPSOHVpOHFWHXUVSRXUOHVEDOLVHV On indique le nom d une balise, ou encore une liste séparés par des virgules H1 {color: green} H2 {color: green} est équivalent à: H1, H2 {color: green}

&DVFDGLQJ6W\OH6KHHWV6pOHFWHXUVSRXU+70/ /HVEDOLVHVGLY!HWVSDQ! ont été créés spécialement pour un usage avec les feuilles de style <div> peut contenir toutes les autres balises HTML et donc servir à mettre en forme toute une section d une texte (mais attention aux priorités!) <div> avec l attribut class peut servir à faire des "custom tags" (voir plus loin) <span> sert à changer une séquence de caractères à l intérieur d une balise ([HPSOH4XHOTXHVXVDJHVGHGLY XUOhttp://tecfa.unige.ch/guides/css/ex/simple-div-span.html <div style="color: blue"> <h1>l influence d un div tag qui aime le bleu</h1> <P> bla bla bla </P> </div> ([HPSOH)DLUHGHVEDFNJURXQGV XUOhttp://tecfa.unige.ch/guides/css/ex/simple-div2.html <style> div.important { background: rgb(204,204,255); padding: 0.5em; border: none; } </style>

&DVFDGLQJ6W\OH6KHHWV6pOHFWHXUVSRXU+70/ 6pOHFWHXUVFRQWH[WXHOV ([HPSOH6LPSOHXWLOLVDWLRQG XQVpOHFWHXUFRQWH[WXHO XUOhttp://tecfa.unige.ch/guides/css/ex/simple-css5.html <STYLE type="text/css"> <!-- P strong {color: red;} --> </STYLE>... <P> Ceci est un paragraph avec un <strong> strong modifié </strong>. En d autres terme cela permet de redéfinir de façon simple le rendering de certaines balises "logiques" comme <em> ou <strong>. </P>

&DVFDGLQJ6W\OH6KHHWV6pOHFWHXUVSRXU+70/ 3VHXGRVpOHFWHXUVpOpPHQWHWFODVVHV Un pseudo sélecteur identifie un élément par des critères autres que balise et classe CSS2 en définit pleins, ci-dessous les éléments de CSS1. Attention: certains navigateurs implémentent très mal ces fonctionalités CSS1. $ 3VHXGRpOpPHQWV permettent d identifier des éléments non-balisés (comme la première lettre ou la première ligne) Marche avec les navigateurs IE 5.5 (à confirmer) et Mozilla ([HPSOH3VHXGRVpOHFWHXUV XUOhttp://tecfa.unige.ch/guides/css/ex/pseudo-selectors.html <style> P:first-letter { font-size: 500%; color: green } P:first-line { color: green } </style> % 3VHXGRFODVVHV Pour rendre plus difficile les liens: A:link { color : white } A:visited { color : yellow } A:active {color : red }

&DVFDGLQJ6W\OH6KHHWV6pOHFWHXUVSRXU+70/ &ODVVHWDWWULEXWV,' $ /HVVpOHFWHXUVFODVV Mécanisme puissant pour: définir de classes de contenu (indépendamment des balises) pour différencier plusieurs variantes d une même balise ([HPSOH&ODVVHVGDQVXQHVLPSOHIHXLOOHGHVW\OH XUOhttp://tecfa.unige.ch/guides/css/ex/simple-css2.html <STYLE type="text/css"> P.intro {color: blue; margin-left: 4em; margin-right: 2em;}.default {margin-left: 2em;} </STYLE>... <p class="intro"> Après des années de bricolage infâme... </p> <p class="default"> bla bla </p> <pre class="default"> notre classe default marche partout, même pour un para préformaté </pre>

&DVFDGLQJ6W\OH6KHHWV/HVGpFODUDWLRQV /HVGpFODUDWLRQV 5DSSHOGHODV\QWD[HSRXUXQHUqJOH&66 selecteur(s) { propriété: valeur ; propriété: valeur1, valeur2, valeur3 ;... } Déclarations H1 {color: red} valeurs H1, H2 {font-face: Verdana, sans-serif; font-size: 12pt} Sélecteurs $WWHQWLRQ Les valeurs des propriétés sont séparées par des "," Les pairs "propriés: valeurs" sont séparées par des ";" [ reste = à développer, voir d autres documentations en attendant] Types Boites Positionnement... propriétés

&DVFDGLQJ6W\OH6KHHWV;0/DYHF&66 ;0/DYHF&66 $VVRFLDWLRQG XQHIHXLOOHGHVW\OH Il est conseillé d utiliser une feuille externe en ensuite l importer: <?xml-stylesheet type="text/css" href="feuille.css"?> note: pas de feuilles de styles internes comme pour HTML! 6HOHFWHXUV&66SRXU;0/HW+70/ XML nécessite un navigateur qui supporte CSS2 (au moins en partie) A part la notation Balise.classe les sélecteur XML et HTML sont les mêmes! :LOGFDUGV DSSOLTXHjWRXVOHpOpPHQWV Syntaxe: * * {font-size: 12pt; } VpOHFWLRQG XQpOpPHQW Syntaxe: nom_de_l élément Step { display: list-item; list-style-type: decimal; }

&DVFDGLQJ6W\OH6KHHWV;0/DYHF&66 VpOHFWLRQG XQpOpPHQWTXLHVWO HQIDQWGLUHFWG XQpOpPHQW Syntaxe: élément_mère > élément Step > Title {... } VpOHFWLRQG XQpOpPHQWTXLHVWOHGHVFHQGDQWG XQpOpPHQW Syntaxe: élément_mère élément Step Title {... } Dans l exemple suivant P est un descendant de LI, LI doit être un enfant direct de OL. OL est dans DIV. DIV OL>LI P VpOHFWLRQG XQpOpPHQWTXLHVWOHIUqUHG XQpOpPHQW Syntaxe: élément_frère + élément H1 + H2 { margin-top: -5mm } (on réduit la distance) VpOHFWLRQG XQpOpPHQWTXLSRVVqGHXQDWWULEXW Syntaxe: élément[attribut] Title[status] { color: blue; } (tous les titres qui un attribut "status" sont paints en bleu ) VpOHFWLRQG XQpOpPHQWTXLSRVVqGHXQDWWULEXWDYHFXQHYDOHXU Syntaxe: élément[attribut="valeur"] Title[status="brouillon"] { color: red; } (tous les titres qui un attribut "status" avec valeur "brouillon" sont peints en rouge )

&DVFDGLQJ6W\OH6KHHWV;0/DYHF&66 Note: au lieu de "=", on a aussi ~= et = (voir la documentation) 3UHPLHUVSDV Il faut d abord indiquer si un élément est un "block" ou "inline" Faire sortir les titres Gérer les listes ([HPSOHV /* strong est un élément inline, rendering on italic et bleu */ strong {display: inline; font-style: italic; color: rgb(000,000,128);} /* title et para sont des éléments "block", ils ont une petite marge title, para {display: block; margin: 0.5em;} /* les title sont un peu plus grands */ title {font-size: 1.5em;} /* les item sont des list-item de type bullet */ item {display: list-item;list-style-type: bullet;}