Safari Bug

by jdanyow

HTML

<ul>
</ul>

CSS

ul:not(:has(*)) {
  display: none;
}

JavaScript

setTimeout(() => {
  const li = document.createElement('li');
  li.textContent = 'I should be visible';

  const ul = document.querySelector('ul');
  ul.append(li);
  
  // hack to workaround bug:
  // ul.style.zoom = '1'; // force styles to re-evaluate.
});