Titre réinventé : Comment appliquer un effet de débordement uniquement à l'ombre de la boîte
P粉391677921
2023-09-03 17:14:49
<p>J'essaie de créer une barre de défilement de plage d'entrée, mais je rencontre un problème. </p>
<p>
<pre class="brush:css;toolbar:false;">body {
justifier-contenu : centre ;
aligner les éléments : centre ;
hauteur min : 100vh ;
arrière-plan : #151515 ;
}
#rangeValue {
position : relative ;
bloc de visualisation;
taille de police : 6em ;
couleur : #999 ;
poids de la police : 400 ;
}
.gamme {
arrière-plan : dégradé linéaire (-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab) !important ;
largeur : 400 px ;
hauteur : 5px ;
-apparence du webkit : aucun ;
arrière-plan : #111 ;
contour : aucun ;
rayon de bordure : 15 px ;
box-shadow : encart 0 0 5px rgba(0, 0, 0, 1);
}
.range::-webkit-slider-thumb {
-apparence du webkit : aucun ;
largeur : 15px ;
hauteur : 15px ;
rayon de bordure : 50 % ;
fond : bleu ;
curseur : pointeur ;
box-shadow : -507px 0 0 500px rouge ;
}</pré>
<pre class="brush:html;toolbar:false;"><div>
<span id="rangeValue">0</span>
<Input class="range" type="range" nom "" value="0" min="0" max="1000"></Input>
</div></pre>
</p>
<p>Le problème est le suivant : je souhaite que cette grande zone rouge reste dans le curseur de saisie lorsqu'elle est dessinée. La seule solution est d'appliquer <code>overflow: Hidden</code> à <code>.range</code> mais je perdrai le bouton point bleu.
Existe-t-il un moyen d'appliquer simplement <code>overflow: Hidden</code> à <code>box-shadow</code> ? Ou des indices sur d'autres moyens de le faire fonctionner ? </p>
<p>Le résultat final devrait être comme ceci =></p>
<p><img src="/uploads/20230822/169264211664e3ab441b49a.png" alt=" résultat final " /></p>
<p>Merci. </p>
Je ne sais pas si cela aide, mais voici la refactorisation que j'ai effectuée. Peut-être pouvez-vous apporter quelques modifications en fonction de votre tâche.
HTML
CSS
JS
Vous pouvez l'ajuster selon vos préférences. J'espère que cela t'aides.