`-ms-` vendor prefixes not always removed

Author: sam-ac-dixonCreated May 18, 2022Updated May 18, 2022

If you are using an empty browserlist (or >100%) to remove existing vendor prefixes the -ms- prefix is not always removed.

The output is as expected given the following CSS:

.example {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

which produces:

.example {
    display: flex;
}

But let's modify the input display property from flex -> none:

.example {
    display: -webkit-box;
    display: -ms-flexbox;
    display: none;
}

The -ms prefix is not removed from the output as you'd expect:

.example {
    display: -ms-flexbox;
    display: none;
}

The expected output is:

.example {
    display: none;
}