problem with <select> and :after with CSS in WebKit

have a problem with synonym
a problem with something meaning
have a problem with meaning
a problem with something synonym
problem in or problem with
to have a problem with or object to
having a problem with someone
the problem with apu

I would like to add some style on a select box with the pseudo :after (to style my select box with 2 parts and without images). Here's the HTML:

<select name="">
  <option value="">Test</option>

And it doesn't work. I don't know why and I didn't find the answer in the W3C specs. Here's the CSS:

select {
  -webkit-appearance: none;
  background: black;
  border: none;
  border-radius: 0;
  color: white;

select:after {
  content: " ";
  display: inline-block;
  width: 24px; height: 24px;
  background: blue;

So is it normal or is there a trick?

I haven't checked this extensively, but I'm under the impression that this isn't (yet?) possible, due to the way in which select elements are generated by the OS on which the browser runs, rather than the browser itself.

HAVE A PROBLEM WITH SOMETHING (phrase) definition and , Definition of HAVE A PROBLEM WITH SOMETHING (phrase): not like or approve of something. have a problem with sth/sb definition: 1. to find something or someone annoying or offensive: 2. to find something or someone annoying or…. Learn more. Cambridge Dictionary +Plus

I was looking for the same thing since the background of my select is the same as the arrow color. As previously mentioned, it is impossible yet to add anything using :before or :after on a select element. My solution was to create a wrapper element on which I added the following :before code.

.select-wrapper {
    position: relative;

.select-wrapper:before {
    content: '\f0d7';
    font-family: FontAwesome;
    color: #fff;
    display: inline-block;
    position: absolute;
    right: 20px;
    top: 15px;
    pointer-events: none;

And this my select

select {
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    width: 100%;
    padding: 10px 20px;
    background: #000;
    color: #fff;
    border: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;

select::-ms-expand {
    display: none;

I have used for my new arrow, but you can use whatever else you want. Obviously this is not a perfect solution, but depending on your needs it might be enough.

HAVE A PROBLEM WITH STH/SB, have a problem with sth/sb meaning: 1. to find something or someone annoying or offensive: 2. to find something or someone annoying or… a situation, person, or thing that needs attention and needs to be dealt with or solved: financial / health problems Our main problem is lack of cash. I'm having problems with my computer.

To my experience it simply does not work, unless you are willing to wrap your <select> in some wrapper. But what you can do instead is to use background image SVG. E.g.

    .archive .options select.opt {
    -moz-appearance: none;
    -webkit-appearance: none;
    padding-right: 1.25EM;
    appearance: none;
    position: relative;
    background-color: transparent;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='' version='1.1' height='10px' width='15px'%3E%3Ctext x='0' y='10' fill='gray'%3E%E2%96%BE%3C/text%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 1.5EM 1EM;
    background-position: right center;
    background-clip: border-box;
    -moz-background-clip: border-box;
    -webkit-background-clip: border-box;

    .archive .options select.opt::-ms-expand {
        display: none;

Just be careful with proper URL-encoding because of IE. You must use charset=utf8 (not just utf8), don't use double-quotes (") to delimit SVG attribute values, use apostrophes (') instead to simplify your life. URL-encode s (%3E). In case you havee to print any non-ASCII characters you have to obtain their UTF-8 representation (e.g. BabelMap can help you with that) and then provide that representation in URL-encoded form - e.g. for ▾ (U+25BE BLACK DOWN-POINTING SMALL TRIANGLE) UTF-8 representation is \xE2\x96\xBE which is %E2%96%BE when URL-encoded.

a problem with, In doing so numerous bioethicists deal for example with the problem of personal status of a human embryo or with [] problems related to the possibility. []. "The problem of x" usually means "x, which is a problem", but in the right context it might refer to the problem x has. "The problem with x " means either the problem that x causes or the problem that x has.

This post may help

He is using a outside div with a class for resolving this issue.

<div class="styled-select">
    <option>Here is the first option</option>
    <option>The second option</option>

The Problem with Apu, “One of the biggest problems — maybe the biggest problem with a post office — is Amazon. Amazon and other companies like it,” Trump said in� n. 1. a. any thing, matter, person, etc, that is difficult to deal with, solve, or overcome. b. ( as modifier ): a problem child. 2. a puzzle, question, etc, set for solution. 3. (Mathematics) maths a statement requiring a solution usually by means of one or more operations or geometric constructions. 4.

Faced the same problem. Probably it could be a solution:

<select id="select-1">
<label for="select-1"></label>

#select-1 {

#select-1 + label:after {

Donald Trump says Amazon may be the biggest problem with USPS, The Problem With 'Hey Guys'. A broad coalition of English speakers—teachers, retail workers, ice-cream scoopers, and plenty of others—is� Problem definition is - a question raised for inquiry, consideration, or solution. How to use problem in a sentence. Synonym Discussion of problem.

Is It Okay to Say “Hey Guys”?, Directed by Michael Melamedoff. With Hari Kondabolu, W. Kamau Bell, Kal Penn, Aziz Ansari. Comedian Hari Kondabolu confronts his cartoon nemesis, Apu� Here's an interesting news nugget courtesy of CNN's Abby Phillip:

The Problem with Apu (2017), Potential accuracy issues with a widely used coronavirus test could lead to false results for patients, U.S. health officials warned. Here’s the problem with mail-in ballots: They might not be counted. That’s especially true for younger, minority and first-time voters. By Enrijeta Shino , Mara Suttmann-Lea and Daniel A. Smith

FDA flags accuracy problem with widely used coronavirus test, The Problem with Everything: My Journey Through the New Culture Wars (9781982129330): Daum, Meghan: Books. Common Problems with Possible Solutions. Traditional Baking Methods. Hand-held mixer, Stand Mixer and Food Processor. Watch our ‘How to Bake Videos‘ for demonstrations on bread making. Or click on one of the Problems below to find a possible solution. Dough did not rise, or rose too slowly

  • I imagine that this would not, should not be possible, otherwise it would make it too easy to change the contents of forms. Imagine a simple bit of CSS changing the display price for something. It could be shown as cheaper than it really is, tricking people into buying something for more than they expected. (Or course, if someone has access to the CSS of a page/userstylesheet, then they could probably do the same in other ways…)
  • @Synetech - This is incorrect, the author of the page should have complete control over all aspects of page styling. Browser manufacturers trying to prevent styling of certain elements because they might be used to mislead users is not going to be effective as there are nearly limitless number of ways to trick the system or produce false positives.
  • Possible duplicate of Pseudo elements and SELECT tag
  • It's 2019 now and it's still the same
  • It's 2020 now and it's still the same
  • Had I seen your comment on this 10 years old post an hour ago, I would’ve saved myself an hour of my time. :C
  • This is visually perfect. But you cant click through that icon and select element wont open :/ Any suggestions?
  • pointer-events: none; should take care of that. There was a problem with my code above. I'll change any sass above to css to remove any confusion.
  • Does is matter which pseudo selector (before vs after) is used?
  • You can use one or the other
  • This is a great solution but when implementing it I found that for some reason :before worked and NOT :after. I don't know why.
  • This is a nice and elegant solution
  • This is a fantastic, simple, and elegant solution that requires no extra HTML which is exactly what I was looking for! Thanks! This should be the chosen answer IMO.
  • Can you add in the styles required to make the label sit over top of the select element?
  • This is a nice trick. Super annoying that we still can't style selects in 2020.