Padding in select boxes

我是研究僧i 提交于 2019-12-05 01:47:39

add this to your CSS class. Maybe this helps?

-webkit-appearance:none;
-moz-appearance:none;
appearance:none;

Since select boxes appear differently on different browsers and especially operating systems, you cannot guarantee a consistency.

For example, the minimal amount of formatting I can do on a mac is this:

select { height:40px; background:transparent; }

And it looks like this:

@Demilio's answer is great for hiding the default selectbox. With custom styling you can then change the appearance of the selectbox as you wish.

The only remaining problem is the arrows/caret which are also gone, as mentioned by @romainnm.

Unfortunately pseudo elements (e.g. :after) don't work on a select element, so the only way around it is to create an actual element after the select, something like <div class="Caret"></div>.

Add some stylying:

.Caret {
  display: block;
  position: absolute;
  cursor: pointer;
  right: 1rem;
  top: 50%;
  margin-top: -1px;
  width: 0;
  height: 0;
  border-top: 5px solid #000;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
}

And this should result in a custom styled select box with arrows:

Unfortunately the only downside is clicking on the arrow won't open the selectbox, and that also doesn't appear to be possible to tackle with JavaScript.

Interesting test here http://cssdeck.com/labs/styling-select-box-with-css3

The author covered the arrow on the right hand side and created its own, using vendor prefixed css to target different browsers. after doing that, your padding is all free.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!