<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de NSI/Première/CSS : mise en forme</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Feuilles de style en cascade (CSS), syntaxe d'une règle,<br/>
sélecteurs (élément, classe, identifiant), propriétés<br/>
courantes (couleur, taille, marges), modèle de boîte,<br/>
cascade et héritage, intégration au HTML.</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q01 : Que signifie CSS ?</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que signifie l'acronyme <strong>CSS</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>CSS sépare la <strong>structure</strong> (HTML) de la<br/>
<strong>présentation</strong> (CSS). Bonne pratique pour la<br/>
maintenabilité.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Color and Style System</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Cette appellation n'a<br/>
pas d'existence officielle.<br/>
Le standard porte le nom<br/>
<em>Cascading Style Sheets</em>,<br/>
mis au point par le W$3$C.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Cascading Style Sheets</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : feuilles de style en<br/>
cascade. La cascade décrit comment les<br/>
règles s'appliquent et se combinent quand<br/>
plusieurs s'opposent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Computer Style Sheet</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le sigle officiel est<br/>
<em>Cascading Style Sheets</em>.<br/>
La notion de « cascade »<br/>
est essentielle, car elle<br/>
décrit comment les règles<br/>
se combinent ou se<br/>
surchargent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Centralized Style Standard</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Cette dénomination est<br/>
inventée. Le sigle CSS<br/>
renvoie aux <em>Cascading<br/>
Style Sheets</em>, défini par<br/>
le W$3$C dès $1996$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q02 : Syntaxe d'une règle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la structure d'une règle CSS ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Exemple : <code>p { color: red; font-size: 16px; }</code>.<br/>
Le <code>;</code> final est facultatif sur la dernière<br/>
déclaration mais recommandé.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<pre><code>sélecteur { propriété: valeur; ... }</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sélecteur (qui ?), accolades,<br/>
paires propriété : valeur séparées par des<br/>
points-virgules.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>&lt;sélecteur propriété="valeur"&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est plutôt une syntaxe HTML.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>sélecteur (propriété = valeur)</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pas de parenthèses ni de signe<br/>
égal.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>sélecteur -&gt; propriété -&gt; valeur</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : syntaxe inventée.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q03 : Sélecteur d'élément</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Comment écrire une règle qui s'applique à<br/>
<strong>tous</strong> les paragraphes <code>&lt;p&gt;</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Sélecteur d'élément : nom seul (<code>h1</code>, <code>p</code>,<br/>
<code>div</code>...). Il sélectionne tous les éléments<br/>
de ce type dans la page.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>p { ... }</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on désigne le <strong>type<br/>
d'élément</strong> par son nom (sans <code>&lt;&gt;</code>).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;p&gt; { ... }</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pas de chevrons en CSS.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>#p { ... }</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>#</code> désigne un id, pas un<br/>
élément.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>.p { ... }</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>.</code> désigne une classe.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q04 : Sélecteur de classe</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Comment cibler les éléments ayant<br/>
<code>class="bouton"</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Mnémonique : <strong>.</strong> = <strong>c</strong>lass (commencent<br/>
tous deux par 'c' à l'oreille). Une classe peut<br/>
être appliquée à plusieurs éléments.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>bouton { ... }</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans préfixe, ce serait un<br/>
sélecteur d'élément (qui n'existerait pas).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>@bouton { ... }</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>@</code> introduit des règles<br/>
spéciales (<code>@media</code>, <code>@import</code>...).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>#bouton { ... }</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>#</code> désigne un id (élément<br/>
unique).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>.bouton { ... }</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le <strong>point</strong> désigne une<br/>
classe. Très utilisé pour réutiliser un<br/>
style sur plusieurs éléments.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q05 : Sélecteur d'id</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Comment cibler l'élément ayant <code>id="navigation"</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Trois sélecteurs de base : élément (sans<br/>
préfixe), classe (<code>.</code>), id (<code>#</code>). On peut les<br/>
combiner : <code>p.important</code> (paragraphes ayant<br/>
la classe « important »).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>navigation { ... }</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans préfixe, ce serait un<br/>
sélecteur d'élément.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>.navigation { ... }</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>.</code> désigne une classe.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>*navigation { ... }</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>*</code> est le sélecteur universel<br/>
(tous les éléments).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>#navigation { ... }</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le <strong>dièse</strong> (<code>#</code>) désigne<br/>
un id. Comme un id doit être unique, ce<br/>
sélecteur cible un seul élément.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q06 : Couleur du texte</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle propriété change la <strong>couleur du texte</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Distinguer <code>color</code> (texte) et<br/>
<code>background-color</code> (fond). Plusieurs syntaxes<br/>
pour les couleurs : nommée (<code>red</code>),<br/>
hexadécimale (<code>#ff0000</code>), rgb, rgba, hsl.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>background</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>background</code> (ou<br/>
<code>background-color</code>) change la couleur <strong>de<br/>
fond</strong>, pas du texte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>color</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>color: red;</code>,<br/>
<code>color: #ff0000;</code>, <code>color: rgb(255, 0, 0);</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>font-color</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : propriété inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>text-color</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : propriété inexistante.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q07 : Intégrer du CSS</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la <strong>meilleure pratique</strong> pour<br/>
intégrer du CSS dans un projet HTML ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Trois façons d'intégrer CSS : externe<br/>
(<code>&lt;link&gt;</code>), interne (<code>&lt;style&gt;</code>), inline<br/>
(<code>style="..."</code>). L'externe est la meilleure<br/>
pratique.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Mettre tout le CSS dans un fichier <code>.css</code> séparé, lié via <code>&lt;link&gt;</code> dans <code>&lt;head&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : séparation des<br/>
préoccupations, mise en cache par le<br/>
navigateur, partage entre pages, code<br/>
maintenable.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Mettre du CSS dans chaque attribut <code>style="..."</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Pratique courante mais à éviter :<br/>
répétitions, difficile à maintenir, ne<br/>
permet pas la réutilisation.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Mettre tout le CSS dans une balise <code>&lt;style&gt;</code> à la fin du <code>&lt;body&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Acceptable pour un prototype, mais le<br/>
fichier séparé est meilleur pour les<br/>
projets.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Écrire le CSS dans le code JavaScript</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Existe (CSS-in-JS) mais hors programme NSI<br/>
et peu adapté à des projets simples.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q08 : Taille de texte</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle propriété change la <strong>taille du texte</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Bonnes pratiques : utiliser des unités<br/>
relatives (<code>em</code>, <code>rem</code>) pour la<br/>
responsivité ; <code>px</code> pour les éléments<br/>
d'interface précis.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>font-size</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>font-size: 16px;</code>,<br/>
<code>font-size: 1.2em;</code>. Unités courantes :<br/>
<code>px</code> (pixel), <code>em</code> (relatif au parent),<br/>
<code>rem</code> (relatif à la racine), <code>%</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>large</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>large</code> est une <strong>valeur</strong>, pas<br/>
une propriété (<code>font-size: large;</code>).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>size</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : propriété inexistante en CSS.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>text-size</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : propriété inexistante.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q09 : Commentaires CSS</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Comment écrire un <strong>commentaire</strong> en CSS ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Bonne pratique : commenter les sections<br/>
principales et les valeurs non triviales<br/>
(couleurs spécifiques, hacks de<br/>
compatibilité).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>/<em> commentaire </em>/</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : seule syntaxe valide en<br/>
CSS, peut s'étendre sur plusieurs lignes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>// commentaire</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la syntaxe JavaScript, C++,<br/>
Java. CSS ne reconnaît pas <code>//</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>-- commentaire</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la syntaxe SQL.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code># commentaire</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la syntaxe Python.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q10 : Lien vers fichier CSS</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Comment lier un fichier <code>style.css</code> à une page<br/>
HTML ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Convention : nommer la feuille <code>style.css</code> ou<br/>
<code>main.css</code>. Pour des styles spécifiques à<br/>
certaines pages, plusieurs feuilles peuvent<br/>
coexister.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>&lt;import "style.css"&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante. CSS a <code>@import</code><br/>
mais c'est en CSS, pas en HTML.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>&lt;style src="style.css"&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>&lt;style&gt;</code> n'a pas d'attribut<br/>
<code>src</code>. Il sert à inclure du CSS inline.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>&lt;css href="style.css" /&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<pre><code>&lt;link rel="stylesheet" href="style.css"&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : balise <code>&lt;link&gt;</code> avec<br/>
<code>rel="stylesheet"</code> (relation = feuille de<br/>
style) et <code>href</code> (chemin). À placer dans<br/>
<code>&lt;head&gt;</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q11 : Modèle de boîte</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans le <strong>modèle de boîte</strong> CSS, quels sont les<br/>
quatre composants concentriques d'un élément<br/>
(de l'intérieur vers l'extérieur) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Comme une carte postale dans une enveloppe :<br/>
contenu (la carte), padding (le matelas<br/>
autour), border (l'enveloppe), margin<br/>
(l'espace entre l'enveloppe et la suivante).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>bordure, marge, padding, contenu</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ordre incorrect.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>padding, contenu, marge, bordure</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ordre incorrect.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>contenu, padding, bordure, marge</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <strong>content</strong> (contenu),<br/>
<strong>padding</strong> (rembourrage interne),<br/>
<strong>border</strong> (bordure), <strong>margin</strong> (marge<br/>
externe).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>marge, contenu, bordure, padding</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ordre incorrect.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q12 : Cascade et priorité</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Si deux règles s'appliquent au même élément,<br/>
laquelle l'emporte ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Calcul de spécificité : (a, b, c) où a =<br/>
nombre d'id, b = nombre de classes, c =<br/>
nombre d'éléments. Comparaison<br/>
lexicographique.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Au hasard</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la cascade est déterministe.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Celle ayant le plus court sélecteur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'opposé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Celle ayant la plus grande spécificité (id &gt; classe &gt; élément), ou à spécificité égale, la dernière écrite</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la cascade hiérarchise par<br/>
spécificité, puis par ordre de<br/>
déclaration. <code>!important</code> outrepasse<br/>
tout (à éviter).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La première écrite dans le fichier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse pour la même<br/>
spécificité (la dernière écrite l'emporte).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q13 : Héritage</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que signifie qu'une propriété CSS est<br/>
<strong>héritée</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Toutes les propriétés ne sont pas héritées :<br/>
<code>color</code>, <code>font-family</code> oui ; <code>border</code>,<br/>
<code>padding</code>, <code>margin</code> non. Forcer<br/>
l'héritage : <code>inherit</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle ne fonctionne que sur le premier élément</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>L'héritage en CSS n'est<br/>
pas restreint au premier<br/>
élément ; il se propage<br/>
dans toute la sous-arborescence,<br/>
du parent vers ses<br/>
descendants.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle s'applique à tous les éléments de la page</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pas global, mais hiérarchique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle est transmise du parent à ses enfants dans l'arbre HTML, sauf surcharge</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : par exemple, <code>color</code> est<br/>
héritée : <code>body { color: blue; }</code> rend<br/>
tout le texte de la page bleu, sauf si<br/>
un descendant la redéfinit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle est interdite par CSS3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : très utilisée.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q14 : Unités CSS</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle unité est la plus adaptée pour une<br/>
taille de texte qui s'<strong>adapte</strong> à la taille<br/>
du parent ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Bonne pratique d'accessibilité : utiliser<br/>
<code>rem</code> pour le texte. L'utilisateur peut<br/>
ajuster la taille de base (préférences<br/>
navigateur), tout le site s'adapte<br/>
proportionnellement.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>em</code> ou <code>rem</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>em</code> est relatif au<br/>
parent (<code>1.2em</code> = 120 % de la taille du<br/>
parent), <code>rem</code> est relatif à la racine.<br/>
Adaptatif et accessible.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>%</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Possible mais moins idiomatique pour<br/>
<code>font-size</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>cm</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : unité physique, peu adaptée à<br/>
l'écran.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>px</code> (pixel)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : taille fixe, pas adaptative.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q15 : Sélecteurs combinés</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que cible le sélecteur <code>nav a</code> (avec un<br/>
espace) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Combinateurs : <code> </code> (descendant), <code>&gt;</code> (enfant<br/>
direct), <code>+</code> (frère adjacent), <code>~</code> (frère).<br/>
Et <code>,</code> pour grouper plusieurs sélecteurs.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le premier <code>&lt;a&gt;</code> après un <code>&lt;nav&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait <code>nav + a</code> (frère adjacent).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Tous les <code>&lt;a&gt;</code> descendants d'un <code>&lt;nav&gt;</code> (à n'importe quel niveau d'imbrication)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : l'<strong>espace</strong> est le<br/>
combinateur de descendance. Pour les<br/>
enfants directs : <code>nav &gt; a</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucun élément</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le sélecteur <code>nav a</code><br/>
est parfaitement valide<br/>
et cible bien des éléments :<br/>
tous les liens situés à<br/>
l'intérieur d'une zone<br/>
de navigation.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les éléments qui sont à la fois <code>&lt;nav&gt;</code> et <code>&lt;a&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est <code>nav,a</code> (virgule) qui ciblerait<br/>
les deux. Et un élément ne peut être à<br/>
la fois <code>nav</code> et <code>a</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q16 : Pseudo-classes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>À quoi sert <code>a:hover { color: red; }</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pseudo-classes courantes : <code>:hover</code> (survol),<br/>
<code>:active</code> (clic), <code>:focus</code> (focus clavier),<br/>
<code>:visited</code> (lien visité), <code>:nth-child(n)</code><br/>
(n-ième enfant).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À cacher tous les liens</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Cacher des éléments<br/>
relèverait plutôt de<br/>
<code>display: none</code> ou<br/>
<code>visibility: hidden</code>.<br/>
La pseudo-classe <code>:hover</code><br/>
réagit au survol de la<br/>
souris ; elle ne masque<br/>
rien.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À sélectionner tous les liens visités</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait <code>:visited</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À empêcher le clic sur les liens</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Désactiver un lien se<br/>
ferait avec <code>pointer-events: none</code><br/>
ou en supprimant l'attribut<br/>
<code>href</code>. La pseudo-classe<br/>
<code>:hover</code> n'altère en rien<br/>
le comportement du clic.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>À changer la couleur des liens lorsque la souris passe dessus</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>:hover</code> est une <strong>pseudo-<br/>
classe</strong> qui réagit à un état (survol<br/>
souris). Utile pour le retour visuel.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q17 : Couleurs en CSS</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Lesquels de ces formats désignent <strong>la même<br/>
couleur</strong> (rouge pur) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Quatre formats principaux : nommés (147<br/>
noms), hex (<code>#rrggbb</code>), rgb/rgba (transparence<br/>
via le 4ᵉ canal), hsl/hsla (teinte/saturation/<br/>
luminosité, plus intuitif).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>red</code>, <code>#ff0000</code>, <code>rgb(255, 0, 0)</code>, <code>hsl(0, 100%, 50%)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : tous ces formats<br/>
représentent le rouge pur. Choisir selon<br/>
ce qui est plus lisible/calculable.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Seulement <code>red</code> et <code>#ff0000</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les quatre sont équivalents.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucun</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Au moins l'un de ces<br/>
formats représente bien<br/>
du rouge ; en réalité,<br/>
tous les quatre désignent<br/>
exactement la même couleur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Seulement <code>rgb(255, 0, 0)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>La notation <code>rgb(255, 0, 0)</code><br/>
n'est pas la seule à<br/>
désigner du rouge pur.<br/>
Le mot-clé <code>red</code>, le code<br/>
hexadécimal <code>#ff0000</code> et<br/>
la notation HSL produisent<br/>
le même résultat.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q18 : Trace CSS</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p><pre><code>p { color: blue; }
.important { color: red; }</code></pre><br/>
<pre><code>&lt;p class="important"&gt;Texte&lt;/p&gt;</code></pre><br/>
Quelle est la couleur du texte ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Calcul de spécificité (a,b,c) : a = id, b =<br/>
classe/attribut/pseudo-classe, c = élément/<br/>
pseudo-élément. Comparaison<br/>
lexicographique : (0,1,0) &gt; (0,0,1).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Bleu (la première règle gagne)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>.important</code> a une plus grande<br/>
spécificité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Rouge (le sélecteur de classe l'emporte sur le sélecteur d'élément)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : spécificité (0,1,0) pour<br/>
<code>.important</code> &gt; spécificité (0,0,1) pour<br/>
<code>p</code>. Donc rouge.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucune (conflit, le texte reste noir)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la cascade résout les conflits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Violet (mélange)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le moteur CSS ne réalise<br/>
aucun mélange de couleurs<br/>
en cas de règles concurrentes.<br/>
C'est la règle la plus<br/>
spécifique qui s'applique<br/>
telle quelle.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q19 : Design responsive</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce qu'un design <strong>responsive</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Trois piliers du responsive : grilles<br/>
flexibles (% au lieu de px), images<br/>
flexibles (<code>max-width: 100%</code>), media<br/>
queries (<code>@media (max-width: 600px)</code>).</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un design qui change de couleur selon l'humeur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le terme <em>responsive</em><br/>
renvoie strictement à<br/>
l'adaptation à la taille<br/>
de l'écran, pas à un<br/>
comportement émotionnel.<br/>
La détection d'humeur<br/>
n'a aucune réalité dans<br/>
ce cadre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un site qui répond rapidement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>C'est lié à la <strong>performance</strong>, pas au<br/>
responsive.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un design qui s'adapte automatiquement à différentes tailles d'écran (mobile, tablette, ordinateur)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : utilise <code>@media</code>,<br/>
unités relatives, mises en page flexibles<br/>
(Flexbox, Grid). Essentiel à l'ère du<br/>
mobile.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un design avec animations</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans rapport (animations =<br/>
<code>transition</code>, <code>animation</code>).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q20 : Plusieurs classes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un élément peut-il avoir <strong>plusieurs classes</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Multi-classes = principe de <strong>composition</strong>.<br/>
Très utilisé par les frameworks (Bootstrap,<br/>
Tailwind) : combiner de petits utilitaires<br/>
pour bâtir une mise en forme.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Oui, séparées par des virgules</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : virgule produirait une classe<br/>
unique nommée « bouton, primaire, grand ».</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Non, une seule par élément</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on peut en mettre plusieurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Oui : <code>class="bouton primaire grand"</code> (séparées par des espaces)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pratique pour combiner<br/>
des styles modulaires. Chaque classe est<br/>
appliquée indépendamment.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Non, il faut utiliser un id</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : id et class sont indépendants.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q21 : Style ne s'applique pas</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Mon CSS ne semble pas s'appliquer à un élément.<br/>
Quelles sont les <strong>causes les plus probables</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Réflexe : ouvrir l'inspecteur (F12),<br/>
sélectionner l'élément, regarder l'onglet<br/>
« Styles » pour voir quelles règles<br/>
s'appliquent et lesquelles sont surchargées.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>HTML5 ne supporte pas CSS</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Faute de frappe dans le sélecteur (ex. <code>.bouton</code> au lieu de <code>.button</code>), ou règle plus spécifique qui surcharge, ou fichier CSS non chargé (vérifier la console).</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : trois pistes classiques.<br/>
Outils de débogage : inspecteur du<br/>
navigateur (F12), onglet « Computed »<br/>
montre les styles appliqués réellement et<br/>
d'où ils viennent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il faut redémarrer le serveur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Possiblement (cache navigateur), mais<br/>
rarement la cause profonde.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le CSS est lent</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Le moteur de rendu CSS<br/>
applique les règles<br/>
quasi instantanément.<br/>
Si un style ne s'affiche<br/>
pas, la cause est presque<br/>
toujours un sélecteur<br/>
erroné, une règle plus<br/>
spécifique ou un fichier<br/>
mal chargé.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q22 : Flexbox</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>À quoi sert <code>display: flex;</code> sur un parent ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Flexbox (1D) et Grid (2D) sont les deux<br/>
systèmes modernes de mise en page. Avant<br/>
eux, on faisait des mises en page à coups de<br/>
<code>float</code> ou de <code>&lt;table&gt;</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À cacher l'élément</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>display: none;</code> cache.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À forcer une bordure</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans rapport.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À empêcher le clic</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans rapport.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>À transformer le parent en conteneur flexible, dont les enfants se disposent en ligne (par défaut) et peuvent être alignés/distribués facilement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : Flexbox est devenu le<br/>
standard pour les mises en page 1D (en ligne ou<br/>
en colonne). Propriétés clés :<br/>
<code>justify-content</code>, <code>align-items</code>, <code>gap</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q23 : Media queries</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que fait <code>@media (max-width: 600px) { ... }</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Stratégie « mobile-first » moderne :<br/>
écrire d'abord les styles pour mobile, puis<br/>
ajouter <code>@media (min-width: ...)</code> pour les<br/>
écrans plus grands.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Empêche l'affichage sur mobile</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Charge un autre fichier CSS</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ne charge rien.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>S'applique uniquement à l'impression</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait <code>@media print</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Applique les règles sur les écrans de 600 pixels de large ou moins (typiquement les téléphones)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est la base du<br/>
responsive. Permet d'avoir une mise en<br/>
page spécifique aux petits écrans (police<br/>
plus grande, menu hamburger, colonnes<br/>
empilées...).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q24 : Le mot-clé !important</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi faut-il <strong>éviter</strong> d'utiliser<br/>
<code>!important</code> en CSS ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Maxime CSS : « Spécificité bien pensée &gt;<br/>
<code>!important</code> ». Si on a besoin de<br/>
<code>!important</code>, c'est souvent qu'il y a un<br/>
problème de structure plus en amont.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce qu'il rend les sites lents</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pas d'impact significatif sur la<br/>
performance.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Parce qu'il outrepasse la cascade normale et rend le code difficile à maintenir et à déboguer (on doit alors mettre <code>!important</code> partout pour gagner)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>!important</code> est l'arme<br/>
nucléaire de CSS. À réserver à des cas<br/>
précis (surcharger une bibliothèque<br/>
tierce qu'on ne peut pas modifier).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que c'est invalide</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est valide.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce qu'il ne fonctionne pas en HTML5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : fonctionne.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q25 : Synthèse</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Parmi les affirmations suivantes sur CSS,<br/>
laquelle est <strong>fausse</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Mnémonique : <code>.classe</code> = catégorie (peut<br/>
regrouper N éléments) ; <code>#id</code> = identifiant<br/>
(un seul). À ne pas confondre.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le modèle de boîte CSS comprend contenu, padding, bordure, marge</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Vrai : modèle fondamental.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>CSS sépare la présentation de la structure (HTML)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Vrai : principe fondamental.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La spécificité hiérarchise les sélecteurs : id &gt; classe &gt; élément</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Vrai : règle de la cascade.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un sélecteur de classe (préfixé par <code>.</code>) cible un seul élément à la fois</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Faux (donc bonne réponse) : une classe<br/>
peut être appliquée à plusieurs<br/>
éléments. C'est le <strong>id</strong> qui est unique<br/>
par convention.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q26 : Modèle de boîte</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans le modèle de boîte CSS, quel est l'ordre des<br/>
espaces autour du contenu, en partant du contenu<br/>
vers l'extérieur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le modèle de boîte CSS est central pour<br/>
comprendre la mise en page. La propriété<br/>
<code>box-sizing: border-box</code> modifie la convention<br/>
de mesure : la largeur et la hauteur incluent<br/>
alors la bordure et le padding, ce qui simplifie<br/>
les calculs de dimensions.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Bordure, marge, padding</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la marge se trouve toujours à<br/>
l'extérieur. La bordure est entre le padding<br/>
et la marge, pas avant le padding.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Marge, padding, bordure</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'ordre est inversé. Le padding est<br/>
le plus proche du contenu, la marge la plus<br/>
éloignée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Padding, bordure, marge</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : autour du contenu, on trouve<br/>
d'abord le <strong>padding</strong> (espace intérieur entre<br/>
le contenu et la bordure), puis la <strong>bordure</strong><br/>
elle-même, puis la <strong>marge</strong> (espace extérieur<br/>
séparant l'élément des autres).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Bordure, padding, marge</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le padding est à l'intérieur de la<br/>
bordure, pas à l'extérieur. La séquence<br/>
correcte commence par le padding.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q27 : Unités relatives em et rem</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle est la différence entre les unités CSS <code>em</code><br/>
et <code>rem</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Bonne pratique : utiliser <code>rem</code> pour les tailles<br/>
globales (texte, marges principales) et <code>em</code> pour<br/>
les ajustements relatifs à un composant<br/>
particulier. Les deux respectent la taille de<br/>
base définie par l'utilisateur dans son<br/>
navigateur, ce qui aide l'accessibilité.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>em</code> est en pixels, <code>rem</code> est en pourcentage</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sont toutes deux des unités<br/>
<strong>relatives</strong> sans dimension fixe en pixels.<br/>
Elles dépendent toujours d'une taille de<br/>
référence.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>em</code> ne fonctionne que sur les polices, <code>rem</code> que sur les marges</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les deux unités s'appliquent à<br/>
n'importe quelle propriété de longueur (taille<br/>
de texte, marges, paddings, etc.). Aucune<br/>
n'est restreinte à un type particulier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucune, ce sont deux noms équivalents</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ces deux unités existent toutes les<br/>
deux et ne se réfèrent pas à la même grandeur.<br/>
Confondre les deux peut conduire à des tailles<br/>
imprévisibles.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>em</code> est relatif à la taille du parent ; <code>rem</code> est relatif à la taille de la racine (élément <code>&lt;html&gt;</code>)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un même <code>1em</code> peut donner des<br/>
tailles différentes selon le parent et<br/>
s'amplifier en cas d'imbrication ; <code>rem</code> reste<br/>
stable en se référant toujours à<br/>
<code>&lt;html&gt;</code>. C'est pourquoi <code>rem</code> est privilégié<br/>
pour la typographie globale.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q28 : Spécificité d'un sélecteur</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Parmi les sélecteurs suivants, lequel a la <strong>plus<br/>
grande spécificité</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le calcul de spécificité s'écrit en triplet<br/>
$(a, b, c)$ : $a$ = nombre d'<code>id</code>, $b$ = nombre de<br/>
classes, attributs et pseudo-classes, $c$ =<br/>
nombre d'éléments et pseudo-éléments. La<br/>
comparaison est lexicographique. Le mot-clé<br/>
<code>!important</code> court-circuite ce calcul, mais il<br/>
est à éviter car il rend les styles difficiles à<br/>
maintenir.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>#header</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un identifiant a la<br/>
spécificité $(1, 0, 0)$, supérieure à toute<br/>
combinaison ne comportant pas d'identifiant.<br/>
C'est pourquoi il faut utiliser les <code>id</code> avec<br/>
parcimonie : ils sont difficiles à surcharger<br/>
ensuite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>p</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un sélecteur d'élément seul a la plus<br/>
faible spécificité, à savoir $(0, 0, 1)$. Tout<br/>
autre sélecteur listé ici le surclasse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>.menu</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un sélecteur de classe a la<br/>
spécificité $(0, 1, 0)$, supérieure à un<br/>
élément, mais inférieure à un identifiant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>p.menu</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sélecteur combine un élément et<br/>
une classe, soit la spécificité $(0, 1, 1)$.<br/>
C'est plus fort qu'une simple classe ou un<br/>
simple élément, mais cela reste inférieur à<br/>
un identifiant.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
