Horizontally align options in select?

2019-06-01 13:51发布

问题:

I am working on styling an option tag for a project I am working on but I am unable to figure out if it is even possible to horizontally align the option tags in my select box.

This is what I currently have style wise:

*:focus {
    outline: none;
}

select {
  appearance: none;
  -webkit-appearance: none;
  background-color: transparent;
  border: 0;
  padding:10px;
  margin:-5px -20px -5px -5px;
}

#drink-holder {
  display:inline-block;
  vertical-align:top;
  overflow:hidden;
}
<div id="drink-holder">
  <select size="6">
      <option selected>Water</option>
      <option>Apple Juice</option>
      <option>Orange Juice</option>
      <option>Milk</option>
      <option>Coffee</option>
      <option>Sports Drink</option>
  </select>
</div>

I do have jQuery in my app but I would prefer a css only option also cross compatibility is not a problem sense this project will be packaged in webkit.

If you do not understand what I want it is simply like this:

Water Apple Juice Orange Juice ...

Thanks!

Edit: For people confused on the cross-comparability part I meant that this would be packaged in webkit to make an iOS app

回答1:

You simply need to use display:inline-block; with the select options:

#drink-holder select option {
  display:inline-block;
}

Demo:

*:focus {
    outline: none;
}

select {
  appearance: none;
  -webkit-appearance: none;
  background-color: transparent;
  border: 0;
  padding:10px;
  margin:-5px -20px -5px -5px;
}

#drink-holder select option {
  display:inline-block;
}

#drink-holder {
  display:inline-block;
  vertical-align:top;
  overflow:hidden;
}
<div id="drink-holder">
  <select size="6">
      <option selected>Water</option>
      <option>Apple Juice</option>
      <option>Orange Juice</option>
      <option>Milk</option>
      <option>Coffee</option>
      <option>Sports Drink</option>
  </select>
</div>