Główna » Kodowanie » Jak tworzyć krzywe z CSS

    Jak tworzyć krzywe z CSS

    W tym poście przyjrzymy się, jak możemy utworzyć kątowy efekt krawędziowy (poziomo) na stronie internetowej. Zasadniczo wygląda to mniej więcej tak:

    Lekko nachylona krawędź powinna wyglądać mniej sztywnie i nudno. Aby to zrobić, użyjemy pseudoelementy ::przed i ::po i CSS3 Przekształć.

    Korzystanie z Pseudo Elements

    Ta technika wykorzystuje pseudoelementy ::przed i ::po kątować krawędzie elementu. W tym przykładzie dostosujemy dolną krawędź.

     .blok wysokość: 400px; szerokość: 100%; pozycja: względna; tło: gradient liniowy (do prawej, rgba (241 231,103,1) 0%, rgba (254,182,69,1) 100%);  .block :: after content: "; width: 100%; height: 100%; position: absolute; background: inherit; z-index: -1; bottom: 0; transform-origin: left bottom; transform: skewY (3deg); 

    Podsumujmy.

    The początek transformacji określa współrzędne elementu, który chcemy przekształcić. W powyższym przykładzie określiliśmy lewy przycisk który umieści współrzędne początkowe w lewym dolnym rogu bloku.

    The transform: skewY (3deg); sprawia, że ::po blokuj pochylenie lub kąt przy 3 stopniach. Ponieważ określiliśmy współrzędną początkową jako lewy dolny róg, prawy dolny róg bloku podnosi się o 3 stopnie. Jeśli wymienimy początek transformacji do prawy dół a lewy dolny róg zostanie podniesiony o 3 stopnie.

    Możesz dodać jednolity kolor tła lub gradient, aby zobaczyć wynik.

    Ułatw to dzięki Sass Mixin

    Aby to ułatwić, stworzyłem miks Sassa, aby dodać kątowe krawędzie, pomijając bóle głowy związane ze złożonością reguł stylu. Z poniższym mixinem możesz szybko określić stronę - górną lewą, górną prawą, dolną lewą lub dolną prawą - aby pochylić.

     @mixin kątowa krawędź ($ pos-top: null, $ angle-top: null, $ pos-btm: null, $ angle-btm: null) szerokość: 100%; pozycja: względna; tło: gradient liniowy (do prawej, rgba (241 231,103,1) 0%, rgba (254,182,69,1) 100%); & :: before, & :: after content: "; width: 100%; height: 100%; position: absolute; background: inherit; z-index: -1; przejście: łagodzenie wszystkich .5s; @if $ pos-top & :: before @if $ pos-top == 'topleft' top: 0; początek transformacji: prawy top; transform: skewY ($ angle-top); @if $ pos-top = = 'topright' top: 0; początek transformacji: lewy top; transform: skewY (- $ angle-top); @if $ pos-btm & :: after @if $ pos-btm == 'bottomleft' dół: 0; początek transformacji: prawy dół; transform: skewY (- $ angle-btm); @if $ pos-btm == 'bottomright' dół: 0; początek transformacji: lewy dół; transform: skewY ($ angle-btm); 

    W miksie są cztery zmienne. Pierwsze dwie zmienne, $ pos-top i $ angle-top, określić górna współrzędna początkowa i stopień. Dwie ostatnie zmienne określają koordynować i stopień dla Dolny bok.

    Jeśli wypełnisz wszystkie cztery zmienne, możesz ustawić obie strony - górną i dolną - elementu.

    Użyj Sassa @zawierać składnia do wstawienia miksu do elementu. Możesz zobaczyć przykłady poniżej:

    Aby dodać skośną krawędź lewy górny bok:

     .block @include angle-edge (topleft, 3deg);  

    Aby dodać skośną krawędź prawy dolny bok:

     .block @include angle-edge (bottomright, 3deg);  

    Aby dodać skośną krawędź lewy górny i prawy dolny bok:

     .block @include angle-edge (topleft, 3deg, bottomright, 3deg);  

    Poniżej znajduje się demo z zastosowanymi miksami. Zmień pole wyboru, aby przełączyć na inny styl.

    To jest to!