Un pour la route de plus savoureux mélanges mixtes

Cet article est la deuxième partie de mon exploration des mixins de la bibliothèque Bourbon Sass. Parmi eux, vous trouverez des exemples utiles qui accéléreront votre flux de travail et réduiront votre code Sass.

Une autre liste de goodies

Nous allons avoir un aperçu des huit mixins suivants:

  • Inline Block mixin
  • Position mixin
  • Mélange triangle
  • Clearfix mixin
  • Mélange de boutons
  • Taille mixin
  • Mixage de requêtes multimédia HiDPI
  • Retin Image mixin

Comme dans le didacticiel précédent, les exemples ci-dessous ne représentent pas nécessairement les meilleures pratiques de conception, mais sont choisis pour explorer les fonctionnalités de base de ces mixins..

Inline Block Mixin

Les paragraphes, par défaut, s'affichent comme bloc éléments.

HTML:

"html

Yada yada yada

Yada yada yada

"

Les éléments de niveau bloc, tels que les paragraphes, créent automatiquement une nouvelle ligne dans la présentation..

Ce mixin est pratique si vous voulez changer le comportement d'affichage par défaut d'éléments à bloc en ligne. Il ne se limite pas affichage: bloc en ligne mais prend également en charge les bizarreries et le support hérité pour IE7.

En savoir plus sur l'affichage sur designshack.net.

Sass: Ces blocs ont un comportement de type flottant, via inline-block.

"css. paragraphes-se comporter-comme-blocs + inline-block-background-color: tomate

// Syntaxe SCSS //. .Seconds-be-be-like-blocks @include inline-block; // "

Regardez la sortie CSS générée. Qui veut gérer des trucs méchants comme ça quand même?

Sortie CSS:

css. paragraphess-be-be-like-blocks display: inline-block; alignement vertical: ligne de base; zoom: 1; * display: inline; * vertical-align: auto; couleur de fond: tomate;

Mis à affichage: bloc en ligne, les paragraphes sont affichés en ligne, mais conservent leurs caractéristiques au niveau des blocs.

Attention! Notez les espaces entre les éléments du bloc. Si vous utilisiez flotte pour obtenir la même disposition, vous ne verrez aucun espace. C'est une sorte d'espace blanc par défaut, présent dans le HTML, qui ne disparaît pas en fixant les marges à 0px. Au lieu de cela, vous devez supprimer les espaces de caractère dans le balisage lui-même, comme illustré dans ce stylo:

Position Mixin

Ce mixin est un raccourci pour écrire quelque chose comme ce qui suit:

Toupet:

css .some-element position: relative top: 0px left: 100px

Toupet:

"css .some-element + position (relative, 0px 0 0 100px) // en haut à droite en bas à gauche

// syntaxe SCSS .some-element // @include position (relative, 0px 0 0 100px); "

C'est tout. Pas de magie, mais toujours super utile. Garder les feuilles de style simples et lisibles est rentable avec le temps.

Triangle Mixin

Voulez-vous utiliser les triangles CSS sans vous amuser? Il n'y a certainement pas besoin d'utiliser des images pour le travail. C'est simple comme bonjour avec ce mixin.

Toupet:

"css .triangle + triangle (25px, tomato, down) // taille, couleur, direction

// syntaxe SCSS .triangle @include triangle (25px, tomato, down); // "

Le troisième paramètre définit la direction. Les options pour ce mixin incluent:

  • vers le bas
  • en haut
  • la gauche
  • droite

  • droit
  • en haut à gauche
  • carrément
  • en bas à gauche

Vous pouvez même définir une deuxième couleur si vous avez besoin d’une couleur d’arrière-plan pour votre triangle..

Clearfix Mixin

Les conteneurs contenant des éléments flottants se heurtent à un problème de conteneur de hauteur nulle. En principe, l'élément de conteneur se dégonfle à zéro pixel si tous ses éléments internes sont flottés et sortis du conteneur. couler. Essentiellement, il n'y a plus rien pour remplir le récipient.

le clearfix mixin s'en occupe lorsqu'il est appliqué à l'élément conteneur / wrapper. La meilleure chose à propos de cela est qu'il ne nécessite pas de balisage «vide» supplémentaire pour accueillir le clearfix. Il garde les choses sémantiques, séparant les préoccupations, en ajoutant simplement le correctif dans vos feuilles de style. Jetez un oeil à cet exemple très simple:

HTML:

"html

"Sass:" css $ gris clair: # D4D4D4. Couleur de fond gris-wrapper: $ gris clair + clearfix .logos float: droite + image de fond (url ("[email protected]"), url ("thinkbot.png")) background-position: centre en haut, en haut à gauche background-repeat: répète-y, répète-x hauteur: 220px largeur: 50% // syntaxe SCSS // .grey-wrapper @include clearfix; couleur de fond: $ gris clair; .logos float: right; @include background-image (url ("[email protected]"), url ("thinkbot.png")); position de fond: centre en haut, en haut à gauche; répéter en arrière-plan: répéter-y, répéter-x; hauteur: 220px; largeur: 50%; // "! [fichier] (https://cms-assets.tutsplus.com/uploads%2Fusers%2F851%2Fposts%2F24794%2Fimage-1441633234957.jpg) Dans l'exemple ci-dessus, le conteneur gris se développe pour contenir Toutefois, lorsque clearfix n’est pas utilisé:! [fichier] (https://cms-assets.tutsplus.com/uploads%2Fusers%2F851%2Fposts%2F24794%2Fimage-1441633341703.jpg) Si vous prenez en regardant le code source, on voit clairement comment fonctionne ce * micro clearfix *: Sass: [code source Bourbon] (https://github.com/thoughtbot/bourbon/blob/master/app/assets/stylesheets/addons/_clearfix .scss) "css @mixin clearfix &: after content:" "; affichage: table; clarifier les deux; "Ce mixin utilise le :après pseudo-élément pour placer une chaîne vide à la toute fin du conteneur. Ce faisant, il imite le contenu après le logo et incite le navigateur à développer le conteneur gris pour entourer d'autres éléments à l'intérieur. ## Button Mixin Besoin de boutons de haute qualité prêts à l'emploi? ### Standard Button! [Fichier] (https://cms-assets.tutsplus.com/uploads%2Fusers%2F851%2Fposts%2F24794%2Fimage-1441633769651.png) HTML: "html Super bouton duper" Sass: "css $ light-blue: # 2485F1 .super-duper-button + button ($ light-blue) // syntaxe SCSS // .super-duper-button @include button ($ light-blue); // "c'est tout ! Boutons simples et sémantiquement propres. Ils viennent même avec de superbes effets de survol subtils. Et il existe encore deux options: ### Pill Button! [Fichier] (https://cms-assets.tutsplus.com/uploads%2Fusers%2F851%2Fposts%2F24794%2Fimage-1441633844440.png) HTML: "html Super bouton de pilule duper "css $ rose foncé: # 6B32D1. bouton + duper-duper + (pilule, $ rose-foncé) // syntaxe SCSS //. bouton-de-duper-duper @include (pilule, $ dark- rose); // "### Shiny Button! [Fichier] (https://cms-assets.tutsplus.com/uploads%2Fusers%2F851%2Fposts%2F24794%2Fimage-1441633895872.png) HTML:" html Super duper shiny button "Sass:" css $ accept-vert: # 43C914. Bouton + bouton-duper (brillant, $ accept--vert) // Syntaxe SCSS //. Bouton -super-duper @include (brillant, $ acceptation- vert); // "** Attention! ** Veuillez noter que le texte sur les boutons change automatiquement de couleur en fonction de la * luminosité * de la couleur de base du bouton. Ainsi, le mixin offre un meilleur contraste et une meilleure lisibilité. Génial!! [fichier] (https://cms-assets.tutsplus.com/uploads%2Fusers%2F851%2Fposts%2F24794%2Fimage-1441634000114.png) Sass: "css $ gris-clair: #DEDEDE. bouton # + DEDEDE .super-duper-button + button (brillant, $ gris clair) // syntaxe SCSS // .super-duper-button bouton @include (brillant, $ gris clair); // "## Size Mixin Avez-vous déjà besoin de définir largeur et la taille dans une déclaration? Avec Bourbon, voici tout ce que vous devez faire: Sass: "css .small-article + size (300, 400) // syntaxe SCSS // .small-article @include size (300, 400); //" CSS output: "css .small-article width: 300px; height: 400px;" Vous pouvez fournir des valeurs en pixels ou uniquement des valeurs numériques. Vous pouvez utiliser auto pour ces valeurs aussi. Si vous fournissez une seule taille, Bourbon suppose que vous voulez un carré. Sass: "css .square + size (25px) // syntaxe SCSS // .square @include size (25px); //" ## HiDPI Mixin Si vous souhaitez générer rapidement des requêtes multimédias entièrement préfixées par le vendeur pour la détection * HiDPI * («Retina»), ce mix est très pratique. Commencez par fournir un * rapport de pixels de périphérique * et des déclarations qui changent si la requête de média est déclenchée. Le rapport par défaut est de 1,3. Sass HiDPI-media-query: "css .image largeur: 150px + hidpi (1.5) largeur: 200px // syntaxe SCSS // .image largeur: 150px; + hidpi (1.5) largeur: 200px; //" Sortie CSS: "css .image width: 150px; @media uniquement l’écran et (-webkit-min-device-pixel-ratio: 1.5), uniquement l’écran et (min - moz-device-pixel-ratio: 1.5), uniquement écran et (ratio de -o-périphérique-pixel: 1,5 / 1), uniquement écran et (résolution minimale: 144 dpi), uniquement écran et (résolution minimale: 1.5dppx) width: 200px; " Plutôt cool! Cela affine un peu le code répétitif. ## Retina Image Mixin En fonction de la * densité de pixels * du périphérique affichant vos dessins, vous pouvez fournir des images avec la résolution bitmap appropriée. Ce mélange délicat fournit une * image d'arrière-plan rétine * ou une * image d'arrière-plan non rétinienne *, en fonction du résultat de la requête HiDPI-media interne du mélange vérifiant l'appareil pour sa densité de pixels. Si je ne me trompe pas, en bonus, il ne servira qu'une seule des images pour éviter de télécharger les deux, ce qui est particulièrement avantageux pour les réseaux cellulaires. Si tout ce qui précède vous préoccupe, je vous recommande de commencer par ce fantastique [article] (http://coding.smashingmagazine.com/2012/08/20/towards-retina-web/) dans Smashing Magazine. Sass: "css .logo + retina-image (logo-icon, 50px, 30px) // syntaxe SCSS // .logo @include retina-image (logo-icon, 50px, 30px); //" La sortie CSS aide à expliquer sa fonctionnalité: "css .logo image de fond: url (logo-icon.png); @média uniquement écran et (-webkit-min-device-pixel-ratio: 1.3), uniquement écran et (min- -moz-device-pixel-ratio: 1.3), uniquement l’écran et (-o-min-device-pixel-ratio: 1.3 / 1), uniquement l’écran et (résolution minimale: 125 ppp), uniquement l’écran et (résolution minimale : 1.3dppx) .logo background-image: url (logo-icon_2x.png); background-size: 50px 30px; "Le paramètre par défaut d'un ratio de pixels de 1,3 pour les cibles de périphériques Apple" Retina "(qui ont un 2) ainsi que des appareils avec un taux de pixels aussi bas que 1,3. Ce mixin attend un **. Png ** comme extension standard pour toutes les images. Par défaut, il s'attend également à une extension ** _ 2x.png ** au nom de fichier de votre image rétine. Vous pouvez écraser les deux valeurs par défaut en fournissant un autre nom de fichier retina et une extension standard, comme suit: Sass: "css .logo + retina-image (icône du logo, 50px, 30px, extension: jpg, $ retina-filename: HiDPI- logo-icon, suffixe-retina: _retina) // syntaxe SCSS // .logo @include retina-image (icône-logo, 50px, 30px, extension $: jpg, $ retina-nom_fichier: HiDPI-logo-icon, $ retina-suffix: _retina); // "Sortie CSS:" css .logo image de fond: url (logo-icon.jpg); @ Écran uniquement multimédia et (-webkit-min-device-pixel-ratio : 1.3), uniquement l’écran et (min - moz-device-ratio-pixel: 1.3), uniquement l’écran et (-o-min-device-pixel-ratio: 1,3 / 1), uniquement l’écran et (min-résolution: 125dpi), uniquement l’écran et (résolution minimale: 1,3dppx) .logo image de fond: url (HiDPI-logo-icon_retina.jpg); taille d’arrière-plan: 50px 30px; "## Salut! C'est tout ce que nous allons couvrir en termes de mixins Bourbon. Dans le prochain tutoriel, nous examinerons les fonctions de Bourbon.