css — Способы анимации «display: none» без JS
Задать вопрос
Вопрос задан
Изменён 3 года 3 месяца назад
Просмотрен 7k раз
Сделаю минимальный пример:
input, div { display: none; } label:before { content: 'Показать'; } #toggle:checked + label:before { content: 'Скрыть'; } #toggle:checked ~ div { display: block; }
<input type="checkbox" name="toggle" /> <label for="toggle"></label> <div>Скрытый контент</div>
Вопрос именно про display: none
, поэтому способы прозрачности и нулевой высоты взамен данного свойства не предлагать.
opacity
, height
, width
, transform
и прочие стили. При помощи JS, особенно с помощью jQuery, это тоже без труда реализуется, но, вопрос именно по CSS.Если таковых нет, поделитесь, что используете и почему? Например, при сокрытии и отображении подробной информаци или обрезки текста.
- css
- css3
«Вопрос в том, как сделать плавность появления, когда у элемента есть переключение с display: none на display: block.» Пример с display: none
на display: block
с методом keyframes
:
input { display: none; } label:before { content: 'Показать'; } #toggle:checked + label:before { content: 'Скрыть'; } #toggle:checked ~ div { animation-name: open; animation-duration: 2s; animation-iteration-count: 1; animation-direction: normal; animation-timing-function: ease-out; animation-fill-mode: forwards; animation-delay: 0s; } #toggle:not(:checked) ~ div { display: none; } @keyframes open { 0% { display: block; opacity: 0; visibility: hidden; } 100% { display: block; opacity: 1; visibility: visible; } }
<input type="checkbox" name="toggle" /> <label for="toggle"></label> <div>Скрытый контент</div>
PS: лично я использую метод toggle
на JS/jQuery — добавление/удаление дополнительного класса и комбинирую его с CSS так как хочу. Если на чистом CSS, то данный пример. В остальном зависит от идеи, конкретики того, что и как нужно, метод реализации — уже второй вопрос.
Зарегистрируйтесь или войдите
Регистрация через Google Регистрация через Facebook Регистрация через почтуОтправить без регистрации
ПочтаНеобходима, но никому не показывается
Отправить без регистрации
ПочтаНеобходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
CSS Display — W3schools
на
Для управления макетом HTML-элемента используется CSS Display. На веб-странице каждый элемент представляет собой прямоугольную рамку. Поведение прямоугольного блока определяется свойством CSS.
CSS Свойства отображения по умолчанию:
значение по умолчанию | встроенный |
унаследованный | нет |
поддержка анимации | нет |
версия | css1 |
синтаксис javascript | object.style.display=»none» |
Синтаксис: 90 009
дисплей:значение;
Отображаемые значения CSS:
Ниже перечислены часто используемые отображаемые значения CSS:
- display: inline;
- дисплей: встроенный блок;
- дисплей: блок;
- дисплей: обкатка;
- дисплей: нет;
Отображение CSS встроенное:
Встроенное отображение CSS принимает только необходимую ширину. Поток текста не прерывается во встроенном отображении, потому что он не вызывает разрыв строки.Ниже приведены встроенные элементы:
Пример:
<голова> <стиль> ли { дисплей: встроенный; } стиль> голова> <тело> |
Вывод:
Объяснение:
HTML-элемент
Отображение встроенного блока CSS:
В элементе встроенного блока отображения CSS мы можем установить ширину и высоту.
<голова> <стиль> п { отображение: встроенный блок; } стиль> голова> <тело> |
Вывод:
Объяснение:
В приведенном выше примере мы используем встроенный блок отображения CSS. в элементе HTML
.
Блок отображения CSS:
Максимальное горизонтальное пространство или полная доступная ширина могут занимать элемент блока отображения CSS. Перед ними и после них делается разрыв строки.
Пример:
<голова> <стиль> охватывать { дисплей: блок; } стиль> голова> <тело> |
Результат:
Объяснение:
В приведенном выше примере мы используем блок отображения CSS в HTML. элемент
.
Запуск отображения CSS:
При запуске отображения CSS не создается определенное поле.
И они не поддерживаются Mozilla Firefox. Поле запуска будет таким же, как блок-бокс, если оно содержит блок-бокс. Блок ввода будет первым встроенным блоком блока, если блок следует за блоком ввода. Поле запуска будет блок-боксом, если встроенное поле следует за полем запуска.Пример:
<голова> <стиль> п { дисплей: обкатка; } стиль> голова> <тело> |
Результат:
Объяснение:
В приведенном выше примере мы используем CSS отображать запуск в элементе HTML
.
Нет отображения CSS:
Чтобы исключить элемент HTML со страницы, используется отображение CSS нет. Пробел не принимается отображением CSS none.
Пример:
<голова> <стиль> h2. |
Выход:
Объяснение:
В приведенном выше примере, скрытый заголовок не содержит места.
Другие отображаемые значения CSS:
Значение свойства | Использование | |||||||||||||||||
flex | 9 0013 Используется для рендеринга элемента как гибкого контейнера на уровне блока.||||||||||||||||||
inline-flex | Используется для визуализации элемента как гибкого контейнера встроенного уровня. | |||||||||||||||||
встроенная таблица | Используется для отображения элемента в виде таблицы встроенного уровня. | |||||||||||||||||
list-Item | Используется для того, чтобы элемент вел себя как элемент | |||||||||||||||||
table | Используется для того, чтобы элемент вел себя как элемент
Пожалуйста, поделитесь Категории CSSОтображение при прокрутке с плавным переходом — Как сделатьsitetreet #1 У меня есть div, который отображается при прокрутке ( Так ли это? Как я должен это делать? Теодор #2 Показать/скрыть атрибуты добавить css 1 Нравится датгуру #3У меня получилось работать с плавным появлением в div, но я не могу заставить его работать с плавным исчезновением. Это работает для меня при исчезновении, хотя и на гибком контейнере… это может помочь @sitestreet 1 Нравится Теодор #4 Да, потому что вы не можете анимировать Вот почему тогда Просто интересно, Теодор, какой смысл в анимации ухода, не относится ли это к действию скрытия? Спасибо Теодор #6Нет, анимация выхода используется, когда у вас есть динамические данные на странице, отфильтрованные/обновленные, поэтому элементы перезагружаются, нажимается следующая страница и т. д. Это не ограничение Wappler, это то, как работает CSS. Вы не можете анимировать свойство отображения. 1 Нравится sitestreet #7Я создал два класса: .item-show { непрозрачность: 1; } .item-скрыть { непрозрачность: 0; } , а затем использовал динамический атрибут Class Toggle для использования того или иного класса в зависимости от значения прокрутки. Это лучший способ? Теодор #8Но вы можете использовать такие анимации, как: . |