2016-09-02 7 views
-1

Was ist der beste Weg, um eine diagonale Form zu erstellen like this mit reinem CSS vielleicht nur mit: nach und: vor Pseudo-Elemente auf dem Inhalt div? Vielen Dank.Diagonale Formen mit CSS

+1

Bitte kommen Sie mit prop Die Frage, einschließlich Ihres Versuchscodes, in dem Sie ein Problem haben, da SO hier ist, um Ihnen zu helfen, aber nicht, Ihnen Ready-Made-Code zu geben. –

+0

Vielleicht können Sie Webvorlagen mit ähnlichen Layouts durchlaufen. – SachiDangalla

+0

[This] (https://css-tricks.com/snippets/css/css-triangle/) könnte ein guter Anfang sein –

Antwort

1

Eine Möglichkeit besteht darin, einen Hintergrund für einen Container festzulegen und mit einer CSS-Transformation zu drehen.

Hier ist ein einfaches Beispiel, verwenden Sie so viele überlappende Behälter nach Bedarf:

body { 
 
    margin: 0; 
 
    overflow-x: hidden; 
 
    font-family: monospace; 
 
    color: #fff; 
 
} 
 
.container { 
 
    width: 110vw; 
 
    margin-top:10vh; 
 
    margin-left: -10vw; 
 
    padding-left: 10vw; 
 
    background: red; 
 
    box-shadow: 0 0 15px rgba(0, 0, 0, .33); 
 
    transform: rotate(-5deg); 
 
} 
 
.container-inner { 
 
    padding: 10vw; 
 
    max-width: 80vw; 
 
    transform: rotate(5deg); 
 
} 
 
h1 { 
 
    margin-left: 10%; 
 
    padding-top: 50px; 
 
}
<div class="container"> 
 
    <h1>Diagonal Background</h1> 
 
    <div class="container-inner"> 
 
     <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. 
 
     </p> 
 
    </div> 
 
</div>

1

vielleicht ist es:

.content { 
 
    position: relative; 
 
    perspective: 100vw; 
 
    padding: 30px; 
 
} 
 

 
.content::before { 
 
    content: ''; 
 
    position: absolute; 
 
    z-index: -1; 
 
    left: 0; 
 
    top: 0; 
 
    right: 0; 
 
    bottom: 0; 
 
    width: 130%; 
 
    background: tomato; 
 
    transform-origin: 100% 50%; 
 
    transform: translate(-25%) rotateY(-20deg); 
 
    outline: 1px solid transparent; 
 
}
<div class="content"> 
 
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repudiandae, laudantium. 
 
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate voluptatum recusandae quos soluta impedit! Deleniti facere enim, quia ut quisquam. 
 
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deleniti eligendi dignissimos adipisci voluptatem voluptate ex maiores consequuntur, cum ducimus voluptatum, ratione similique asperiores reiciendis, odit quis sed. Reprehenderit doloribus, delectus. 
 
</div>