CSS/HTML: ul: пустой селектор не будет совпадать с пустым списком

У меня есть следующий код CSS и HTML:

<ul id="actions" class="frame frame-yellowglow">
</ul>

CSS

ul#actions {
    clear: left;    
    width: calc(60% - 2px);
    margin: 5px auto;
    padding: 10px 0px;
    text-align: center;
}
ul#actions:empty {
    margin: 0;
    padding: 0;
}
ul#actions li {
    display: inline;
    margin: 0px 3px;
}
.frame {
    border-radius: 5px; 
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    border: 1px #dddddd solid;
}
.frame:empty {
    border: none;
    box-shadow: none;
}
.frame-yellowglow {
    border: 1px #D4B700 solid;
    box-shadow: 0 0 4px #D4B700;
}

ul заполняется значками для определенных действий, которые могут быть выполнены. Однако ul не соответствует пустующему селектору, когда он пуст и как таковой все еще отображается; границы, отступы, тень и т.д.

[EDIT: Чтобы уточнить, я говорю здесь о том, когда элементы еще не добавлены. Даже когда внутри ничего нет, он по-прежнему не соответствует пустующему селектору. ]

Почему это так?

Ответ 1

Согласно MDN

Пустой псевдокласс представляет собой любой элемент, у которого вообще нет детей. Учитываются только узлы элементов и текст (включая пробелы).

Ваш "пустой" ul, вероятно, содержит пробельный текст node.