Estou tentando fazer com que minha regra horizontal ignore o preenchimento pai.
Aqui está um exemplo simples do que eu tenho:
#parent {
padding:10px;
width:100px;
}
hr {
width:100px;
}
Você descobrirá que a regra horizontal se estende para fora do pai em 10px. Estou tentando fazer com que ele ignore o preenchimento de que tudo o mais na div pai precisa.
Estou ciente de que poderia fazer uma div separada para todo o resto; esta não é a solução que estou procurando.
<hr>
terá 20px do final da sua div. Veja este jsFiddle para o que quero dizer: jsfiddle.net/YVrWy/1Para fins de imagem, você pode fazer algo assim
fonte
Em geral, essa pergunta foi respondida, mas em pequenas partes por todos. Eu lidei com isso há apenas um minuto atrás.
Eu queria ter uma bandeja de botões na parte inferior de um painel em que o painel tivesse 30 pixels ao redor. A bandeja de botões precisava estar nivelada com a parte inferior e as laterais.
Fiz uma demonstração aqui com mais detalhes para impulsionar a ideia. No entanto, os principais elementos acima são deslocados para qualquer preenchimento pai com margens negativas correspondentes no filho. Então, o mais crítico, se você deseja executar o filho em largura total, defina a largura como automático. (como mencionado em um comentário acima por schlingel ).
fonte
Meio atrasado, mas é preciso um pouco de matemática.
Não tenho Windows, então não testei isso no IE.
violino: exemplo violino ..
fonte
é melhor que
O posterior suga o conteúdo verticalmente para ele.
fonte
Seu pai tem 120px de largura - ou seja, 100 largura + 20 de preenchimento de cada lado, então você precisa fazer sua linha com 120px de largura. Aqui está o código. Na próxima vez, observe que o preenchimento aumenta a largura do elemento.
fonte
width: auto;
inhr
. jsfiddle.net/ToolmakerSteve/7p85dsrq/3 Infelizmente, esta solução ainda requer conhecimentopadding
definido pelos pais.O problema pode ser o modelo de caixa que você está usando. Você está usando o IE?
Quando o IE está no modo quirks,
width
é a largura externa da sua caixa, o que significa que o preenchimento estará dentro. Portanto, a área total deixada dentro da caixa é100px - 2 * 10px = 80px
nesse caso sua largura de 100 px<hr>
não parecerá correta.Se você estiver no modo padrão,
width
é a largura interna da sua caixa e o preenchimento é adicionado do lado de fora. Portanto, a largura total da caixa está100px + 2 * 10px = 120px
deixando exatamente 100 px dentro da caixa para o seu<hr>
.Para resolvê-lo, ajuste seus valores de CSS para o IE. (Verifique no Firefox para ver se parece ok). Ou melhor ainda, defina um tipo de documento para colocar o navegador no modo estrito - onde o IE também segue o modelo de caixa padrão.
http://www.quirksmode.org/css/quirksmode.html
fonte
Se você possui um contêiner pai com preenchimento vertical e deseja que algo (por exemplo, uma imagem) dentro desse contêiner ignore seu preenchimento vertical, você pode definir uma margem negativa, mas igual, para 'top' e 'bottom':
O valor real não parece importar muito. Ainda não tentei isso em revestimentos horizontais.
fonte
easy fix .. adicione à div pai:
dimensionamento de caixa: caixa de borda;
fonte
Aqui está outra maneira de fazer isso.
Aqui estão alguns exemplos sobre repl.it: https://repl.it/@bryku/LightgrayBleakIntercept
fonte