Ещё четыре способа скрыть и показать элементы при помощи HTML и CSS
Приквел к этой статье – «Четыре способа заставить элементы исчезнуть (и появиться) при помощи CSS» – был сосредоточен на классических техниках для скрытия элементов на странице; на этот раз используются методы, которые работают в современных браузерах, с некоторыми ограничениями для IE. Используется разметка, которая похожа на разметку из предыдущего примера:
Nastya, photographed by Sean Archer
Located deep in Siberia, the village of Oymyakon holds the title of the coldest permanently inhabited place on Earth, tied with Verkhoyansk.
From December to February, the weather in the tiny village (population 500) plummets to -50°F (-45C), with a record low of -90°F (-68C) registered in 1933. At those temperatures, a naked human left outside would freeze to death in under a minute…
В этой статье я применяю разные техники для скрытия элемента : можно протестировать эти методы в интерактивном примере в начале оригинальной статьи или перейдя по этой ссылке на CodePen.
Масштабирование элемента в 0
Очевидно, если вы делаете что-то бесконечно маленьким, это «что-то» в итоге исчезнет. Стоит отменить, что изначальная область элемента сохранится, потому что действие трансформации по сути похоже на поведение элемента с position: relative ;
Возврат значения scale в значение 1 заставит элемент появиться снова; этот переход также может быть анимирован.
Минусы: Поддерживается во всех современных браузерах, но только начиная с IE9+. Нельзя применять к строчным элементам. Для старых версий браузеров требуются префиксы.
HTML5-атрибут hidden
Хотя визуально он действует так же, как display: none , этот элемент фиксирует состояние элемента
При установке элементу, hidden указывает, что элемент еще не имеет или уже не имеет непосредственного отношения к текущему состоянию страницы.
Атрибут hidden уже используется для таких HTML5-элементов, как details . В отличие от других описанных здесь методов, атрибут hidden скрывает элемент от любых способов представления, включая печать, мобильные и скринридеры. Поддерживается всеми современными браузерами, за исключениями одного.
Минусы: Всё ещё не поддерживается в IE, хотя это легко решается в CSS при помощи селектора по атрибуту:
Нулевой height и overflow:hidden
figure#oymyakon < height: 0; overflow: hidden; >
Традиционное решение. Фактически «схлопывает» элемент по вертикали и делает его невидимым; работает при условии, что у элемента нет видимой границы. Стоит отметить, что некоторое пространство на странице для скрытого элемента, вероятно, будет «забронировано»: несмотря на то, что у элемента нет высоты, у него всё ещё есть ширина и, возможно, поле, которые могут продолжать влиять на макет страницы.
Минусы: Не применяется к строчным элементам. Значение height не может быть анимировано, хотя max — height может.
Фильтр размытия
Новейший подход, который вообще не будет работать в IE (по крайней мере на данный момент). И всё же blur – интересный вариант, который стоит рассмотреть на будущее.. Достаточное размытие делает элемент полностью невидимым, а при уменьшении значения blur до 0 элемент снова оказывается «в фокусе»
Соображения:
размытие небольшого текста работает лучше чем изображения
Размытые изображения могут добавить оставшейся части страницы оттенок цвета, в зависимости от их относительного размера и значения blur .
Чем выше значение blur , тем больше требуется вычислительных циклов для его достижения; достаточно высокие значения могут существенно загрузить графический процессор, что делает эту технику нецелесообразной для мобильных устройств на данный момент.
Поддерживается только в последней версии Firefox (35 версия – прим. перев.) (хотя есть возможность использовать SVG в качестве запасного варианта)
Всё ещё требует браузерных префиксов для Chrome и Safari.
Как уже было указано, не будет работать ни в каких версиях IE.
С этими и другими методами, рассмотренными в прошлой статье, у вас есть полный набор инструментов для создания элементов, которые появляются и исчезают на странице. Важно понимать, что не существует единственной «правильной» или «лучшей» техники: бывает лишь наиболее подходящий инструмент для конкретной задачи. Это относится и к JavaScript, у которого есть собственные методы для добавления и удаления элементов в DOM.
Давайте рассмотрим разные примеры того, как можно показать/скрыть текст по нажатию на кнопку. Обычно такая функция называется спойлер или аккордеон. Это когда весь текст или половина его скрыта от просмотра, и только при нажатии на кнопку, или определённый элемент, открывается весь текст.
Разнообразие реализации такой фишки, как показать/скрыть текст может быть огромное количество. Есть разный подход к технической части: на чистой JavaScript, jQuery, чистый CSS, HTML. Для WordPress можно найти специальные плагины или сделать раскрывающийся текст без плагина.
Показать скрыть текст JS
Первые примеры будут с использованием JS/jQuery. Всё представленное ниже можно «прикрутить» к любому сайту на любой платформе. Внешний вид, то есть дизайн, легко редактируется с помощью CSS.
Подобное скрытие текста можно реализовать одними средствами CSS и HTML. И это не значит какой-то недостаток. В том плане, что будет хуже, чем с помощью JS/jQuery. Да и в целом многое зависит от поставленной задачи. И помните, всегда можно отредактировать стили под свой дизайн сайта.
Есть совсем простое решение, чтобы создать кнопку, при нажатии на которую открывается текст. Для этого существуют специальные теги в HTML 5, такие как , . По сути, их можно использовать даже без стилей CSS. Но чтоб всё сделать красиво, конечно, желательно применить каскадную таблицу.
Show and Hide Text or Images With CSS and JavaScript
Jennifer Kyrnin is a professional web developer who assists others in learning web design, HTML, CSS, and XML.
Dynamic HTML (DHTML) allows you to create an application-style experience on your websites, reducing the frequency that entire pages have to be fully loaded. In applications, when you click on something, the application immediately changes to show that specific content or to provide you with your answer.
In contrast, web pages typically have to be reloaded, or an entirely new page has to be loaded. This can make the user experience more disjointed. Your customers have to wait for the first page to load and then wait again for the second page to load, and so on.
Using to Improve Viewer Experience
Using DHTML, one of the easiest ways to improve this experience is to have div elements toggle on and off to display content when it is requested. A div element defines logical divisions on your webpage. Think of a div as a box that may contain paragraphs, headings, links, images, and even other divs.
What You’ll Need
In order to create a div that can be toggled on and off, you need the following:
A link to control the div by turning it on and off when clicked.
The div to show and hide.
CSS to style the div hidden or visible.
JavaScript to perform the action.
The Controlling Link
The controlling link is the easiest part. Simply create a link as you would to another page. For now, leave the href attribute blank.
Place this anywhere on your webpage.
The Div to Show and Hide
Create the div element you want to show and hide. Make sure that your div has a unique id on it. In the example, the unique id is learn HTML.
This is the content column. It starts out blank except for this explanation text. Choose what you want to learn in the navigation column on the left. The text will appear below:
Learn HTML
The CSS to Show and Hide the Div
Create two classes for your CSS: one to hide the div and the other to show it. You have two options for this: display and visibility.
Display removes the div from the page flow, and visibility just changes how it’s seen. Some coders prefer display, but sometimes visibility makes sense, too. For example:
If you want to use visibility, then change these classes to:
Add the hidden class to your div so that it starts as hidden on the page:
JavaScript to Make It Work
All this script does is look at the current class set on your div and toggles it to unhidden if it’s marked as hidden or vice versa.
This is only a few lines of JavaScript. Place the following in the head of your HTML document (before the
What this script does, line by line:
To make the script work, you need to do one more thing. Go back to your link and add the javascript to the href attribute. Be sure to use the exact unique id that you named your div in this href:
Congratulations! You now have a div that will show and hide whenever you click on a link.
Possible Problems to Watch out For
This script is not fool-proof. There are some situations in which it could cause problems for you:
JavaScript Not Turned On. If your readers don’t have JavaScript or it’s turned off, this script won’t work. The hidden divs remain hidden no matter what your readers do. One way to fix this is to put the hidden divs in a noscript area, but you’ll have to play around with that to get them to display correctly.
You should always test Dynamic HTML like this with your customers. Once you feel confident that they can understand and use it, this can be a great way to get a large amount of content on your webpages without taking up a lot of visible space.