Today I Learned

Drawing of a teacher
On en apprend tous les jours... Voici donc mes découvertes (article évolutif)

 

TIL #1 -- CSS

On peut utiliser des "features queries" pour appliquer des styles en fonction des fonctionnalités supportées par les navigateurs

@supports (display: grid) {
  /* les styles ici ne s'appliqueront qu'aux navigateurs supportant CSS Grid */
  .my-selector { background: pink; }
}

cf. https://developer.mozilla.org/fr/docs/Web/CSS/@supports

 

TIL #2 -- CSS

On peut préserver les sauts de ligne invisible du code source (merci Emmanuel Brendel pour celui là)

element {
  white-space: pre-wrap;
}

cf. https://developer.mozilla.org/fr/docs/Web/CSS/white-space

 

TIL #3 -- NPM

Pour que tout le monde utilise la même version de NPM sur un projet, d'abord encourager tout le monde à utiliser NVM et à la toute 1ère utilisation, taper cette commande pour installer la dernière version (LTS) de node et créer un fichier .nvmrc qui indiquera aux autres utilisateurs du projet quelle version utiliser :

nvm install --lts && node -v > .nvmrc

Pour utiliser la version définie dans le fichier .nvmrc il suffit de taper la commande nvm use

 

TIL #4 -- PHP

La méthode isset peut prendre plusieurs variables en argument

if (!isset($list['user'], $list['user']['id']) {
  throw new Exception('...');
}

Crédit : https://twitter.com/frjimmyklein/status/1272494372202975233

 

TIL #5 -- PHP

L'opérateur Null coalescent (??) a été ajouté en PHP 7.0 : il retourne le premier opérande s'il existe et n'a pas une valeur NULL et retourne le second opérande sinon.

// Récupére la valeur de $_GET['utilisateur'] retourne 'aucun' s'il n'existe pas.
$identifiant = $_GET['utilisateur'] ?? 'aucun';
// Ceci est équivalent à :
$identifiant = isset($_GET['utilisateur']) ? $_GET['utilisateur'] : 'aucun';
// L'opérateur permet de faire du chaînage : Ceci va retourner la première valeur définie 
// respectivement dans $_GET['utilisateur'], $_POST['utilisateur'] et 'aucun'.
$identifiant = $_GET['utilisateur'] ?? $_POST['utilisateur'] ?? 'aucun';

Source : https://www.php.net/manual/fr/migration70.new-features.php

 

TIL #6 -- CSS

En mettant un délai négatif l'animation commencera immédiatement avec l'état qu'elle aurait « normalement » eue au bout de ce délai.

element {
  animation-delay: -2s;
}

cf. https://developer.mozilla.org/fr/docs/Web/CSS/animation-delay

 

TIL #7 -- CSS

On peut utiliser l'opérateur i pour que le sélecteur soit insensible à la casse

/* Insensible à la casse */
a[title="Home" i] {
  /* marche pour home ou encore HOME */
}
/* Sensible à la casse */
a[title="Home"] {
  /* marche uniquement pour Home */
}

Crédit : https://twitter.com/umaar/status/1275416501688942592

 

TIL #8 -- jQuery

Il est possible d'attacher des événements à des éléments du DOM qui n'existent pas au moment de l'exécution du script. Grâce à la fonction .on(), jQuery va surveiller un élément conteneur jusqu'à ce qu'il y trouve un élément qui corresponde au sélecteur du second paramètre pour lui attacher l'événement. (merci Nicolas Bédé pour celui là)

$('body').on('click', '.random-generated-element', function() {
  console.log('I was not here at page load but jQuery found me later and now click on me is handled');
});

cf. https://api.jquery.com/on/

 

TIL #9 -- CSS

On peut appliquer un ombrage au contenu d'une image grâce à CSS filter et non pas juste au cadre comme avec box-shadow

.my-img {
  filter: drop-shadow(1px 2px 3px black);
}

Crédit & démo : https://twitter.com/JoshWComeau/status/1288830824322924544

 

TIL #10 -- CSS

En ajoutant un i le sélecteur d'attribut devient insensible à la casse.

div[data-visible="false" i] {
  display: none;
}

Ce code masquera toutes les balises <div> qui auront un attribut data-visible avec la valeur False, false ou FALSE.

Crédit : https://twitter.com/hi__mayank/status/1581804538205704193

__________________

PS : Cette idée d'article pour partager mes découvertes quotidiennes (= TIL = Today I Learned) me vient de ce site matuzo.at/til

Mots clés

Ajouter un commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement.

Texte brut

  • Aucune balise HTML autorisée.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.