prog:css
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
prog:css [2024/05/17 18:03] – [Origine] : ajout de l'ordre de priorité root | prog:css [2024/12/23 11:33] (Version actuelle) – [Position] : précision sur "display: flex" root | ||
---|---|---|---|
Ligne 78: | Ligne 78: | ||
===Id=== | ===Id=== | ||
- | ''# | + | ''# |
===Pseudo-classe=== | ===Pseudo-classe=== | ||
Ligne 91: | Ligne 91: | ||
'': | '': | ||
+ | |||
+ | '': | ||
* Cas dynamique | * Cas dynamique | ||
Ligne 100: | Ligne 102: | ||
===Pseudo-élément=== | ===Pseudo-élément=== | ||
- | Désigne une partie d'un élément. Préfixé par un '':'' | + | Désigne une partie d'un élément. Préfixé par un '' |
'':: | '':: | ||
Ligne 249: | Ligne 251: | ||
| 7 | user-agent (browser) | !important | | | 7 | user-agent (browser) | !important | | ||
| 8 | CSS transitions | | | | 8 | CSS transitions | | | ||
+ | |||
+ | ====Layer==== | ||
+ | |||
+ | Les layers permettent de ranger des styles dans des ensembles. Les styles sont appliquées dans l' | ||
+ | |||
+ | L' | ||
+ | |||
+ | Les layers anonymes existent. Dans ce cas, il n'est pas possible d' | ||
+ | |||
+ | Il existe aussi des layers imbriqués. Les noms de ces layers sont séparés par des '' | ||
+ | |||
+ | L' | ||
+ | |||
+ | <code css> | ||
+ | @import url(" | ||
+ | @import url(" | ||
+ | @import url(" | ||
+ | </ | ||
+ | |||
+ | Exemple : | ||
+ | |||
+ | | <code css> | ||
+ | @layer site, page; | ||
+ | |||
+ | @layer page { | ||
+ | h1 { | ||
+ | text-decoration: | ||
+ | color: red; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @layer site { | ||
+ | h1 { | ||
+ | text-decoration: | ||
+ | color: green; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | @layer code2_site, code2_page; | ||
+ | |||
+ | @layer { | ||
+ | body { | ||
+ | margin: 0; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @layer code2_page { | ||
+ | .code2 h1 { | ||
+ | text-decoration: | ||
+ | color: red; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @layer { | ||
+ | body { | ||
+ | margin: 0; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @layer code2_site { | ||
+ | .code2 h1 { | ||
+ | text-decoration: | ||
+ | color: green; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | <div class=" | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * Ordre de priorité | ||
+ | |||
+ | Du moins important au plus important. | ||
+ | |||
+ | - Ordre des layers pour les non '' | ||
+ | - inline normal styles ('' | ||
+ | - animating styles, | ||
+ | - Ordre inverse des layers pour les '' | ||
+ | - inline important styles, | ||
+ | - transitioning styles, | ||
+ | |||
+ | | <code css> | ||
+ | @layer A, B; | ||
+ | |||
+ | h1 { | ||
+ | color: orange; | ||
+ | background-color: | ||
+ | text-decoration: | ||
+ | box-shadow: 5px 5px lightgreen !important; | ||
+ | } | ||
+ | |||
+ | @layer A { | ||
+ | h1 { | ||
+ | color: grey; | ||
+ | background-color: | ||
+ | text-decoration: | ||
+ | box-shadow: -5px -5px lightblue !important; | ||
+ | font-style: normal; | ||
+ | font-weight: | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @layer B { | ||
+ | h1 { | ||
+ | color: aqua; | ||
+ | background: yellow !important; | ||
+ | text-decoration: | ||
+ | box-shadow: -5px 5px magenta !important; | ||
+ | font-style: italic; | ||
+ | font-weight: | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | <div> | ||
+ | <h1 style=" | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | @layer code3.A, code3.B; | ||
+ | |||
+ | .code3 h1 { | ||
+ | color: orange; | ||
+ | background-color: | ||
+ | text-decoration: | ||
+ | box-shadow: 5px 5px lightgreen !important; | ||
+ | } | ||
+ | |||
+ | @layer code3.A { | ||
+ | .code3 h1 { | ||
+ | color: grey; | ||
+ | background-color: | ||
+ | text-decoration: | ||
+ | box-shadow: -5px -5px lightblue !important; | ||
+ | font-style: normal; | ||
+ | font-weight: | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @layer code3.B { | ||
+ | .code3 h1 { | ||
+ | color: aqua; | ||
+ | background: yellow !important; | ||
+ | text-decoration: | ||
+ | box-shadow: -5px 5px magenta !important; | ||
+ | font-style: italic; | ||
+ | font-weight: | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | <div class=" | ||
+ | <div> | ||
+ | <h1 style=" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
====Ordre de priorité==== | ====Ordre de priorité==== | ||
Ligne 283: | Ligne 444: | ||
* '' | * '' | ||
+ | =====Le modèle de boite===== | ||
+ | |||
+ | Une boite / box stocke des données dans un rectangle et est composée d'une marge, bordure et padding. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ====Position==== | ||
+ | |||
+ | Les box peuvent être soit : | ||
+ | |||
+ | * dans une ligne dédiée ('' | ||
+ | * comme un caractère dans la ligne ('' | ||
+ | |||
+ | Les données dans les boites peuvent être soit : | ||
+ | |||
+ | * comportement par défaut. | ||
+ | * '' | ||
+ | * '' | ||
+ | * "entre deux" ('' | ||
+ | |||
+ | | <code css> | ||
+ | p, | ||
+ | ul { | ||
+ | border: 2px solid rebeccapurple; | ||
+ | padding: .5em; | ||
+ | } | ||
+ | |||
+ | .block, | ||
+ | li { | ||
+ | border: 2px solid blue; | ||
+ | padding: .5em; | ||
+ | } | ||
+ | |||
+ | ul { | ||
+ | display: flex; | ||
+ | list-style: none; | ||
+ | } | ||
+ | |||
+ | dd { | ||
+ | display: inline-flex; | ||
+ | list-style: none; | ||
+ | } | ||
+ | |||
+ | .block { | ||
+ | display: block; | ||
+ | } | ||
+ | span .span1 { | ||
+ | margin: 20px; | ||
+ | padding: 20px; | ||
+ | width: 80px; | ||
+ | height: 50px; | ||
+ | background-color: | ||
+ | border: 2px solid blue; | ||
+ | display: inline-block; | ||
+ | } | ||
+ | span .span2 { | ||
+ | margin: 20px; | ||
+ | padding: 20px; | ||
+ | width: 80px; | ||
+ | height: 50px; | ||
+ | background-color: | ||
+ | border: 2px solid blue; | ||
+ | } | ||
+ | </ | ||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | <dl> | ||
+ | < | ||
+ | < | ||
+ | <dl> | ||
+ | <p>p block <span class=" | ||
+ | <p>I am a paragraph and this is a inline-block <span class=" | ||
+ | A span is an inline element and so does respect width and height.</ | ||
+ | <p>I am a paragraph and this is a normal <span class=" | ||
+ | A span is an inline element and so does not respect width and height.</ | ||
+ | </ | ||
+ | < | ||
+ | .code4 p, | ||
+ | .code4 ul { | ||
+ | border: 2px solid rebeccapurple; | ||
+ | padding: .5em; | ||
+ | } | ||
+ | |||
+ | .code4 .block, | ||
+ | .code4 li { | ||
+ | border: 2px solid blue; | ||
+ | padding: .5em; | ||
+ | } | ||
+ | |||
+ | .code4 ul { | ||
+ | display: flex; | ||
+ | list-style: none; | ||
+ | } | ||
+ | |||
+ | .code4 dd { | ||
+ | display: inline-flex; | ||
+ | list-style: none; | ||
+ | } | ||
+ | |||
+ | .code4 .block { | ||
+ | display: block; | ||
+ | } | ||
+ | |||
+ | .code4 .span1 { | ||
+ | margin: 20px; | ||
+ | padding: 20px; | ||
+ | width: 80px; | ||
+ | height: 50px; | ||
+ | background-color: | ||
+ | border: 2px solid blue; | ||
+ | display: inline-block; | ||
+ | } | ||
+ | |||
+ | .code4 .span2 { | ||
+ | margin: 20px; | ||
+ | padding: 20px; | ||
+ | width: 80px; | ||
+ | height: 50px; | ||
+ | background-color: | ||
+ | border: 2px solid blue; | ||
+ | } | ||
+ | </ | ||
+ | <div class=" | ||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | <dl> | ||
+ | < | ||
+ | < | ||
+ | <dl> | ||
+ | <p>p block <span class=" | ||
+ | <p>I am a paragraph and this is a inline-block <span class=" | ||
+ | <p>I am a paragraph and this is a normal <span class=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ====Dimension==== | ||
+ | |||
+ | * Cas général | ||
+ | |||
+ | Content : via '' | ||
+ | |||
+ | Padding : via '' | ||
+ | |||
+ | Border : via '' | ||
+ | |||
+ | Margin : via '' | ||
+ | |||
+ | * Alternative modèle | ||
+ | |||
+ | Dans ce cas, c'est '' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Pour l' | ||
+ | |||
+ | <code css> | ||
+ | html { | ||
+ | box-sizing: border-box; | ||
+ | } | ||
+ | |||
+ | *, | ||
+ | *::before, | ||
+ | *::after { | ||
+ | box-sizing: inherit; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | * Propriétés logiques | ||
+ | |||
+ | Il est possible de choisir l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Il faut alors remplacer '' | ||
+ | |||
+ | Il est aussi possible de faire la même chose avec '' | ||
+ | |||
+ | <code css> | ||
+ | margin-block-start: | ||
+ | padding-inline-end: | ||
+ | padding-block-start: | ||
+ | border-block-start: | ||
+ | border-inline-end: | ||
+ | border-block-end: | ||
+ | border-inline-start: | ||
+ | </ | ||
+ | |||
+ | * Scrollbar / ascenseur | ||
+ | |||
+ | Si la dimension d'une boite est bloquée et qu'il y a plus de texte que la boite peut contenir, le texte va déborder. Le contrôle du débordement se fait via '' | ||
+ | |||
+ | =====Propriétés===== | ||
+ | |||
+ | ====background==== | ||
+ | |||
+ | <code css> | ||
+ | background-color: | ||
+ | background-color: | ||
+ | background-color: | ||
+ | </ | ||
+ | |||
+ | Il est aussi possible de générer des gradients de couleur avec '' | ||
+ | |||
+ | La couleur de fond peut se combiner avec '' | ||
+ | |||
+ | Par défaut, une image n'est pas redimensionnée et est répétée pour remplir l' | ||
+ | |||
+ | Si on veut contrôler la répétition, | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | <code css> | ||
+ | background-size: | ||
+ | background-size: | ||
+ | background-size: | ||
+ | </ | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | Si des bandes transparentes sont affichées, il est possible d' | ||
+ | |||
+ | Enfin, il est possible d' | ||
+ | |||
+ | <code css> | ||
+ | background-image: | ||
+ | background-repeat: | ||
+ | background-position: | ||
+ | </ | ||
+ | |||
+ | '' | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ====border==== | ||
+ | |||
+ | Il y a 4 sous propriétés ('' | ||
+ | |||
+ | <code css> | ||
+ | border-top-width: | ||
+ | border-top-style: | ||
+ | border-top-color: | ||
+ | </ |
prog/css.1715961803.txt.gz · Dernière modification : 2024/05/17 18:03 de root