Comment créer une boîte avec des coins inclinés et arrondis sur un côté via CSS ?
P粉068174996
P粉068174996 2023-08-25 19:46:29
0
1
516
<p>J'ai actuellement besoin de faire quelque chose comme ça. </p> <p>Ma première pensée a été d'utiliser le tracé du clip, mais les coins arrondis sont difficiles à réaliser et il est difficile de maintenir 22,5 degrés lorsque le bouton change de largeur en raison de son contenu. </p> <p>J'ai donc fini par créer chaque bouton sous la forme de deux <em>divs</em>, avec un div incliné de 22,5 degrés et chevauchant le div rectangulaire régulier. Ensuite, j'ai ajouté un rayon de bordure aux deux.</p> <p><br /></p> <pre class="brush:css;toolbar:false;">body { hauteur de ligne : 0 ; taille de police : 16 px ; couleur de fond : noir ; } .groupe-de-boutons-cta { affichage : flexible ; écart : 2rem ; aligner les éléments : centre ; } .bouton-angulaire-wrapper-gauche { affichage : flexible ; isolement : isoler ; position : relative ; hauteur : 40px ; largeur : ajustement du contenu ; } .bouton-angulaire-wrapper-gauche .bouton-angulaire-main { rayon de bordure : 7px 0 0 7px ; hauteur : 100 % ; affichage : grille en ligne ; éléments de lieu : centre ; remplissage en ligne : 8px 16px ; marge droite : 13 px ; transition : couleur d'arrière-plan 50 ms ; } .bouton-angulaire-wrapper-gauche .bouton-angulaire-inclinable { rayon de bordure : 0 7px 7px 0 ; hauteur : 100 % ; largeur : 24 px ; position : absolue ; à droite : 0 ; haut : 0 ; bas : 0 ; indice z : -1 ; transition : couleur d'arrière-plan 50 ms ; } .button-angular-wrapper-left .button-angular-slant.back-slash { transformation : skewX (22,5 degrés ); } .button-angular-wrapper-left .button-angular-slant.forward-slash { transformation : skewX(-22,5deg) ; } .bouton-angulaire-wrapper-gauche.bouton-angulaire-couleur-solide-blanc .bouton-angulaire-main, .button-angular-wrapper-left.button-angular-color-solid-white .button-angular-slant { fond : blanc ; bordure : 3px blanc uni ; Couleur bleue; } .button-angular-wrapper-left.button-angular-color-solid-white .button-angular-main { bordure droite : aucune ; } .button-angular-wrapper-left.button-angular-color-solid-white .button-angular-slant { bordure gauche : aucune ; } .bouton-angulaire-wrapper-droite { affichage : flexible ; isolement : isoler ; position : relative ; hauteur : 40px ; largeur : ajustement du contenu ; } .bouton-angulaire-wrapper-droite .bouton-angulaire-main { rayon de bordure : 0 7px 7px 0 ; hauteur : 100 % ; affichage : grille en ligne ; éléments de lieu : centre ; remplissage en ligne : 8px 16px ; marge gauche : 13 px ; } .bouton-angulaire-wrapper-droite .bouton-angulaire-inclinable { rayon de bordure : 7px 0 0 7px ; hauteur : 100 % ; largeur : 24 px ; position : absolue ; gauche : 0 ; haut : 0 ; bas : 0 ; indice z : -1 ; } .button-angular-wrapper-right .button-angular-slant.back-slash { transformation : skewX (22,5 degrés ); } .button-angular-wrapper-right .button-angular-slant.forward-slash { transformation : skewX(-22,5deg) ; } .bouton-angulaire-wrapper-droit.bouton-angulaire-couleur-contour-blanc .bouton-angulaire-main, .button-angular-wrapper-right.button-angular-color-outline-white .button-angular-slant { bordure : 3px blanc uni ; } .button-angular-wrapper-right.button-angular-color-outline-white .button-angular-main { bordure gauche : aucune ; } .button-angular-wrapper-right.button-angular-color-outline-white .button-angular-main .icon-call { Couleur blanche; } .button-angular-wrapper-right.button-angular-color-outline-white .button-angular-main .cta-text { Couleur blanche; }.button-angular-wrapper-right.button-angular-color-outline-white .button-angular-slant { frontière droite : aucune ; }</pré> <pre class="brush:html;toolbar:false;"><div class="cta-button-group"> <div class="bouton-angulaire-wrapper-bouton gauche-angulaire-couleur-solide-blanc" href=""> <div class="bouton-angulaire-main"> <span class="cta-text"> En savoir plus aujourd'hui </envergure> </div> <div class="bouton-angulaire-oblique oblique inverse"> </div> </div> <div class="bouton-angulaire-wrapper-bouton droit-angulaire-couleur-contour-blanc" href=""> <div class="bouton-angulaire-main"> <span class="cta-text tel-link-no"> 1800-1-5555 </envergure> </div> <div class="bouton-angulaire-oblique oblique inverse"> </div> </div> </div></pre> <p><br /></p> <p>CodePen:https://codepen.io/katylar/pen/yLRjKaO</p> <p>边缘。</p> <p>
P粉068174996
P粉068174996

répondre à tous(1)
P粉928591383

J'ai essayé cette approche avec des pseudo-éléments. Le côté gauche de la forme est un élément ::before, et pour obtenir l'effet de survol, j'ai rendu invisibles certains côtés du bouton et du pseudo-élément et j'ai modifié le rayon de bordure de coins spécifiques.

.button {
  color: white;
  background-color: black;
  text-align: center;
  text-transform: uppercase;
  padding: 5px 10px;
  margin: 11px;
  display: inline-block;
  border-radius: 4px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border: 2px solid black;
  -ms-transform: skewX(-20deg);
  -webkit-transform: skewX(-20deg);
  transform: skewX(-20deg);
}

.button-left::before {
  content: " ";
  display: block;
  position: absolute;
  top: -2px;
  left: -12px;
  z-index: -10;
  background-color: black;
  width: 20px;
  height: 100%;
  -ms-transform: skewX(20deg);
  -webkit-transform: skewX(20deg);
  transform: skewX(20deg);
  border-radius: 4px;
  border: 2px solid black;
}

.button-left:hover {
  background: rgba(0,0,0,0);
  box-sizing: border-box;
  border: 2px solid black;
  border-left: 2px solid rgba(0,0,0,0);
  color: black;
  border-top-left-radius: 0;
}

.button-left:hover::before {
  border-right: 2px solid rgba(0,0,0,0);
  background: rgba(0,0,0,0);
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.button-content {
  -ms-transform: skewX(20deg);
  -webkit-transform: skewX(20deg);
  transform: skewX(20deg);  
  display: inline-block;
}
<div class="button button-left">
  <span class="button-content">Slanted Button</span>
</div>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!