2017-04-27 2 views
0

Image from githubCss pour: après triangle

Github utilise deux éléments ::after pour montrer la bordure verte autour du triangle.

Comme ceci:

dom

Puis-je obtenir le même résultat avec seulement l'aide d'un sélecteur ::after?
Je me demande si une telle chose est possible.

+0

@dippas Existe-t-il un meilleur duplicata? La question n'est pas bien formulée, et les réponses se réfèrent toutes à des sites externes (jsfiddle etc) et il ne s'agit pas spécifiquement d'un triangle avec une bordure. C'était en train de devenir de meilleure qualité, je pense. – Michael

Répondre

1

Vous pouvez essayer cette

div { 
 
    width:300px; 
 
    height:100px; 
 
    background:#fff; 
 
    border:1px solid green; 
 
    position:relative; 
 
    padding:20px; 
 
} 
 
    
 
div:after { 
 
    content:""; 
 
    position:absolute; 
 
    right:-11px; 
 
    top:30px; 
 
    width:20px; 
 
    height:20px; 
 
    background:#fff; 
 
    border:1px solid green; 
 
    border-left:none; 
 
    border-bottom:none; 
 
    transform:rotate(45deg); 
 
    -webkit-transform:rotate(45deg); 
 
    user-select:none; 
 
    -webkit-user-select: none; 
 
}
<div> 
 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod 
 
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
 
    veniam,quis nostrud exercitation 
 
</div>

+0

J'ai vérifié et c'est 1px trop loin à gauche dans IE11. La version de Github est peut-être plus cohérente et c'est la raison pour laquelle ils l'ont fait de cette façon? – Michael

0

Vous pouvez utiliser :after & :before sélecteur pour que

div { 
 
    width: 300px; 
 
    height: 200px; 
 
    background: #fff; 
 
    border: 1px solid #1db73f; 
 
    position: relative; 
 
    padding: 20px; 
 
    border-radius:5px; 
 
} 
 
div:before { 
 
    content: ""; 
 
    position: absolute; 
 
    right: -20px; 
 
    top: 30px; 
 
    width: 0; 
 
    height: 0; 
 
    border-top: 20px solid transparent; 
 
    border-bottom: 20px solid transparent; 
 
    border-left: 20px solid #fff; 
 
    z-index:1; 
 
} 
 
div:after { 
 
    content: ""; 
 
    position: absolute; 
 
    right: -21px; 
 
    top: 30px; 
 
    width: 0; 
 
    height: 0; 
 
    border-top: 20px solid transparent; 
 
    border-bottom: 20px solid transparent;  
 
    border-left: 20px solid #1db73f; 
 
}
<div> 
 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod 
 
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, 
 
    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo 
 
    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse 
 
    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non 
 
    proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
 
</div>