You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While upgrading my dependencies on a project with some pretty old css (and which includes some webkit-specific hacks), I noticed an issue. Autoprefixer version 6.7.0 now entirely removes "-webkit-box-orient" rules. Version 6.6.1 did not have this issue.
I thought the behavior of the (default) remove:true option was to only remove outdated rules if the modern rule was specified too. So that display:-webkit-flex;display:flex; -> display:flex; if possible, but display:-webkit-flex; alone would remain as display:-webkit-flex;. This case still seems to be the same. The -webkit-box-orient rules uniquely being stripped unconditionally is surprising to me, and I wonder if it really is intended or best given that it doesn't seem any other rules are treated like that.
Reacted by oliy, 欧阳黎, Tommy Troy Lin, flyflydogdog and 卯熙
Disabling the remove option or adding a flexbox 2009 browser to browsers list are both fairly coarse workarounds for this type of scenario. Any interest in adding an option to opt-out of removal at the rule level?
Possibly helpful for anyone reading up on this thread and problem, least intrusive option to prevent the removal of the line in question is to just disable the autoprefixer for this line/section
/* autoprefixer: off */
-webkit-box-orient: vertical;
/* autoprefixer: on */
Reacted by aoiu, wzhscript, 张树源, Bo Kou, Serhii Baraniuk, Chizuru Misawa, mach3, IrisYao, Igor, Kaela Nichols and 125 more
Reacted by joshharrisici, hiepxanh, s.k., jiangyixin, LGMMI and zivenday
Reacted by Km.Van, Juan Felipe Mejía Guerra, Andrew Abogado, Jinmeng Liu, Ruslan, hiepxanh, jiang-shushu, coderbag, chien vu hoang and Kevin Lee
Reacted by 张树源, Bo Kou, Sal Saia, Kaela Nichols, JXL, JeffCBL, jothi-pyt, Jason, Courtland Allen, Alan and 20 more
Reacted by 零瓶水, zzwar2009, Bohdan Baranov, Juan Felipe Mejía Guerra, Andrew Abogado, James Kai, Sina, Jinmeng Liu, Ruslan, hiepxanh and 9 more
@jinglf000 I removed your comment since it is wrong to put off and on comments. Autoprefixer apply these comments to whole block, NOT next lines (Autoprefixer even show a warning about it).
I've been trying to use /*! autoprefixer: ignore next */ in my sass file but it does not seem to be taken into account, probably something is removing the comment before autoprefixer tries to read it? my webpack config:
Can anyone please make a PR to fix this by default? This css rule is used together with -webkit-line-clamp to achieve multiline ellipsis even in the latest Chrome & Safari, and should NOT be removed.
Activity
ai commentedon Jan 25, 2017
Is it a really issue if you ask Autoprefixer to remove old prefix? ;)
IharKrasnik commentedon Jan 25, 2017
@ai How to preserve -webkit-box-orient?
ai commentedon Jan 25, 2017
Add any flexbox 2009 browser to
browserslistin yourpackage.json.IharKrasnik commentedon Jan 25, 2017
Thank you
Macil commentedon Jan 25, 2017
@ai This still happens even if I add
remove: falseto the options.ai commentedon Jan 25, 2017
Are you sure that it does from Autoprefixer? Maybe some other tool (like minification in webpack’s
css-loader) change file too?yidea commentedon Jan 26, 2017
tested out with css-loader remain the same version, Autoprefixer is the only factor remains that causing this
Macil commentedon Jan 26, 2017
Oh, I was passing remove:false to postcss-cssnext. Passing it on to autoprefixer results in -webkit-box-orient not being removed.
I thought the behavior of the (default) remove:true option was to only remove outdated rules if the modern rule was specified too. So that
display:-webkit-flex;display:flex;->display:flex;if possible, butdisplay:-webkit-flex;alone would remain asdisplay:-webkit-flex;. This case still seems to be the same. The-webkit-box-orientrules uniquely being stripped unconditionally is surprising to me, and I wonder if it really is intended or best given that it doesn't seem any other rules are treated like that.jrowlingson commentedon Jan 27, 2017
Disabling the remove option or adding a flexbox 2009 browser to browsers list are both fairly coarse workarounds for this type of scenario. Any interest in adding an option to opt-out of removal at the rule level?
ai commentedon Jan 27, 2017
Extra option is not a solution, because most of developers will not read docs.
If you want to fix it, send a PR removing this hack
https://github.com/postcss/autoprefixer/blob/master/lib/processor.coffee#L133
jrowlingson commentedon Jan 27, 2017
@ai thanks - will do
Lars-Weber commentedon Apr 27, 2017
Possibly helpful for anyone reading up on this thread and problem, least intrusive option to prevent the removal of the line in question is to just disable the autoprefixer for this line/section
ai commentedon Apr 27, 2017
@Lars-Weber best option is just add old Safari to
browserslistconfigplamitgma commentedon Jan 10, 2018
@Lars-Weber: awesome, thank you so much!
24 remaining items
ai commentedon Jun 29, 2018
@jinglf000 I removed your comment since it is wrong to put off and on comments. Autoprefixer apply these comments to whole block, NOT next lines (Autoprefixer even show a warning about it).
In Sass use
/*! autoprefixer: ignore next */mebibou commentedon Jul 11, 2018
I've been trying to use
/*! autoprefixer: ignore next */in my sass file but it does not seem to be taken into account, probably something is removing the comment beforeautoprefixertries to read it? my webpack config:jinglf000 commentedon Jul 12, 2018
@ai In my Vue project( use vue-cli init), I had tried many ways, such as
That not useful,only by this way
case:

meigesir commentedon Jul 21, 2018
@jinglf000 my autoprefixer version 7.2.6 work,tks.
ai commentedon Jul 21, 2018
@meigesir you use very outdated Autoprefixer. The current version is 9.
marialovesbeans commentedon Sep 23, 2018
Can anyone please make a PR to fix this by default? This css rule is used together with
-webkit-line-clampto achieve multiline ellipsis even in the latest Chrome & Safari, and should NOT be removed.eugle commentedon Oct 17, 2018
Is it the same in less? I used it in less, but it didn't work
fix: autoprefixer remove of box-orient
ai commentedon Nov 30, 2018
@zuobaiquan nope,
offdisable for the whole block. Use/* autoprefixer: ignore next */ai commentedon Dec 7, 2018
I am closing this issue because many developers suggest wrong solution. The only right solution: