Je viens de lancer ce site Web ( http://dovidoved.org/ ) et le client veut un de ces triangles/flèches en haut de chaque menu déroulant. Le problème est que le menu est entouré d'une bordure et que la flèche doit correspondre à l'arrière-plan et à la bordure. Je ne sais pas comment faire ça. Aucune suggestion? Dois-je utiliser une image? Voici mon CSS:
/* creates triangle */
.main-navigation ul ul:before {
border-bottom: 10px solid #fae0bb;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
content: "";
height: 0;
position: absolute;
right: 0;
top: -10px;
width: 0;
}
.main-navigation ul ul {
background: #fae0bb;
border: 8px solid #fffefe;
box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
float: left;
position: absolute;
margin: 0;
top: 2.8em;
left: -999em;
width: 200px;
z-index: 99999;
}
Vous pouvez le faire en utilisant :before
et :after
pseudo elements, pour créer deux triangles:
.main-navigation ul ul:before {
content:"";
position: absolute;
right: 11px;
top: -10px;
width: 0;
height: 0;
border-style: solid;
border-width: 0 10px 10px 10px;
border-color: transparent transparent #fae0bb transparent;
z-index:9999;
}
.main-navigation ul ul:after {
content:"";
position: absolute;
right: 4px;
top: -22px;
width: 0;
height: 0;
border-style: solid;
border-width: 0 17px 17px 17px;
border-color: transparent transparent #ffffff transparent;
z-index:9998;
}
Il vous suffit de définir la valeur right
correcte pour les deux afin de les adapter à vos besoins.
.main-navigation a:after {
content: "";
width: 0;
height: 0;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-top: 8px solid #f00;
position: absolute;
top: -2px;
right: -20px;
}
Ajustez le rembourrage de li
pour ajuster les triangles.