Maison > Article > interface Web > Créer une ombre longue en utilisant CSS 3
Dans le design plat le plus populaire du moment, les ombres longues sont une compétence de conception éprouvée. Aujourd'hui, je vais vous apprendre à créer une ombre longue et à utiliser PS et CSS3 pour obtenir l'effet d'ombre longue.
Par exemple, le suivant est un design à projection longue très classique :
Les photographes choisissent généralement de longues ombres pour apporter des effets dramatiques aux images. Dans la nature, de longues ombres se produisent au crépuscule, lorsque le soleil est proche de l'horizon, et les objets sur le sol horizontal auront l'effet de longues ombres lorsque le soleil est proche de l'horizon. vu d'en haut. Dans la conception d'interfaces, nous utilisons généralement l'effet de simulation d'un angle de 45 degrés pour simuler la lumière du soleil venant du coin nord-ouest, formant ainsi un contraste frappant avec le thème du design. Il existe de nombreuses façons de créer des ombres longues à l'aide de photoshop. Vous pouvez découvrir les quatre méthodes couramment utilisées pour créer des effets d'ombres longues. La quatrième méthode que j'aime généralement le plus consiste à y parvenir en copiant et en déplaçant des calques. L'effet, comme cette photo que j'ai téléchargée sur behance,
Le principe général est que vous copiez le calque actuel, sélectionnez le style du calque, remplissez-le de noir , puis déplacez-le sous le calque d'origine. Ensuite, vous pouvez utiliser la souris ou le filtre pour effectuer un panoramique, monter d'une unité et descendre d'une unité.
Ensuite, nous dupliquons ce calque et le traduisons à nouveau. Fusionnez ensuite les deux calques d'ombre
Ensuite, nous répétons l'action, c'est-à-dire copier ce calque une fois, le déplacer vers le bas et le déplacer de 2 unités vers la droite. Effectuez à nouveau la fusion. Copiez, déplacez un nombre pair d'unités, fusionnez et répétez.
Bien sûr, ce sera plus pratique si vous utilisez Filtre->Autres->Déplacement
C'est à peu près l'effet, et puis réglez-le enfin. La transparence est bonne.
Ce qui précède concerne le design. Comment le front-end obtient-il un tel effet grâce au code CSS ? La première chose à laquelle tout le monde pense est text-shadow
, qui est déjà pris en charge par CSS3 flatcolors est un site Web qui propose de nombreux jeux de couleurs que vous pouvez utiliser à tout moment. Définissons la couleur d'arrière-plan du corps. Je préfère le bleu. Ensuite, nous allons sur Google Font pour sélectionner la police que nous aimons. Peu importe si vous pensez que la police par défaut est acceptable. Choisissez simplement Passion One
puis introduisez-la dans le code CSS.
@import url(‘https://fonts.googleapis.com/css?family=Passion+One‘);
À ce stade, tapons quelques lettres dans notre corps, comme ombre longue
<body> <h1>Long Shadow</h1> </body>
Ensuite, nous définissons quelques styles de base de h1 ;
h1{ text-align:center; font-size:6rem; padding-top:2rem; }
L'étape suivante consiste à écrire le code pour text-shadow, ce qui est la chose la plus importante à réaliser.
La valeur de text-shadow peut avoir le déplacement des axes x et y, plus le. rayon de flou et couleur.
/* offset-x | offset-y | blur-radius | color */ text-shadow: 1px 1px 2px black;
Il suffit d'effectuer un panoramique à plusieurs reprises, puis de rendre la couleur proche de la couleur d'arrière-plan.
C'est le code comme celui-ci
text-shadow: 1px 1px rgba(18, 67, 100, 0.5) , 2px 2px rgba(20, 72, 107, 0.51) , 3px 3px rgba(22, 76, 113, 0.52) , 4px 4px rgba(23, 81, 119, 0.53) , 5px 5px rgba(25, 85, 125, 0.54) ...
Mais il est définitivement irréaliste de l'écrire comme ça. Vous devez calculer à plusieurs reprises la taille du pas et la croissance. Heureusement, nous disposons de frameworks de prétraitement tels que scss et moins. Nous pouvons effectuer la conversion et la croissance des couleurs très facilement.
Référence d'implémentation du code scss
@function longshadow($color_a,$color_b,$stepnum, $opacity: 1){ $gradient_steps: null; <a href="http://www.jobbole.com/members/lowkey2046">@for</a> $i from 1 through $stepnum { $weight: ( ( $i - 1 ) / $stepnum ) * 100; $colour_mix: mix($color_b, rgba($color_a, $opacity), $weight); $seperator: null; @if($i != $stepnum){ $seperator: #{','}; } $gradient_steps: append( #{$gradient_steps}, #{$i}px #{$i}px $colour_mix $seperator ); } @return $gradient_steps; }
L'effet d'exécution de la fonction est similaire à celui lorsque j'insère une couleur a et une couleur b, où la couleur a est la couleur où commence l'ombre, et couleur b C'est la couleur de l'arrière-plan, la taille du pas est similaire à la longueur que vous souhaitez que votre ombre dure, et la dernière est la transparence. Ensuite c'est le calcul. On le déplace d'une unité à chaque fois, puis on diminue la couleur par pourcentage, et enfin on organise le style.
Pour le moment, nous n'avons besoin d'utiliser cette fonction que dans le style h1
@include text-shadow(longshadow(darken($bg,30%),$bg,50, 0.5));
où $bg : est la couleur de notre arrière-plan : #3498db.
Lecture connexe :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!