2017-09-29 3 views
1

J'ai un carrousel (slick) qui affiche diverses diapositives que j'ai faussées de -10% pour créer un effet diagonal. Cependant, le contenu à l'intérieur est également faussé. Y a-t-il une solution pour dés-incliner juste le contenu et l'image de fond mais conserver l'effet diagonal sur le conteneur de diapositives?Faire des images d'arrière-plan à l'intérieur du conteneur incliné apparaissent non-biaisées

jsFiddle ici - https://jsfiddle.net/czcjt3no/1/

<div class="section"> 
    <div class="grid poly--holder"> 
    <div class="poly-item"> 
     <div class="poly-item__content" style="background-image: url(https://unsplash.it/1000/1000/?random);">sdsfsdsfsdsdfjsdkjfskds</div> 
    </div> 
    <div class="poly-item"> 
     <div class="poly-item__content" style="background-image: url(https://unsplash.it/1100/1000/?random);">sdsfsdsfsdsdfjsdkjfskds</div> 
    </div> 
    <div class="poly-item"> 
     <div class="poly-item__content" style="background-image: url(https://unsplash.it/1200/1000/?random);">sdsfsdsfsdsdfjsdkjfskds</div> 
    </div> 
    <div class="poly-item"> 
     <div class="poly-item__content" style="background-image: url(https://unsplash.it/1300/1000/?random);">sdsfsdsfsdsdfjsdkjfskds</div> 
    </div> 
    <div class="poly-item"> 
     <div class="poly-item__content" style="background-image: url(https://unsplash.it/1400/1000/?random);">sdsfsdsfsdsdfjsdkjfskds</div> 
    </div> 
    </div> 
</div> 

.poly--holder { 
overflow: hidden; 

.poly-item { 
    box-sizing: border-box; 
    margin: 0; 
    transform: skewX(-10deg); 
    height: 400px; 

    .poly-item__content { 
    transform: skewX(10deg); 
    background-size: cover; 
    background-position: 50%; 
    height: 100%; 
    } 
} 

}

+1

Cocher cette référence https://www.sitepoint.com/css3-transform-background-image/ – Znaneswar

+0

@znaneswar Merci pour cela. Ce n'est pas la plus belle solution mais c'est un début - https://jsfiddle.net/czcjt3no/4/ –

Répondre

0

Si vous inclinez le conteneur, vous devez inverser désalignement le contenu. Skew est une transformation vers l'ensemble du noeud DOM, ce qui signifie que tous ses enfants seront transformés à la fois: vous ne pouvez pas arrêter la propagation.

.parent{ 
    transform: skewX(-10deg); 
} 

.child { 
    transform: skewX(10deg); 
} 

Here is your updated fiddle

+0

Oui, j'ai essayé cela mais en inclinant l'enfant les fait apparaître directement où je veux garder la diapositive diagonale disposition. –

+0

Oui, jetez un coup d'oeil à mon violon mis à jour: vous devez ajouter un conteneur enfant dans le div 'poly-item__content'. Cela empêchera votre seconde règle 'skew' de remplacer la première. – Creaforge

+0

Merci d'avoir aidé - Ouais un-biaiser le contenu est la partie facile, mais l'image de fond est le problème car il est encore faussé. –