Homepage » Coding » Come creare bordi inclinati con i CSS

    Come creare bordi inclinati con i CSS

    In questo post, vedremo come possiamo creare un effetto di bordo ad angolo (in orizzontale) su una pagina web. Fondamentalmente, sembra qualcosa del genere:

    Avere un angolo leggermente inclinato dovrebbe rendere il nostro layout del web meno rigido e noioso. Per fare questo trucco, useremo il pseudo-elementi ::prima e ::dopo e Trasformazione CSS3.

    Usando Pseudo Elements

    Questa tecnica usa gli pseudo-elementi ::prima e ::dopo per angolare i bordi dell'elemento. In questo esempio, regoleremo il bordo inferiore.

     .block height: 400px; larghezza: 100%; posizione: relativa; sfondo: gradiente lineare (a destra, 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); 

    Ricapitoliamo.

    Il trasformare origine specifica le coordinate dell'elemento che vogliamo trasformare. Nell'esempio sopra specificato a sinistra in basso questo metterà le coordinate iniziali sul lato in basso a sinistra del blocco.

    Il trasformare: skewY (3deg); rende il ::dopo blocco inclinazione o angolo a 3 gradi. Poiché abbiamo specificato la coordinata di partenza come in basso a sinistra, l'angolo in basso a destra del blocco aumenta di 3 gradi. Se scambiamo il trasformare origine a in basso a destra e l'angolo in basso a sinistra sarà sollevato di 3 gradi.

    Puoi aggiungere uno sfondo a tinta unita o una sfumatura per vedere il risultato.

    Rendilo più facile con Sass Mixin

    Per semplificare, ho creato un mixin di Sass per aggiungere i bordi angolati, meno i mal di testa dall'affrontare le complessità delle regole di stile. Con il seguente mixin puoi specificare rapidamente il lato - in alto a sinistra, in alto a destra, in basso a sinistra o in basso a destra - per inclinare.

     @mixin angle-edge ($ pos-top: null, $ angle-top: null, $ pos-btm: null, $ angle-btm: null) width: 100%; posizione: relativa; sfondo: gradiente lineare (a destra, 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; transition: facilità tutti .5s; @if $ pos-top & :: before @if $ pos-top == 'topleft' top: 0; transform-origin: right top; transform: skewY ($ angle-top); @if $ pos-top = = 'topright' top: 0; transform-origin: left top; transform: skewY (- $ angle-top); @if $ pos-btm & :: after @if $ pos-btm == 'bottomleft' bottom: 0; transform-origin: right bottom; transform: skewY (- $ angle-btm); @if $ pos-btm == 'bottomright' bottom: 0; transform-origin: left bottom; transform: skewY ($ angle-btm); 

    Ci sono quattro variabili nel mixin. Le prime due variabili, $ Pos-top e $ Angle-top, specificare la coordinata di partenza superiore e il grado. Le ultime due variabili specificano il coordinata e il grado per il parte inferiore lato.

    Se si riempiono tutte e quattro le variabili, è possibile inclinare entrambi i lati - superiore e inferiore - dell'elemento.

    Usa il Sass @includere sintassi per inserire il mixin in un elemento. Puoi vedere esempi di seguito:

    Per aggiungere un bordo inclinato in alto a sinistra lato:

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

    Per aggiungere un bordo inclinato in basso a destra lato:

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

    Per aggiungere un bordo inclinato in alto a sinistra e in basso a destra lato:

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

    Di seguito la demo con i mixin applicati. Cambia la casella di selezione per passare a un altro stile.

    Questo è tutto!