Existe uma maneira de posicionar uma imagem de plano de fundo em um determinado número de pixels à direita de seu elemento?
Por exemplo, para posicionar algo com um certo número de pixels (digamos, 10) da esquerda , é assim que eu faria:
#myElement {
background-position: 10px 0;
}
background-position: -10px 0;
? Apenas checando :) #Respostas:
Achei esse recurso CSS3 útil:
Tanto quanto sei, isso não é suportado no IE8. No mais recente Chrome / Firefox, funciona bem.
Consulte Posso usar para obter detalhes sobre os navegadores suportados.
Fonte usada: http://tanalin.com/en/blog/2011/09/css3-background-position/
Atualização :
Agora, esse recurso é suportado em todos os principais navegadores, incluindo navegadores móveis.
fonte
right
left
top
bottom
. Por exemplo, o seguinte não será renderizado:background-position: right 10px 10px
mas deve ser escrito comobackground-position: right 10px top 10px
Existe uma maneira de posicionar uma imagem de plano de fundo em um determinado número de pixels à direita de seu elemento?
Não.
Soluções populares incluem
margin-right
no elementotop right
fonte
A solução mais fácil é usar porcentagens. Esta não é exatamente a resposta que você estava procurando desde que pediu precisão em pixels, mas se você precisar de algo para ter um pequeno preenchimento entre a borda direita e a imagem, dar a uma posição de 99% algo geralmente funciona bem o suficiente.
Código:
fonte
O CSS3 modificou a especificação de
background-position
para que funcione com diferentes pontos de origem. Infelizmente, não consigo encontrar nenhuma evidência de que ela tenha sido implementada nos principais navegadores.http://www.w3.org/TR/css3-background/#the-background-position Veja o exemplo 12.
fonte
Version 21.0.1180.89
Conforme proposto aqui , esta é uma solução bonita para vários navegadores que funciona perfeitamente:
Eu o usei, pois o recurso CSS3 de especificar as compensações propostas na resposta marcada como solução da questão ainda não é suportado nos navegadores. Por exemplo
fonte
A resposta mais apropriada é a nova sintaxe de quatro valores para a posição de segundo plano, mas até que todos os navegadores suportem, sua melhor abordagem é uma combinação de respostas anteriores na seguinte ordem:
fonte
Um truque simples, porém sujo, é simplesmente adicionar o deslocamento desejado à imagem que você está usando como plano de fundo. não é sustentável, mas faz o trabalho.
fonte
Isso funcionará nos navegadores mais modernos ... além do IE (suporte ao navegador) . Embora essa página lista> = IE9 como compatível, meus testes não concordaram com isso.
Você pode usar a propriedade calc () css3 assim;
Para mim, esta é a maneira mais limpa e lógica de obter uma margem para a direita. Eu também uso um substituto do
border-right: 10px solid transparent;
IE.fonte
background-position: 92% 8px; background-position: calc(100% - 12px) 8px;
right 10px center
sintaxe possui mais suporte estendido nos navegadores._
com um-
Ok, se eu entendo o que você está pedindo, você faria isso;
Você tem seu contêiner DIV chamado
#main-container
e.my-element
está nele. Use isso para você começar;A propósito, é melhor usar classes se você fizer referência a um elemento de nível inferior em uma página (presumo que você seja o meu nome alterado acima.
fonte
A especificação CSS3, que permite origens diferentes para a posição de segundo plano, agora é suportada no Firefox 14, mas ainda não no Chrome 21 (aparentemente o IE9 as suporta parcialmente, mas eu ainda não testei)
Além do problema do Chrome que o @MattyF referenciou, há um resumo mais sucinto aqui: http://code.google.com/p/chromium/issues/detail?id=95085
fonte
Se você tiver elementos proporcionais, poderá usar:
Neste exemplo,
.valid
seria a classe com a imagem e.half
seria uma linha com metade do tamanho da padrão.Sujo, mas funciona como um encanto e é razoavelmente gerenciável.
fonte
Se você quiser usar isso para adicionar setas / outros ícones a um botão, por exemplo, poderá usar pseudoelementos css?
Se for realmente uma imagem de plano de fundo para o botão inteiro, costumo incorporar o espaçamento na imagem e usar
Mas se eu tiver que adicionar, por exemplo, uma seta projetada a um botão, eu tenderá a ter este html:
E tende a fazer o seguinte com CSS:
Usando o seletor: after, adiciono um elemento usando CSS apenas para conter esse pequeno ícone. Você pode fazer o mesmo adicionando uma extensão ou
<i>
elemento dentro do elemento a. Mas acho que essa é uma maneira mais limpa de adicionar ícones aos botões e é compatível com vários navegadores.você pode conferir o violino aqui: http://codepen.io/anon/pen/PNzYzZ
fonte
content: '';
mais do quecontent:0;
mas esta era uma solução útil para mimfonte
usar centro direito como a posição e adicionar uma borda transparente para compensá-la?
fonte
Se você possui um elemento de largura fixa e conhece a largura da sua imagem de plano de fundo, basta definir a posição do plano de fundo para: largura do elemento - largura da imagem - a lacuna desejada à direita.
Por exemplo: com um elemento de 100 px e uma imagem de 300 px, para obter um intervalo de 10 px à direita, você o define como 100-300-10 = -210 px:
E você obtém os 80 pixels mais à direita da sua imagem à esquerda do seu elemento e um intervalo de 20 px à direita.
Eu sei que pode parecer estúpido, mas às vezes economiza tempo ... Eu uso muito isso de maneira vertical (lacuna na parte inferior) para links de navegação com texto abaixo da imagem.
Não tenho certeza se isso se aplica ao seu caso.
fonte
meu problema era que eu precisava da imagem de plano de fundo para manter a mesma distância da borda direita quando a janela é redimensionada, ou seja, para tablet / celular etc. Minha correção é usar um percenatge como:
e fica no lugar.
fonte
sim! bem para posicionar uma imagem de fundo como se 0px do lado direito do navegador em vez da esquerda - eu uso:
fonte