É possível, de alguma forma, ter apenas a sombra da caixa de inserção em um lado de um div? Observe que estou falando de uma sombra de caixa inserida aqui, não da sombra de caixa externa normal.
Por exemplo, no JSFiddle a seguir, você verá que a sombra inserida aparece em todos os 4 lados, em vários graus.
Como faço para que apareça APENAS no topo? Ou no máximo SÓ na parte superior e inferior?
JSFiddle: http://jsfiddle.net/ahmadka/KFrun/
.box {
-webkit-box-shadow: inset 0px 5px 10px 1px #000000;
box-shadow: inset 0px 5px 10px 1px #000000;
}
.text {
padding: 20px;
}
<div class="box">
<div class="text">
Lorem ipsum ....
</div>
</div>
Respostas:
Isso é o que você está procurando. Tem exemplos para cada lado que você deseja com uma sombra.
Veja o snippet para mais exemplos:
Exibir trecho de código
fonte
O truque é um segundo
.box-inner
dentro, que é maior em largura do que o original.box
, e obox-shadow
é aplicado a isso.Em seguida, adicionou mais preenchimento ao
.text
para compensar a largura adicionada.É assim que a lógica se parece:
E é assim que isso é feito em CSS:
Use a largura máxima para
.inner-box
não aumentar.box
eoverflow
certifique-se de que o restante seja cortado:110% é mais largo que o pai, que é 100% no contexto de uma criança (deve ser o mesmo quando o pai
.box
tem uma largura fixa, por exemplo). As margens negativas compensam a largura e fazem com que o elemento seja centralizado (em vez de apenas ocultar a parte direita):E adicione um pouco de preenchimento no eixo X para compensar o mais amplo
.inner-box
:Aqui está um Fiddle funcionando.
Se você inspecionar o Fiddle, verá:
fonte
div
para esconder a sombra ... jsfiddle.net/KFrun/19Um pouco tarde, mas uma resposta duplicada que não requer alteração do preenchimento ou adição de divs extras pode ser encontrada aqui: Tenho um problema apenas com a caixa de sombra inferior Inset . Diz: "Use um valor negativo para o quarto comprimento que define a distância de propagação. Isso geralmente é esquecido, mas é compatível com todos os principais navegadores"
Do violino do respondente :
fonte
Isso chega um pouco perto.
fonte
experimente, talvez útil ...
acima
CSS
porque você tem uma sombra de caixa no fundo.você pode tinto mais aqui
fonte
Isso pode não ser exatamente o que você está procurando, mas você pode criar um efeito muito semelhante usando
rgba
em combinação comlinear-gradient
:Isso cria um gradiente linear de preto com 50% de opacidade (
rgba(0,0,0,.5)
) a transparente (rgba(0,0,0,0)
) que começa a ser totalmente transparente 30% do topo. Você pode brincar com esses valores para criar o efeito desejado. Você pode colocá-lo em um lado diferente adicionando um valor deg (linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 30%)
) ou trocando as cores. Se você quiser sombras realmente complexas, como ângulos diferentes em lados diferentes, pode até começar a fazer camadaslinear-gradient
.Aqui está um snippet para vê-lo em ação:
fonte
Sombra da caixa de inserção apenas na parte superior?
fonte