Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Center text in html number input

Tags:

html

css

input

I have a number input in html. I want to center the text (i.e. the input) that is inside. I of course did:

text-align: center;

which sort of works. The problem is though. The text is now centered when those arrows are shown. But when the arrows disappear, the text stays at the same position which now of course isn't the center anymore.

Without arrows, the text does not appear centered.

like image 500
tomet Avatar asked May 17 '14 20:05

tomet


4 Answers

You can have the spinner buttons (arrows) always show:

input[type='number']::-webkit-inner-spin-button, 
input[type='number']::-webkit-outer-spin-button { 
    opacity: 1;
}

Or you can have them always hidden:

input[type='number']::-webkit-inner-spin-button, 
input[type='number']::-webkit-outer-spin-button { 
    -webkit-appearance: none;
    margin: 0;
}

With either option, the contents will always be centred.

like image 98
rink.attendant.6 Avatar answered Nov 11 '22 01:11

rink.attendant.6


I found that playing around with the width and padding-left properties worked in my situation because I required a fairly small box of width 45px.

So using

padding-left:10px;
width:45px;
text-align:center;

worked nicely.

https://jsfiddle.net/faanvme3/

like image 41
Andrew Avatar answered Nov 11 '22 01:11

Andrew


Just this:

Using css

input[type="number"] {
  text-align: center;
}

Using bootstrap

<input type="number" class="text-center" min="1" max="99" name="quantity">
like image 2
kib gabriel Avatar answered Nov 11 '22 00:11

kib gabriel


I achieved what you describe using position relative/absolute on the spinner. The outcome is that the text of your input is centred while keeping the convenience of the spinner on top of it when necessary.

    input {
    text-align: center;
    position: relative;
  }
  input[type='number']::-webkit-inner-spin-button {
    position: absolute;
    width: 12.5%;
    height: 100%;
    top: 0;
    right: 0;
  }

In this example I assumed the spinner would be 1/8 of the size of the input, but that's up to you.

like image 1
Cactus Avatar answered Nov 11 '22 00:11

Cactus