Preciso criar uma sombra de caixa em algum block
elemento, mas apenas (por exemplo) no lado direito. O modo como faço é envolver o elemento interno box-shadow
em um externo padding-right
e, overflow:hidden;
assim, os três outros lados da sombra não são visíveis.
Existe alguma maneira melhor de conseguir isso? Gosta box-shadow-right
?
Edição : Minhas intenções são criar apenas a parte vertical da sombra. Exatamente o mesmo que o que repeat-y
a regra background:url(shadow.png) 100% 0% repeat-y
faria.
css
shadow
box-shadow
tillda
fonte
fonte
Respostas:
Sim, você pode usar a propriedade de propagação de sombra da regra box-shadow:
A quarta propriedade lá
-2px
é a propagação da sombra, você pode usá-la para alterar a propagação da sombra, fazendo parecer que a sombra está apenas de um lado.Isso também usa as regras de posicionamento da sombra e a
10px
envia para a direita (deslocamento horizontal) e a0px
mantém sob o elemento (deslocamento vertical).5px
é o raio de desfoque :)Exemplo para você aqui .
fonte
box-shadow
regras eram padronizadas.Minha solução feita por você, fácil de editar:
HTML:
css:
Demonstração:
http://jsfiddle.net/jDyQt/103
fonte
Para obter o efeito cortado em até dois lados, você pode usar pseudo-elementos com gradientes de fundo.
adicionará um bom efeito de sombra à esquerda e à direita dos elementos que normalmente compõem um documento.
fonte
Basta usar o pseudo elemento :: after ou :: before para adicionar a sombra. Faça 1px e posicione no lado que quiser. Abaixo está um exemplo do topo.
fonte
Aqui está o meu exemplo:
fonte
Aqui está um pequeno truque que eu fiz.
1. Crie um
<div class="one_side_shadow"></div>
logo abaixo do elemento em que eu quero criar a sombra da caixa de um lado (nesse caso, eu quero uma sombra de inserção unilateral paraid="element"
a parte inferior)2. Então criei um regular
box-shadow
usando um deslocamento vertical negativo para empurrar a sombra para cima para um lado.fonte
Esta poderia ser uma maneira simples
Atribua isso a qualquer div
fonte
Aqui está um código de código para demonstrar para cada lado ou um trecho de trabalho:
fonte
Este site me ajudou: https://gist.github.com/ocean90/1268328 (Observe que nesse site a esquerda e a direita são invertidas na data desta postagem ... mas funcionam como esperado). Eles são corrigidos no código abaixo.
fonte
fonte
O que faço é criar um bloco vertical para a sombra e colocá-lo ao lado de onde meu elemento de bloco deve estar. Os dois blocos são agrupados em outro bloco:
Exemplo de jsFiddle aqui .
fonte
Ok, aqui está uma tentativa mais. Usando pseudo-elementos e aplicando a propriedade da caixa de sombra sobre eles.
html:
sass:
https://codepen.io/alex3o0/pen/PrMyNQ
fonte