6
votes

div avec des coins du côté incliné et arrondi

Je construis actuellement un site Web qui nécessite des boutons pour avoir une inclinaison sur le côté gauche fort> du bouton. Le site Web est réactif et le bouton nécessite des coins arrondis forts> aussi. J'essaie d'éviter d'utiliser aussi des images de fond.

Quelqu'un pourrait-il me montrer une solution à cela? Ignorer l'icône sur le bouton, je suis capable de le faire. J'ai juste besoin du côté incliné. P>

 div avec des coins de côté inclinés et arrondi p>

échantillon jsfiddle p>

p>

<div>Some Text</div>


5 commentaires

Vous pourriez avoir un coup d'œil à ma réponse ici - Stackoverflow.com/questions/28248723/... . La flèche est créée avec deux parties dont chacune a une inclinaison sur un côté et des coins arrondis. Ceci ( Stackoverflow.com/questions/ 30441122 / ... ) est un autre fil qui couvre la création d'une forme avec un côté incliné, mais il ne couvre pas les coins arrondis.


Dupliqué possible de forme avec un côté incliné (sensible)


Malheureusement, de ma compréhension, aucune de ces solutions ne fonctionnera car vous ne pouvez pas ajouter de frontière et de rayon de frontière aux pseudo-éléments?


@Benh: le premier fil que j'ai lié utilise Border-rayon sur pseudo-éléments et vous pouvez très certainement ajouter une frontière à des éléments pseudo.


@Harry je vais prendre un autre coup d'oeil! merci harry


3 Réponses :


5
votes

Oui, vous pouvez utiliser une superposition blanche à l'aide de CSS-pseudo élément strong> ou comme ceci

​​ p>

<button class="slantButton">Call Me Back</button>


1 commentaires

@ ben-h comme vous le souhaitez que j'ai fait un bouton à l'aide de CSS a un look



2
votes

Ceci est également possible à l'aide de CSS Border-rayon 'en définissant plusieurs valeurs.

Ceci a un peu plus de courbure que votre exemple d'image, mais il est beaucoup plus propre et ne nécessite pas d'éléments supplémentaires ni de pseudo-éléments. p>

p>

<div>Some Text</div>


0 commentaires

7
votes

Note: strong> J'ajoute une réponse séparée parce que les réponses que j'ai liées dans des commentaires semblent donner une solution, celle-ci est un peu plus complexe en raison de la présence de la frontière. Rayon frontalier. P>

La forme peut être créée en utilisant les parties suivantes: p>

  • Un élément de conteneur principal qui est positionné relativement. li>
  • deux pseudo-éléments qui sont environ la moitié de la largeur de l'élément parent. Un élément est asymétrique pour produire le côté gauche raforé, tandis que l'autre n'est pas biaisé. Li>
  • Le pseudo-élément asymétrique est positionné à gauche tandis que l'élément normal est positionné à droite de l'élément de conteneur. LI>
  • Le pseudo-élément asymétrique n'a que des bordures supérieure, gauche et inférieure. La bordure droite est omise car elle viendrait au milieu de la forme. Pour le pseudo-élément qui n'est pas asymétrique, la bordure gauche est évitée pour la même raison. Li>
  • la bordure gauche du pseudo-élément asymétrique est un peu plus plus épaisse que les autres frontières, car Skew rend la frontière plus mince que ce n'est en réalité. Li> ul>

    J'ai également ajouté un effet sur l'effet code> sur l'extrait pour démontrer la nature réactive de la forme. P>

    p>

    <div class='outer'>
      Call me back
    </div>


3 commentaires

Cela a très bien fonctionné! Merci @harry! J'ai fini par utiliser des chemins SVG car nous avons tous les éléments visuels, mais je vais utiliser cette méthode pour certains boutons de variable. :)


@Benh: Les chemins SVG sont notes, à l'exception de deux choses (1) courbes à chaque coin doivent être codées à travers des commandes au lieu de simplement définir une propriété dans CSS et (2) les coups de frontière dans SVG ont tendance à devenir épaisses (c'est-à-dire , l'accident vasculaire cérébral a également échoué). Lorsque une seule hauteur / largeur change, il ferait des frontières sur deux faces plus épaisses que les deux autres. L'attribut SVG qui évite cela ne fonctionne pas dans IE. Je recommanderais SVG pour les formes antérieurement, mais faites juste attention à ces deux :)


J'ai remarqué que dans IE, les boutons ont causé quelques problèmes à l'aide de SVG afin que je vais essayer votre méthode pour tous. C'est une honte car les icônes ont l'air tellement plus nette lorsque vous utilisez les boutons SVG!