Pagina principala » Codificare » Cum se creează margini înclinate cu CSS

    Cum se creează margini înclinate cu CSS

    În acest post, vom examina modul în care putem crea un efect de margine înclinat (orizontal) pe o pagină web. Practic, arata cam asa:

    Având o margine ușor înclinată ar trebui să ne facă aspectul web mai puțin rigid și plicticos. Pentru a face acest truc, vom folosi pseudo-elementele ::inainte de și ::după și Transformarea CSS3.

    Utilizarea elementelor Pseudo

    Această tehnică folosește pseudoelementele ::inainte de și ::după pentru a regla marginile elementului. În acest exemplu, vom regla marginea inferioară.

     .bloc height: 400px; lățime: 100%; poziția: relativă; fundal: gradient liniar (la dreapta, rgba (241,231,103,1) 0%, rgba (254,182,69,1) 100%);  .block :: după conținut: "; lățimea: 100%; înălțimea: 100%; poziția: absolută; fundal: inherit; z-index: -1; (3deg); 

    Să recapitulăm.

    transformare origine specifică coordonatele elementului pe care dorim să îl transformăm. În exemplul de mai sus am specificat stânga jos care va pune coordonatele de pornire pe partea stângă a blocului.

    transform: skewY (3deg); face ::după bloc de oblic sau unghi la 3 grade. Deoarece am specificat coordonatele de pornire ca în partea de jos din stânga, dreapta-jos a blocului ridică 3 grade. Dacă vom schimba transformare origine la dreapta jos iar colțul din stânga jos va fi ridicat cu 3 grade în schimb.

    Puteți adăuga un fundal sau un gradient de culoare solidă pentru a vedea rezultatul.

    Faceți-o mai ușoară cu Sass Mixin

    Pentru a face acest lucru mai ușor, am creat un amestec Sass pentru a adăuga marginile înclinate, minus durerile de cap de la tratarea complexității regulilor de stil. Cu următorul mixin puteți specifica rapid partea laterală - sus-dreapta, sus-dreapta, partea de jos stânga sau dreapta-jos - pentru a înclina.

     @mixin unghi-margine ($ pos-top: null, $ unghi-top: null, $ pos-btm: null, $ angle-btm: null) width: 100%; poziția: relativă; fundal: gradient liniar (la dreapta, rgba (241,231,103,1) 0%, rgba (254,182,69,1) 100%); & :: înainte și după :: după conținut: "; lățime: 100%; înălțime: 100%; poziția: absolută; fundal: inherit; z-index: -1; pos-top & :: inainte de @if $ pos-top == 'topleft' top: 0; transformare-origine: dreapta sus; transformare: skewY ($ angle-top) = "topright" top: 0; transformare-origine: stânga sus; transformare: skewY (- unghiul de sus); @if $ pos-btm & :: după @if $ pos-btm == 'bottomleft' bottom: 0; transform-origin: bottom right; transform: skewY (- angle-btm); @if $ pos-btm == 'bottomright' bottom: 0; transformă: skewY ($ angle-btm); 

    Există patru variabile în mixin. Primele două variabile, $ Pos-top și $ Unghi-top, specifică top coordonate de pornire si grad. Ultimele două variabile specifică coordona si grad pentru fund latură.

    Dacă completați toate cele patru variabile, puteți înclina ambele părți - partea de sus și de jos - a elementului.

    Folosiți Sass @include sintaxă pentru a introduce mixinul într-un element. Puteți vedea exemplele de mai jos:

    Pentru a adăuga marginea înclinată stânga sus latură:

     .bloc @ include marginea unghiulară (topleft, 3deg);  

    Pentru a adăuga marginea înclinată dreapta-jos latură:

     .bloc @ include unghi-margine (bottomright, 3deg);  

    Pentru a adăuga marginea înclinată stânga sus și dreapta-jos latură:

     .bloc @ include marginea unghiulară (topleft, 3deg, bottomright, 3deg);  

    Mai jos este demo-ul cu amestecurile aplicate. Modificați caseta de selectare pentru a comuta la un alt stil.

    Asta e!