Eu tenho uma entrada html.
A entrada tem padding: 5px 10px;
eu quero que seja 100% da largura da div pai (que é fluido).
No entanto, o uso width: 100%;
faz com que a entrada seja 100% + 20px
como posso contornar isso?
html
css
width
fluid-layout
Hailwood
fonte
fonte
input
e apoiar IE7Respostas:
box-sizing: border-box
é uma maneira rápida e fácil de corrigi-lo:Isso funcionará em todos os navegadores modernos e no IE8 +.
Aqui está uma demonstração: http://jsfiddle.net/thirtydot/QkmSk/301/
As versões com prefixo do navegador (
-webkit-box-sizing
, etc.) não são necessárias nos navegadores modernos.fonte
É por isso que temos
box-sizing
em CSS.Editei o seu exemplo e agora ele funciona no Safari, Chrome, Firefox e Opera. Confira: http://jsfiddle.net/mathias/Bupr3/ Tudo o que eu adicionei foi este:
Infelizmente, navegadores mais antigos como o IE7 não suportam isso. Se você está procurando uma solução que funcione em IEs antigos, confira as outras respostas.
fonte
Use o preenchimento também em porcentagens e remova da largura:
fonte
Você pode fazê-lo sem usar
box-sizing
e não soluções claras comowidth~=99%
.Demonstração em jsFiddle :
padding
eborder
margin
=border-width
+horizontal padding
padding
igual amargin
da etapa anteriorMarcação HTML:
CSS:
fonte
Use css calc ()
Super simples e incrível.
Como visto aqui: Largura da div 100% menos quantidade fixa de pixels
Por webvitaly ( https://stackoverflow.com/users/713523/webvitaly )
Fonte original: http://web-profile.com.ua/css/dev/css -width-100prc-menos-100px /
Apenas copiei isso aqui, porque eu quase perdi no outro segmento.
fonte
Supondo que eu esteja em um contêiner com preenchimento de 15px, é isso que eu sempre uso para a parte interna:
Isso esticará a parte interna para qualquer largura que seja menor que 15 px em ambos os lados.
fonte
width:auto
aplicado a uminput
campo?Você pode tentar alguns truques de posicionamento. Você pode colocar a entrada em uma div com
position: relative
uma altura fixa e, em seguida, na entrada haveposition: absolute; left: 0; right: 0;
e em qualquer preenchimento que desejar.Exemplo ao vivo
fonte
<input>
elementos no Firefox (idk sobre o IE). Mas funciona com<div>
s. E não,display: block
no<input>
também não funciona: - /Aqui está a recomendação do codeontrack.com , que tem bons exemplos de soluções:
fonte
Mova o preenchimento da caixa de entrada para um elemento de invólucro.
Veja o exemplo aqui: http://jsfiddle.net/L7wYD/1/
fonte
Apenas entenda a diferença entre width: auto; e largura: 100%; Largura: auto; (AUTO) calculará MATICALMENTE a largura, a fim de ajustar exatamente o dado com a div de empacotamento, incluindo o preenchimento. Largura 100% expande a largura e adiciona o preenchimento.
fonte
Que tal envolvê-lo em um recipiente. O shoud do contêiner tem estilo como:
fonte
Tente o seguinte:
fonte
Para mim, usando
margin:15px;padding:10px 0 15px 23px;width:100%
, o resultado foi este:A solução para mim foi usar em
width:auto
vez dewidth:100%
. Meu novo código era:margin:15px;padding:10px 0 15px 23px;width:auto
. Em seguida, o elemento alinhado corretamente:fonte
Eu tive o mesmo problema. Corrija assim:
fonte
Você consegue fazer isso:
fonte