2015-07-28 1 views
6

Je dois créer cette forme dans l'image ci-dessous qui contient du texte. enter image description hereformes css avec du texte à l'intérieur

Voilà comment j'essayé:

HTML

 <div class="header-bottom"> 

      <div class="blue-rectangle"> 
       <p>sadasdasdasd</p> 
      </div> 

      <div class="blue-rectangle"> 
       <p>dsasdasdasda</p> 
      </div> 

     </div> 

CSS

.header-bottom{ 
position: absolute; 
right:13%; 
bottom:5%; 
} 

.blue-rectangle { 
background-color: rgba(3,78,136,0.7); 
padding: 10px 20px 10px 200px; 
margin-bottom: 20px; 
} 

.blue-rectangle p{ 
color:white; 
text-transform: uppercase; 
font-size:18px; 
} 

i essayé d'ajouter transform: biaiser mais il biaise à la fois à droite, à gauche et le texte lui-même.

+0

double possible de [coins coupés à l'aide de CSS] (http: // stackoverflow. com/questions/7324722/cut-coins-using-css) –

Répondre

8

.shape{ 
 
    text-align:center; 
 
    background-color:rgba(3,78,136,0.7); 
 
    width:200px; 
 
    height:60px; 
 
    line-height:60px; 
 
    color:white; 
 
    margin:20px auto; 
 
    position:relative; 
 
} 
 
.shape:before{ 
 
    content:""; 
 
    width:0px; 
 
    height:0px; 
 
    border-top:60px solid rgba(3,78,136,0.7); 
 
    border-left:60px solid transparent; 
 
    position:absolute; 
 
    right:100%; 
 
    top:0px; 
 
}
<div class="shape"> 
 
    something something 
 
</div> 
 
<div class="shape"> 
 
    something else 
 
</div>

+0

Ils ne sont même pas la même couleur ... – musefan

+2

merci pour l'avis –

3

S'il vous plaît essayer le code suivant

.header-bottom { 
 
    position: absolute; 
 
    right: 13%; 
 
    bottom: 5%; 
 
} 
 
.blue-rectangle { 
 
    height: 60px; 
 
    background-color: rgba(3, 78, 136, 0.7); 
 
    padding: 10px 20px 10px 200px; 
 
    margin-bottom: 20px; 
 
    position: relative; 
 
} 
 
.blue-rectangle p { 
 
    color: white; 
 
    text-transform: uppercase; 
 
    font-size: 18px; 
 
    position: relative; 
 
} 
 
.blue-rectangle:before { 
 
    content: ''; 
 
    width: 0; 
 
    height: 0; 
 
    border-top: 80px solid rgba(3, 78, 136, 0.7); 
 
    border-left: 80px solid transparent; 
 
    position: absolute; 
 
    top: 0; 
 
    right: 100%; 
 
}
<div class="header-bottom"> 
 

 
    <div class="blue-rectangle"> 
 
    <p>sadasdasdasd</p> 
 
    </div> 
 

 
    <div class="blue-rectangle"> 
 
    <p>dsasdasdasda</p> 
 
    </div> 
 

 
</div>

5

J'aime utiliser une classe :before pseudo pour cela:

.blue-rectangle { 
 
    color:white; 
 
    text-transform: uppercase; 
 
    font-size:18px; 
 
    padding: 10px 20px 10px 200px; 
 
    background-color: rgba(3,78,136,0.7); 
 
    width: 200px; 
 
    position: relative; 
 
    margin-left: 50px; 
 
} 
 
.blue-rectangle:before { 
 
    content: ""; 
 
    position: absolute; 
 
    border: 21px solid transparent; 
 
    border-top-color: rgba(3,78,136,0.7); 
 
    border-right-color: rgba(3,78,136,0.7); 
 
    right: 100%; 
 
    top: 0; 
 
    width: 0; 
 
    height: 0 
 
}
<p class="blue-rectangle">sadasdasdasd</p>

+0

(moins 1) parce que OP a demandé des lettres minuscules – musefan

+3

J'ai copié son code CSS ... qui a la majuscule. Il n'y a rien dans sa question qui demande des minuscules ..... – LinkinTED

0

Dans votre cas, vous ne pouvez pas utiliser l'inclinaison. Au lieu de cela, vous devez ajouter un triangle pivoté sur la gauche.

Essayez ajouter:

.blue-rectangle:before { 
    content: ""; 
    border-left: 78px solid transparent; 
    border-top: 78px solid rgba(3,78,136, 0.7); 
    position: absolute; 
    top: 0; 
    left: -78px; 
    opacity: 0.7; 
} 

Vous pouvez le faire le reste de la mise au point vous-même.

0

pour infos:

taille gradient et arrière-plan arrière-plan peut être utilisé aussi :)

.shape{ 
 
    text-align:center; 
 
    background: 
 
    linear-gradient(65deg , transparent 50%,rgba(3,78,136,0.7) 50%) left no-repeat, 
 
    linear-gradient(0deg , rgba(3,78,136,0.7),rgba(3,78,136,0.7)) 30px 0 no-repeat; 
 
    
 
    background-size:30px 100%, 100% 100%; 
 
    width:200px; 
 
    height:60px; 
 
    line-height:60px; 
 
    padding:0 20px; 
 
    color:white; 
 
    margin:20px auto; 
 
    position:relative; 
 
} 
 
body { 
 
    background:url(http://lorempixel.com/640/480); 
 
    background-size:cover; 
 
    }
<div class="shape"> 
 
    sometext 
 
</div> 
 
<div class="shape"> 
 
    something else 
 
</div><div class="shape"> 
 
    some more text 
 
</div> 
 
<div class="shape"> 
 
    and so on n on 
 
</div>