# HTML CSS - Quelques Lignes De Codes Indispensables
## Rendre le défilement plus fluide lors du scroll
```css=
:root {
scroll-behavior: smooth;
}
```
## Définir une taille de police par défaut pour tout le document
```css=
:root {
font-size: 100%;
}
p {
font-size:1.2rem;
}
```
## Inclure le padding et la bordure pour la taille des boîtes
```css=
*, *:before, *:after {
box-sizing: border-box;
}
```
## Empêcher la coupure d'un paragraphe
```css=
p {
white-space: nowrap;
}
```
## Masquer du texte qui déborde du conteneur
```css=
p {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
```
## Changer l'icône du curseur lors du survol d'un élément cliquable
```css=
p {
cursor: pointer;
}
```
## Installer une police pour la performance
Si vous intégrez vous même vos polices, pensez bien à fournir des polices compressées `woff2` si possible.
```html=
/* montserrat-regular - latin */
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 400;
src: url('../fonts/montserrat-v14-latin-regular.eot'); /* IE9 Compat Modes */
src: local('Montserrat Regular'), local('Montserrat-Regular'),
url('../fonts/montserrat-v14-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/montserrat-v14-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/montserrat-v14-latin-regular.woff') format('woff'), /* Modern Browsers */
url('../fonts/montserrat-v14-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/montserrat-v14-latin-regular.svg#Montserrat') format('svg'); /* Legacy iOS */
font-display: swap;
}
```
- réf : [https://google-webfonts-helper.herokuapp.com/fonts](https://google-webfonts-helper.herokuapp.com/fonts)
## Gérer des images pour améliorer les performances mobiles
Pour commencer je vous conseille d'utiliser les attributs `width` et `height`. Si vous ne connaissez pas la taille de l'image définitive, mettez les dimmentions exactes.
Ajouter le nouvel attribut `loading="lazy"` qui permet un chargement différé pour de meilleurs performances.
En HTML:
```html
<img src="./mon-image.jpg" width="600" height="338" loading="lazy"/>
```
Ensuite pour empêcher vos images d'être trop grandes selon le contexte, ajoutez
En CSS:
```css=
img {
width: 100%; /*100% de l'article*/
height: auto; /* On se préoccupe pas de la hauteur*/
}
```
Pour optimiser davantage le chargement des images, considerez le code suivant :
```html=
<p>Responsive image using WebP, JPEG 2000 with a JPG fallback.</p>
<figure>
<picture>
<!-- Attention la media query doit être appelée en premier -->
<!-- Pour chrome -->
<source srcset="images/1x/image-resize-1110-grid.webp" type="image/webp" media="(min-width: 800px)">
<source srcset="images/1x/image-resize-555-grid.webp" type="image/webp">
<!-- Pour Safari -->
<source srcset="images/1x/image-resize-1110-grid.jpf" type="image/jp2" media="(min-width: 800px)">
<source srcset="images/1x/image-resize-555-grid.jpf" type="image/jp2">
<!-- Pour les autres -->
<source srcset="images/1x/image-resize-1110-grid.jpg" type="image/jpeg" media="(min-width: 800px)">
<source srcset="images/1x/image-resize-555-grid.jpg" type="image/jpeg">
<!-- Pour les vieux navigateurs -->
<img class="img-fluid" src="images/1x/image-resize-1110-grid.jpg" alt="Rebel" loading="lazy">
</picture>
<figcaption>
Currently Viewing:
<span class="image-type -webp">WebP</span>
<span class="image-type -jp2">JPEG 2000</span>
<span class="image-type -jxr">JPEG XR</span>
<span class="image-type -png">PNG24</span>
</figcaption>
</figure>
```
- réf :
- https://codepen.io/alternative-rvb
- [Type Mime](https://www.iana.org/assignments/media-types/media-types.xhtml)
- Voir aussi :
- Modernizr
- Lazy Loading
{%hackmd @alternative-rvb/contact %}