2017-02-12 1 views
0

J'ai le même problème que dans this question, mais j'ai besoin de overflow-x mis à scroll sinon le document entier sera plus large que l'écran. En théorie, si vous réglez overflow-y sur visible, doit conserver l'ombre de la boîte visible, mais elle l'interrompt toujours. Cela peut être vu avec le code ci-dessous.Boîte-ombre toujours couper avec débordement-y mis à visible

*::-webkit-scrollbar { 
 
    display: none; 
 
} 
 
body { 
 
    margin: 0; 
 
    background: #ddd; 
 
    height: 100%; 
 
    width: 100%; 
 
} 
 
.scroll { 
 
    width: 100%; 
 
    height: 60px; 
 
    overflow-x: scroll; 
 
    overflow-y: visible; 
 
    white-space: nowrap; 
 
} 
 
.box { 
 
    display: inline-block; 
 
    width: 50px; 
 
    height: 50px; 
 
    margin: 5px; 
 
    background: #fff; 
 
    box-shadow: 0px 0px 50px 10px rgba(0, 0, 0, 1); 
 
}
<div id="container"> 
 
    <div class="scroll"> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    </div> 
 
</div>

Je voudrais que l'ombre d'être entièrement visible à l'extérieur de la div parent, est-ce possible?

+1

Non. Vous définissez 'overflow' à tout sauf' visible', tout reste dans, y compris les ombres (dans la nuit) ... –

Répondre

0

L'ombre de la boîte est coupée car il doit y avoir une barre de défilement que vous masquez.

enter image description here

Simple solutoin

Définir un rembourrage inférieur à .scroll contenant.

+0

Je pensais à ça, mais en raison de la mise en place de ce site, il serait difficile de le faire , J'espérais d'une autre façon. – Jaketr00

+0

Mais pourquoi utilisez-vous ** overflow-x: scroll ** puisque vous le cachez? – user2372395

+0

Dans le projet actuel, il y aura plus de boîtes et doit être défilable. Si je le laisse à 'visible', alors quand l'utilisateur défilera, tout le document défilera et tout ce qui sera en dessous sera déplacé. Si je le laisse à 'caché ', les autres cases de cette rangée seront également cachées. – Jaketr00

0

Vous pouvez ajouter un remplissage au #container pour qu'il affiche toujours l'ombre, MAIS les ombres horizontales seront coupées.

*::-webkit-scrollbar { 
 
    display: none; 
 
} 
 
body { 
 
    margin: 0; 
 
    background: #ddd; 
 
    height: 100%; 
 
    width: 100%; 
 
} 
 
#container { 
 
    max-width: 300px; 
 
    overflow: scroll; 
 
    padding: 100px 0; 
 
} 
 
.scroll { 
 
    width: 100%; 
 
    height: 60px; 
 
    white-space: nowrap; 
 
} 
 
.box { 
 
    display: inline-block; 
 
    width: 50px; 
 
    height: 50px; 
 
    margin: 5px; 
 
    background: #fff; 
 
    box-shadow: 0px 0px 50px 10px rgba(0, 0, 0, .5); 
 
}
<div id="container"> 
 
    <div class="scroll"> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    </div> 
 
</div>