According to MDN :
Display
In addition to many different types of boxes, a value of none allows you to disable the display of an item; when you use none , all descendant elements are also disabled. The document is displayed as if this element does not exist in the document tree.
So, I think that elements with a display set to none will not be displayed at all in all browsers, and so the transition or any other visual effect will not be applied.
You can also test yourself by subscribing to the transitionend event:
$(element).on("transitionend", function () { console.log("transition ended"); });
Update:
This is also the w3c value:
And some values (such as display: none, display: contents and box-suppress: discard) cause the element and / or its descendants to not generate any fields at all.
If the fields are visual representations of an element. And the transition is definitely part of the visual presentation, as it can also affect the layout, for example. when changing the relative position of the element with the transition applied.
Here is another example of how different the animations of the elements with display : none and visibility : hidden other words, the rendering element and the non-display one.
JSFiddle DEMO
source share