I have an HTML list like so:
- Heading 1
-
It is possible to target first sibling with CSS, with some limitations.
For the example in the question it could be done with something like this
li.heading { display: none; } /* apply to all elements */
li.heading + li.heading { display: list-item } /* override for all but first sibling */
This works, but requires that you can explicitly set the styles on the siblings to override the setting for first child.