<?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 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 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>Un fichier <code>.css</code> séparé, lié via <code>&lt;link&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 rel="stylesheet" href="style.css"&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : balise inexistante en HTML. CSS a<br/>
<code>@import</code> 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" type="text/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 interne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<pre><code>&lt;css rel="stylesheet" href="style.css" /&gt;</code></pre>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la balise <code>&lt;css&gt;</code> n'existe pas.</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, selon le choix interne du navigateur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la cascade est déterministe,<br/>
rien n'est laissé au choix du navigateur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Celle dont le sélecteur est le plus court, donc le plus général</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'opposé, le sélecteur le<br/>
plus <strong>spécifique</strong> l'emporte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La plus spécifique, sinon 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 toute 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>Transmise du parent aux enfants</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é exprime une taille de texte<br/>
<strong>relative à la taille de police de<br/>
l'élément parent</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Deux unités relatives à connaître : <code>em</code><br/>
(relative au parent) et <code>rem</code> (relative à la<br/>
racine). Bonne pratique d'accessibilité :<br/>
utiliser ces unités pour le texte, ainsi<br/>
l'utilisateur peut ajuster la taille de base<br/>
(préférences navigateur) et tout le site<br/>
s'adapte 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></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>1.2em</code> vaut 120 % de la<br/>
taille de police du parent. Adaptatif et<br/>
accessible.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>rem</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>rem</code> est relatif à la<br/>
<strong>racine</strong> (<code>&lt;html&gt;</code>), pas au parent.</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 absolue, peu<br/>
adaptée à 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, indépendante du<br/>
parent.</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></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 — Q17 : Couleurs en CSS</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Lesquels de ces formats désignent <strong>la même couleur</strong> (rouge pur) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Quatre formats principaux : nommés (148<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>, pas les deux autres</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, chacun donne une nuance de rouge différente</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 la notation <code>rgb(255, 0, 0)</code>, la plus précise</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 : Deux règles de même spécificité</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p><pre><code>p { color: blue; }
p { color: red; }</code></pre><br/>
<pre><code>&lt;p&gt;Texte&lt;/p&gt;</code></pre><br/>
Quelle est la couleur du texte ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La cascade compare d'abord la spécificité ;<br/>
en cas d'égalité (ici deux sélecteurs<br/>
d'élément), c'est l'ordre d'apparition qui<br/>
décide : la dernière règle écrite l'emporte.</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>Rouge, car la dernière règle écrite l'emporte</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les deux sélecteurs <code>p</code><br/>
ont exactement la même spécificité<br/>
(0,0,1). À égalité, c'est l'ordre<br/>
d'écriture qui départage, à savoir la<br/>
dernière règle déclarée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Bleu, car la première règle rencontrée est prioritaire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur classique : croire que la première<br/>
déclaration « verrouille » la propriété.<br/>
C'est l'inverse, à spécificité égale la<br/>
dernière règle écrite écrase la<br/>
précédente.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Noir, car les deux règles s'annulent mutuellement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un conflit CSS n'annule jamais<br/>
les règles en jeu. La cascade est faite<br/>
précisément pour trancher, ici en faveur<br/>
de la dernière règle écrite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Cela dépend du navigateur qui affiche la page</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la résolution de la cascade est<br/>
normalisée et identique dans tous les<br/>
navigateurs. À spécificité égale, la<br/>
dernière règle écrite l'emporte partout.</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 simples</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'attribut <code>class</code> est découpé<br/>
sur les espaces, la virgule n'est pas un<br/>
séparateur. <code>class="bouton,primaire"</code><br/>
définirait une seule classe nommée<br/>
« bouton,primaire ».</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, 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 tout simplement pas du tout 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, surcharge, ou fichier non chargé</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 web après chaque modification</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 trop lent et n'a pas fini de s'appliquer</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 — 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 cible un seul élément à la fois</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Faux (donc bonne réponse) : une classe<br/>
(sélecteur préfixé par <code>.</code>) peut être<br/>
appliquée à plusieurs éléments. C'est le<br/>
<strong>id</strong> qui est unique par convention.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q26 : Largeur totale d'une boîte</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On applique le style suivant à un paragraphe<br/>
(modèle par défaut, <code>box-sizing: content-box</code>) :</p>
<pre><code>p {
  width: 200px;
  padding: 10px;
  border: 2px solid black;
  margin: 15px;
}</code></pre>
<p>Quelle largeur totale ce paragraphe occupe-t-il<br/>
horizontalement, marges comprises ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Avec <code>box-sizing: content-box</code> (défaut), la<br/>
largeur rendue vaut <code>width</code> + padding + bordures.<br/>
La propriété <code>box-sizing: border-box</code> change la<br/>
convention : <code>width</code> inclut alors padding et<br/>
bordure (l'élément ferait 200 px de large, soit<br/>
230 px avec ses marges), ce qui simplifie les<br/>
calculs de mise en 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="0" format="html">
    <text><![CDATA[<p>227 px</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce calcul (200 + 10 + 2 + 15) ne<br/>
compte chaque épaisseur qu'une fois. Padding,<br/>
bordure et marge s'appliquent <strong>des deux<br/>
côtés</strong> de la boîte, il faut donc les<br/>
compter deux fois chacun.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>254 px</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : de part et d'autre du contenu,<br/>
chaque couche compte deux fois, soit<br/>
200 + 2 × 10 + 2 × 2 + 2 × 15 = 254 px.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>224 px</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce calcul (200 + 2 × 10 + 2 × 2)<br/>
oublie la <strong>marge</strong>. Même extérieure à la<br/>
bordure, elle fait partie de la place occupée<br/>
par l'élément dans la page.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>200 px</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : avec le modèle par défaut<br/>
(<code>content-box</code>), <code>width</code> ne désigne que la<br/>
largeur du <strong>contenu</strong>. Padding, bordure et<br/>
marge s'ajoutent autour.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q22 : Quelle règle l'emporte</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Considérez le code HTML suivant :</p>
<p><code>&lt;p class="alerte" id="principal"&gt;Texte&lt;/p&gt;</code></p>
<p>Trois règles CSS sont définies dans la même feuille de style :</p>
<p>- <code>p { color: blue; }</code><br/>
- <code>.alerte { color: orange; }</code><br/>
- <code>#principal { color: red; }</code></p>
<p>De quelle couleur le mot « Texte » s'affichera-t-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La spécificité d'un sélecteur se calcule à partir<br/>
du nombre d'identifiants, de classes et d'éléments<br/>
qu'il contient. Un identifiant pèse plus qu'une<br/>
classe, qui pèse plus qu'un sélecteur d'élément.<br/>
Le style en ligne (<code>style="..."</code>) est encore<br/>
au-dessus, et <code>!important</code> permet d'outrepasser<br/>
la cascade naturelle (à utiliser avec parcimonie).</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>Rouge, car le sélecteur d'identifiant a la spécificité la plus élevée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : lorsqu'aucune règle n'est marquée<br/>
<code>!important</code> et qu'il n'y a pas de style en ligne,<br/>
c'est la <strong>spécificité</strong> qui départage. L'identifiant<br/>
(<code>#principal</code>) l'emporte sur la classe (<code>.alerte</code>),<br/>
qui l'emporte elle-même sur le sélecteur d'élément<br/>
(<code>p</code>).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Bleu, car le sélecteur d'élément <code>p</code> est le plus général donc le plus prioritaire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est exactement l'inverse. En CSS, plus<br/>
un sélecteur est précis, plus il est prioritaire.<br/>
Le sélecteur d'élément est le moins spécifique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Orange, car la règle de la classe est la deuxième dans la feuille</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'ordre des règles n'intervient qu'en cas<br/>
d'égalité de spécificité. Ici, l'identifiant est<br/>
plus spécifique que la classe, donc l'ordre n'a<br/>
pas d'effet.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La couleur est indéterminée car trois règles différentes s'appliquent en même temps</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la cascade CSS définit précisément un<br/>
ordre de priorité (spécificité, puis ordre<br/>
d'apparition) qui rend la résolution toujours<br/>
déterministe.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>CSS : mise en forme — Q23 : Calcul d'une largeur rendue</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Une boîte CSS reçoit les propriétés suivantes :</p>
<p><code>width: 200px; padding: 20px; border: 2px solid black; margin: 10px;</code></p>
<p>Avec <code>box-sizing: border-box</code>, quelle est la<br/>
<strong>largeur rendue</strong> de la boîte (zone occupée à<br/>
l'écran par le contenu, le padding et la bordure,<br/>
sans inclure la marge externe) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>En <code>border-box</code>, la largeur rendue est directement<br/>
$\text{width}$ ; en <code>content-box</code> (défaut), elle vaut<br/>
$\text{width} + 2 \times \text{padding} + 2 \times<br/>
\text{bordure}$, soit ici $244$ px. C'est pourquoi de<br/>
nombreux projets définissent <code><em>, </em>::before, *::after<br/>
{ box-sizing: border-box; }</code> dans leur feuille de<br/>
style globale : les dimensions annoncées sont alors<br/>
celles réellement occupé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="100" format="html">
    <text><![CDATA[<p>$200$ px, car <code>width</code> fixe directement la largeur rendue</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : en <code>border-box</code>, la largeur<br/>
rendue vaut exactement $\text{width}$, padding et<br/>
bordure compris. Le contenu se réduit alors à<br/>
$200 - 2 \times 20 - 2 \times 2 = 156$ px. La<br/>
marge reste à l'extérieur de la boîte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$244$ px ($200 + 2 \times 20 + 2 \times 2$)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce calcul applique la formule du modèle<br/>
par défaut <code>content-box</code>, où padding et bordure<br/>
s'ajoutent à <code>width</code>. En <code>border-box</code>, ils sont<br/>
déjà <strong>inclus</strong> dans les $200$ px annoncés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$156$ px ($200 - 2 \times 20 - 2 \times 2$)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $156$ px est la largeur du <strong>contenu</strong><br/>
seul, une fois padding et bordure retranchés.<br/>
L'énoncé demande la largeur rendue de la boîte,<br/>
qui vaut ici directement <code>width</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$220$ px, en incluant la marge des deux côtés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la marge externe représente l'espace que<br/>
la boîte revendique autour d'elle, pas la largeur<br/>
de la boîte. L'énoncé demande explicitement de<br/>
l'exclure du calcul.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
