display: none; - элемент полностью удаляется из потока документа, не занимает места и события не обрабатываются. Самый "сильный" способ скрытия.visibility: hidden; - элемент остается в потоке документа, сохраняет свое место, но не виден. События мыши и клавиатуры не обрабатываются.opacity: 0; - элемент остается в потоке документа, сохраняет свое место, не виден. События мыши и клавиатуры обрабатываются (можно кликнуть, навести курсор и т.д.). Элемент просто становится полностью прозрачным.position: absolute; и установка координат вне видимой области (например, left: -9999px;). Элемент удаляется из нормального потока, но все еще присутствует на странице и может влиять на прокрутку. События обрабатываются.width: 0; height: 0; overflow: hidden; - элемент остается в потоке, но его размеры обнуляются. События могут обрабатываться, если их область попадает в видимую часть другого элемента.font-size: 0; и line-height: 0; (для скрытия текстового содержимого). Сохраняет элемент, но делает его текст невидимым.:empty (не для всех элементов и случаев). Скрытие содержимого, если элемент пуст.Выбор способа зависит от требуемого поведения: нужно ли, чтобы элемент занимал место, обрабатывал события или был полностью удален из потока.