Как скрыть элемент в css
Перейти к содержимому

Как скрыть элемент в css

  • автор:

Как скрыть элемент?

1. С помощью display: none; . Элемент полностью исчезает с веб-страницы, не оставляя и следа.

2. Задав для элемента visibility: hidden; . Данный способ убирает элемент из вида, при этом не затрагивая поток html-документа, оставляя пустое пространство в том месте, где данный элемент должен был находиться.

3. С помощью свойства opacity . Значение opacity: 0; делает прозрачным весь элемент целиком, включая его содержимое, а не только фон элемента. Данный способ действует аналогично с visibility: hidden , отличие состоит лишь в том, что свойство opacity введено в спецификацию CSS3.

Для абсолютно позиционированных элементов visibility: hidden и display: none ведут себя одинаково.

Чтобы показать невидимый элемент, можно использовать псевдокласс :hover , например:

.submenu < display: none; >.submenu:hover

CSS-свойство, отвечающее только за видимость элементов — это свойство visibility . Оно принимает следующие значения:

visibility: visible; — элемент видимый по умолчанию;

visibility: hidden; — элемент становится невидимым, находясь при этом на своем месте. В то же время элементы-потомки невидимого элемента можно сделать видимыми, например:

p < visibility: hidden; >p strong

visibility: collapse; — данное свойство применяется для табличных элементов, делая ячейки таблицы невидимыми. Если это свойство используется для остальных элементов, то оно работает аналогично с visibility: hidden; ;

visibility: inherit; — наследует это свойство от родительского элемента.

Пять способов скрыть элементы в CSS

Есть несколько способов скрыть элемент в CSS. Вы можете скрыть его, установив opacity на 0 , visibility на hidden , display на none или установив крайние значения для абсолютного позиционирования.
Задумывались ли вы, почему у нас так много способов скрыть элемент, когда кажется, что все они делают одно и то же? Все эти методы на самом деле немного отличаются друг от друга, и это различие диктует, какой из них следует использовать в конкретной ситуации. В этом руководстве будут рассмотрены незначительные различия, которые необходимо учитывать при сокрытии элемента любым из перечисленных выше способов.

помутнение

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

.hide

Если вы намереваетесь использовать свойство opacity чтобы скрыть элемент от программ чтения с экрана — к сожалению, это невозможно. Элемент и весь его контент будут читаться программами чтения с экрана, как и все остальные элементы на веб-странице. Другими словами, элемент ведет себя так же, как если бы он был непрозрачным.

Следует также отметить, что свойство opacity можно анимировать и использовать для создания великолепных эффектов. Любой элемент с opacity меньше 1 также создаст новый контекст стека.

Взгляните на следующую демонстрацию:

Когда вы наводите курсор на скрытый второй блок, элемент плавно переходит из состояния полной прозрачности в состояние полностью непрозрачного. Блок также имеет cursor pointer чтобы показать, что с ним можно взаимодействовать.

видимость

Следующее свойство в нашем списке — visibility . Установка его hidden скрывает наш элемент. Как и свойство opacity , скрытый элемент будет по-прежнему влиять на макет нашей веб-страницы. Единственное отличие состоит в том, что на этот раз он не будет захватывать взаимодействие с пользователем, если он скрыт от пользователя. Кроме того, элемент также будет скрыт от программ чтения с экрана.

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

.hide

Эта демонстрация показывает, как visibility отличается от opacity :

Обратите внимание, что потомки элемента со hidden visibility все еще могут быть видимыми, если их свойство visibility явно установлено visible . Попробуйте навести курсор мыши только на скрытый элемент, а не на абзац внутри, вы увидите, что курсор не меняется на указатель. Более того, если вы попытаетесь нажать на элемент, ваши клики также не будут зарегистрированы.

Тег

внутри нашего прежнему будет захватывать все события мыши. Как только вы наводите курсор на текст, сам становится видимым и начинает регистрировать события.

дисплей

Свойство display скрывает элемент в истинном смысле слова. Если для параметра display значение none это гарантирует, что блочная модель не будет создана вообще. Используя это свойство, после скрытия элемента не остается пустого пространства. Не только это, но и любое прямое взаимодействие с пользователем будет невозможно, пока на display не установлено none . Более того, программы чтения с экрана также не будут читать содержимое элемента. Это как если бы элемент не существовал.

Все потомки нашего элемента тоже будут скрыты. Это свойство нельзя анимировать, поэтому переход между различными состояниями всегда будет резким.

Обратите внимание, что элемент по-прежнему доступен через DOM. Вы сможете манипулировать им, как и любым другим элементом.

.hide

Посмотрите на CSS этой демонстрации:

Вы увидите, что у второго блока есть абзац со свойством display установленным на block но этот абзац все еще невидим. Это еще одно различие между visibility: hidden и display: none . В первом случае любой потомок, который явно устанавливает visibility visible , станет видимым, но это не то, что происходит с display . Все потомки остаются скрытыми независимо от значения их собственного свойства отображения.

Теперь наведите несколько раз на первый блок в демоверсии. Готов завис? Нажмите на этот первый блок. Это должно сделать второй блок видимым. Число внутри теперь должно быть числом, отличным от нуля. Это связано с тем, что этот элемент, даже если он скрыт от пользователей, все же можно использовать с помощью JavaScript.

Позиция

Предположим, у вас есть элемент, с которым вы хотели бы взаимодействовать, но вы не хотите, чтобы он влиял на макет вашей веб-страницы. Никакое свойство до этого момента не может справиться с этой ситуацией должным образом. Единственное, что вы можете сделать в этой ситуации, это переместить элемент из области просмотра. Таким образом, это не повлияет на макет и все равно будет действовать. Вот CSS для этого:

.hide

Следующая демонстрация иллюстрирует, как абсолютное позиционирование скрывает элементы и работает так же, как и предыдущая демонстрация:

Основная идея здесь состоит в том, чтобы установить отрицательное верхнее и левое значения достаточно высоко, чтобы элемент больше не был виден на экране. Одно из преимуществ (или потенциального недостатка) этого метода заключается в том, что контент абсолютно позиционированного элемента может быть прочитан программами чтения с экрана. Это вполне понятно, потому что вы только переместили элемент из области просмотра, чтобы пользователи не могли его видеть.

Вы должны избегать использования этого метода, чтобы скрыть любые элементы, которые могут получить фокус, потому что это приводит к неожиданному переходу, когда пользователь фокусируется на этом элементе. Этот метод часто используется для создания пользовательских флажков или переключателей.

Clip-путь

Еще один способ скрыть элементы — это обрезать их. Раньше это можно было сделать с помощью свойства clip но оно устарело в пользу лучшего свойства, называемого clip-path . Нитиш Кумар недавно представил свойство clip-path здесь, в SitePoint, так что не стесняйтесь проверить его для более расширенного использования свойства!

Имейте в виду, что свойство clip-path используется ниже, еще не полностью поддерживается в IE или Edge . При использовании внешних файлов SVG для вашего clip-path , поддержка еще более ограничена (что не применимо ниже) . Свойство clip-path при использовании для скрытия элемента выглядит так:

.hide

Вот демонстрация, чтобы показать это в действии:

Если вы наведите курсор мыши на первый элемент, он все равно сможет воздействовать на второй элемент, даже если он скрыт через clip-path . Если вы щелкнете по элементу, он удалит скрытый класс, чтобы показать наш элемент, который был там все время. Этот текст по-прежнему читается программами чтения с экрана и является решением, используемым (наряду с clip ) на многих сайтах WordPress для чтения с экрана.

Даже если наш элемент больше не виден, элементы вокруг него ведут себя так, как если бы он имел свои первоначальные прямоугольные размеры. Имейте в виду, что взаимодействие с пользователем, например при наведении или щелчке, также невозможно за пределами области обрезки. В нашем случае это означает, что пользователи не смогут напрямую взаимодействовать со скрытым элементом. Кроме того, это свойство может быть анимировано различными способами для создания новых эффектов.

Вывод

В этом уроке мы рассмотрели пять различных способов скрытия элементов с помощью CSS. Каждый из них так или иначе отличается друг от друга. Знание того, чего вы хотите достичь, может помочь вам решить, какое свойство использовать, и со временем станет второстепенным для веб-разработчиков. Если у вас есть какие-либо вопросы относительно методов скрытия элементов, сообщите нам об этом в комментариях.

Руководство по сокрытию элементов в CSS

Мы изучим различные подходы к сокрытию элементов веб-страниц с помощью CSS и оценим их производительность.

Сокрытие элементов веб-сайта может быть полезно по разным причинам, например для защиты конфиденциальной информации, ограничения доступа к премиум-контенту или персонализации контента для определённых групп пользователей. Например, мы можем захотеть скрыть определённые рекламные акции или предложения от пользователей, которые уже совершили покупку, или персонализировать контент на основе географического местоположения пользователя или истории просмотров. Мы можем использовать CSS для выборочного сокрытия или отображения определённых элементов на основе пользовательских атрибутов.

Долгое время популярным методом сокрытия элементов было использование display: none , но теперь доступны более универсальные и анимируемые варианты. В этой статье мы рассмотрим шесть дополнительных свойств CSS, которые можно использовать для сокрытия элементов, и проанализируем каждый подход. Независимо от того, являетесь ли вы новичком или опытным разработчиком, это руководство предоставит вам рекомендации по сокрытию элементов на ваших веб-страницах.

Компромиссы, которые следует учитывать при использовании CSS для сокрытия элемента

Существует несколько способов скрыть элемент с помощью CSS, но они различаются тем, как влияют на макет, анимацию, обработку событий, производительность и доступность. Вот информация, о которой следует помнить, если вы планируете скрывать элементы на веб-странице:

  • Анимация: Некоторые CSS свойства можно анимировать в промежутках между состояниями; однако другие не могут быть анимированы и просто переходя от видимого к невидимому состоянию без постепенно затухания или другой анимации. Обратите внимание: у некоторых людей анимация может вызывать дискомфорт, мигрень, судороги или дезориентацию. В результате рекомендуется использовать медиа запрос prefers-reduced-motion , для отключения анимации, когда пользователи указали это предпочтение.
  • Обработка событий: Некоторые CSS свойства не позволяют запускать события для скрытого элемента. Другие не имеют такого эффекта, то есть можно кликнуть по невидимому элементу и вызвать событие.
  • Производительность: Многие из подходов, обсуждаемых в этой статье, могут негативно влиять на производительность веб-страниц, особенно те, которые влияют на макет, а не только на композицию. Это имеет смысл, если мы рассмотрим, как отображается веб-страница. После того как HTML DOM и объектная модель CSS загружены и проанализированы браузером, веб-страница проходит три этапа рендеринга:
    • Макет/Layout: определяются размер и положение каждого элемента.
    • Рисование/Paint: рисуются пиксели каждого элемента.
    • Композиция/Composition: слои элементов располагаются в правильном порядке.

    CSS свойство display

    CSS свойство display определяет, следует ли рассматривать элемент как block или inline элемент, а также устанавливает макет для его дочерних элементов, таких как flex или grid .

    Мы можем использовать свойство display со значением none , чтобы скрыть элемент и его потомков на веб-странице:

    .hide-element 
    display:none;
    >

    Установка display значения none для элемента полностью удаляет его из макета, создавая впечатление, что он не существует в документе. Это также относится к дочерним элементам.

    В приведённом ниже примере мы скрываем элемент div , и элемент button немедленно перемещается на прежнее место div . Мы видим, что div полностью удаляется из макета, когда для его свойства display установлено значение none :

    Анимация

    Невозможно анимировать свойство display напрямую, поскольку display принимает только определённые значения (например, block , inline , inline-block ) и не может быть преобразовано или анимировано, как другие свойства, принимающие числовые или цветовые значения.

    Триггер событий

    Когда элемент скрыт с помощью display: none , он удаляется из макета страницы, и браузер не выделяет этому элементу ни каких ресурсов. Это означает, что события не могут быть инициализированы для этого элемента.

    Производительность

    Установка свойству display элемента значения none может привести к перезагрузке макета или задержке рендеринга контента.

    Доступность

    Сокрытие элемента с помощью display: none исключает его из дерева доступности, желая недоступным для вспомогательных технологий. Следовательно, этот элемент и его дочерние элементы не будут прочитаны программами чтения с экрана.

    CSS свойство visibility

    .hide-element 
    visibility: hidden;
    >

    В приведённом ниже примере мы скрываем элемент div используя свойство visibility . Этот подход только визуально скрывает элемент, он не удаляется и документа и макет документа не изменяется:

    Анимация

    Свойство visibility можно анимировать, но результат выглядит ужасно и даёт резкий эффект. Это связано с тем, что свойство видимости имеет бинарное значение visible и hidden . При переходе между этими двумя состояниями элемент будет появляться или исчезать резко, без каких-либо промежуточных состояний.

    Триггер событий

    Когда элемент скрыт с использованием подхода visibility: hidden , он по-прежнему присутствует в DOM страницы и может получать такие события, как клики, наведение мыши или события клавиатуры. Однако поскольку элемент не виден, пользователю сложно с ним взаимодействовать.

    Производительность

    Установка для свойства элемента visibility значения hidden оказывает незначительное влияние на производительность, поскольку влияет только на визуальный рендеринг элемента, а не на его макет или размер.

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

    Доступность

    Когда элемент скрыт параметром visibility: hidden , он по-прежнему присутствует в HTML коде и по-прежнему доступен программам для чтения с экрана. Однако содержимое скрытого элемента не отображается на экране, что может вызвать проблемы у пользователей полагающихся на визуальные подсказки для навигации по странице.

    CSS свойства opacity и filter

    CSS свойство opacity определяет уровень прозрачности элемента, контролируя степень, в которой содержимое, расположенное за элементом, скрыто. opacity , по сути, обратно прозрачности.

    Мы можем добиться такого же эффекта с помощью свойства filter: opacity() , но, как правило, предпочтительнее использовать свойство opacity и использовать filter для других целей (например, для применения эффектов blur , contrast или grayscale к элементам). Выбор остаётся за вами.

    .hide-element 
    opacity: 0.3;
    // или
    opacity: 30%;

    // или
    filter: opacity(0.3);

    // или
    filter: blur(100px);
    >

    Значение свойства opacity представлено числом от 0.0 до 1.0 или процентом от 0% до 100% . Это означает непрозрачность канала или значение его альфа-канала. Значения за пределами этого диапазона по-прежнему приемлемы, но будут ограничены ближайшей границей указанного диапазона.

    opacity влияет на весь элемент, включая его содержимое. Это означает, что элемент и его дочерние элементы будут иметь одинаковый уровень opacity по отношению к фону элемента, независимо от их индивидуальных значений opacity по отношению друг к другу.

    Обратите внимание: Если используется значение opacity , отличное от 1 , для элемента создаётся новый контекст наложения.

    В приведённом ниже примере мы скрываем элемент div , используя свойство opacity :

    Анимация

    Любой элемент, скрытый с помощью свойства opacity , по-прежнему можно анимировать. Постепенно изменяя значение opacity от 1 (полностью видимый) до 0 (полностью прозрачный), элемент постепенно исчезнет и станет скрытым. Точно также, постепенно изменяя значение opacity от 0 до 1 , элемент постепенно проявится и станет видимым.

    Триггер событий

    Когда элемент скрыт с использованием подхода opacity , события по-прежнему могут запускаться для этого элемента. Это связано с тем, что элемент по-прежнему присутствует в документе и по-прежнему занимает место в макете, даже если он не виден.

    Производительность

    Скрытие элемент с помощью opacity не оказывает существенного влияния на производительность.

    Доступность

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

    CSS свойство clip-path

    CSS свойство clip-path позволяет определять конкретную область элемента, которая должна отображаться, скрывая остальные части. Область отсечения определяет, какая часть элемента видна, а части, выходящие за пределы области, скрыты от просмотра:

    .hide-element 
    clip-path: polygon(0 0, 0 0, 0 0, 0 0);

    //или

    clip-path: circle(0);
    >

    В приведённом выше коде свойство clip-path установлено на polygon с четырьмя точками, все из которых находятся в начале координат (0,0), эффективно скрывая элемент.

    В приведённом ниже примере мы скрываем элемент div , используя свойство clip-path , установленное на circle :

    Анимация

    Свойство clip-path может быть анимировано с использованием CSS анимации и переходов для создания интересных визуальных эффектов.

    Триггер событий

    События могут быть инициированы для элемента скрытого с помощью CSS свойства clip-path . Несмотря на то, что элемент невидим, он всё ещё существует в документе и может реагировать на такие события, как клики, наведение и нажатие клавиш.

    Производительность

    Использование clip-path для сокрытия элементов может повлиять на производительность, особенно когда свойство анимировано.

    Анимация свойства clip-path элемент требует, чтобы браузер пересчитывал макет и перерисовывал элемент для каждого кадра анимации. Это может быть очень ресурсоёмким процессом и привести к тому, что анимация будет прерывистой или запаздывающей на более медленных устройствах. Особенно если несколько элементов одновременно анимируются с помощью clip-path .

    Сокрытие элемента с помощью метода clip-path также может влиять на общий макет страницы; другие элементы веб-страницы могут смещаться или изменяться в размере по мере того, как обрезанные элементы скрываются или показываются. Это может привести к снижению качества и предсказуемости взаимодействия с пользователем.

    Доступность

    Когда контент скрыт с помощью clip-path , он по-прежнему присутствует в документе и может быть доступен для программ чтения с экрана и других вспомогательных технологий. Однако, если скрытый контент не помечен или не описан должным образом, пользователи с ослабленным зрением могут не знать о его наличии и могут упустить важную информацию или функции.

    CSS свойства height , width и overflow

    CSS свойства height , width и overflow могут использоваться для сокрытия элементов. Например, установка свойств height: 0, width: 0 и overflow: hidden для элемента эффективно скроют его от просмотра. Поскольку это указывает, что элемент не будет иметь видимой высоты или ширины, любое содержимое, превышающее эти размеры, будет скрыто.

    Установка для свойства overflow значения hidden гарантирует, что любой контент, превышающий размеры элемента, не будет виден — вместо этого он обрезается или скрывается из поля зрения:

    .hide-element 
    width:0;
    height:0;
    overflow:hidden;
    >

    Обратите внимание: Важно помнить, что другие CSS свойства, такие как padding , border и margin , по-прежнему могут влиять на макет и положение элемента.

    Когда height и width родительского элемента установлены равными 0 , а его overflow установлено в hidden — дочерние элементы будут скрыты и не будут занимать место на странице. Это связано с тем, что дочерние элементы содержатся внутри родительского элемента.

    Анимация

    Элемент, скрытый из-за того, что его height и width равны 0 , по-прежнему можно анимировать. Постепенно изменяя значения от 0 до желаемой ширины и высоты, элемент станет видимым и будет постепенно увеличиваться в размерах. Затем, уменьшая значения обратно до 0 , элемент будет постепенно уменьшаться и станет невидимым.

    Триггер событий

    События не могут быть запущены для элементов скрытых с использованием height , width и overflow .

    Производительность

    Использование height , width и overflow для сокрытия элементов может негативно сказаться на производительности веб-страницы, особенно если внутри скрытых элементов есть сложный и ресурсоёмкий контент.

    Доступность

    Когда элементы скрыты с использованием height , width и overflow , их содержимое всё ещё может быть прочитано программами чтения с экрана.

    CSS свойство transform

    CSS свойство transform имеет несколько функций, включая перемещение, масштабирование, вращение или наклон элемента. Элемент можно скрыть используя свойство transform , либо масштабируя его до 0 , либо переводя за пределы экрана, используя такие значения, как -999px для горизонтальной оси и 0px для вертикальной оси:

    .hide-element 
    transform: scale(0);

    // или

    transform: translate(-999px, 0);
    >

    Сокрытие элемент с помощью свойства transform: scale(0) аналогично подходу с height и width . Разница в том, что на свойство transform не влияют border , padding или margin , поэтому элемент полностью исчезнет с экрана.

    transform: translate() , с другой стороны, может использоваться для перемещения элемента как по горизонтальной, так и по вертикальной осям. Используя отрицательные значения с функцией translate , мы можем переместить элемент за пределы контейнера, эффективно скрыв его от просмотра. Мы можем добиться аналогичных результатов с помощью свойства position (будет описано далее в статье).

    Стоит отметить, что этот приём скрывая элемент, фактически не удаляет его со страницы и не меняет его положение в макете.

    В приведённом ниже примере мы скрываем div , используя свойство transform :

    Анимация

    Элемент, скрытый с помощью свойства transform , может быть анимирован. Свойство transform обеспечивает высокую производительность и аппаратное ускорение, поскольку оно позволяет перемещать элемент в отдельный слой, который можно анимировать как в 2D, так и в 3D. Этот подход не влияет на исходное пространство макета.

    Мы можем использовать CSS трансформации и анимации для создания плавных и постепенных изменений масштаба элемента, заставляя его растворяться или исчезать , или заставляя его появляться где-то за пределами веб-страницы.

    Триггер событий

    События не могут быть запущены для элементов скрытых с помощью подхода transform .

    Производительность

    Использование transform: scale() или transform: translate() для сокрытия элемента в небольшой степени отрицательно влияет на производительность, но в некоторых случаях это можно улучшить с помощью аппаратного ускорения.

    Доступность

    Когда элементы скрыты с помощью свойства transform , их содержимое по-прежнему может быть прочитано программами чтения с экрана.

    CSS свойство position

    CSS свойство position может использоваться для смещения элемента в макете веб-страницы с использованием значений top , bottom , left и right . Например, абсолютно позиционированный элемент можно переместить за пределы экрана, указав значение, например, left: -9999px :

    .hide-element 
    position: absolute;
    left: -9999px;
    >

    В приведённом ниже примере мы скрываем элемент div , используя свойство position :

    Анимация

    Элемент скрытый с помощью свойства position , может быть анимирован. Мы можем анимировать его значения его свойства top , left , right и bottom .

    Триггер событий

    Технически, события могут запускаться для элемента, скрытого с помощью подхода position , но это невозможно сделать, когда position элемента полностью смещена за пределы экрана.

    Производительность

    Использование position для сокрытия элементов может повлиять на производительность веб-страницы. Даже если элемент был смещён за пределы экрана, браузеры всё равно необходимо рассчитать макет и пространство для этого элемента, что приводит к ненужным расчётам рендеринга и макета. Если таким образом скрыть большое количество элементов веб-страницы, это может увеличить время загрузки страницы и сделает её менее отзывчивой.

    Доступность

    Когда элементы скрыты с помощью свойства position , их содержимое по-прежнему может быть прочитано программами чтения с экрана, даже если они были перемещены за пределы экрана.

    Заключение

    CSS предоставляет широкий спектр методов для сокрытия элементов на веб-странице. В этой статье мы рассмотрели шесть CSS-альтернатив традиционному display: none подходу. Хотя display: none по-прежнему является допустимым подходом к постоянному сокрытию содержимого, использование transform или opacity может быть лучшим выбором с точки зрения производительности.

    Может возникнуть соблазн использовать эти методы для создания интерактивных функций или удаления ненужного контента, но всегда важно учитывать влияние на пользовательский опыт и доступность. Следуя рекомендациям и тщательно тестируя свой код, вы можете убедиться, что ваш веб-сайт функционален и удобен для пользователя. Я надеюсь, что техники и советы, представленные в этом руководстве, помогут вам максимально эффективно использовать мощные возможности CSS для сокрытия элементов на веб-сайте.

    CSS: Свойства display и visibility

    CSS свойства display и visibility позволяют скрывать элементы (делать их невидимыми) и полностью убирать элементы из HTML разметки (в этом случае браузер игнорирует элемент, при построении разметки страницы).

    Блочные и строчные элементы

    Большинство элементов в CSS классифицируются как блочные ( block ) или строчные ( inline ), и это влияет на то, как эти элементы будут отображаться по умолчанию на веб-странице.

    Важно знать к какому типу относится элемент, так как не все CSS свойства работают с обоими типами элементов. Некоторые CSS свойства работают только с блочными элементами, другие только со строчными.

    CSS свойство display позволяет переопределить тип элемента, заданный по умолчанию. Что в свою очередь, позволят по необходимости изменять тип элемента со строчного на блочный или с блочного на строчный.

    Строчные элементы

    Элемент определённый как строчный, будет занимать только необходимое количество места на веб-странице (занимаемое место зависит от содержимого строчного элемента), кроме этого такие элементы:

    • игнорируют верхний и нижний внешний отступ, если он применен
    • игнорируют свойства height и width
    • могут быть выровнены с помощью свойства vertical-align

    Строчный элемент можно сделать блочным если установить для свойства display значение block или если сделать элемент плавающим. Плавающие элементы автоматически становятся блочными, то есть появляется возможность регулировать размер элемента и задавать внешние отступы.

    Блочные элементы

    Блочные элементы всегда начинаются с новой строки и занимают всю доступную ширину, если ширина для элемента не была установлена. Кроме этого блочные элементы:

    • могут иметь внешние и внутренние отступы
    • растягиваются по высоте под свое содержимое
    • не выравниваются свойством vertical-align

    Строчно-блочные элементы

    Строчно-блочное отображение элемента задается значением inline-block . В основном это способ сделать элемент строчным, но сохранить его «блочные» возможности: изменение высоты и ширины элемента, регулирование размеров внешних и внутренних отступов.

    Примечание: значение inline-block не поддерживается в IE7 и более ранних версиях.

    Скрытие элементов

    В CSS есть возможность временного или постоянного скрытия некоторых элементов веб-страницы. Стоит обратить внимание на то, что скрытые элементы не будут отображаться только на веб-странице, но их можно будет посмотреть в исходном коде HTML-документа. Для скрытия элементов используется или свойство display со значением none или свойство visibility со значением hidden :

    • display: none; — указание браузеру скрыть элемент, убрав его из общего потока элементов. В этом случае элемент, расположенный после скрытого элемента, будет смещаться вверх, занимая место скрытого элемента.
    • visibility: hidden; — указание браузеру скрыть элемент, зарезервировав под него место на веб-странице. В этом случае браузер только скрывает элемент, не удаляя его из общего потока, поэтому на месте скрытого элемента останется пустое пространство, совпадающее по размеру с размером скрытого элемента.
        Название документа h1.hidden < visibility: hidden; >h2.none 

    Это видимый заголовок

    Скрытый заголовок

    Скрытый заголовок2

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

    Копирование материалов с данного сайта возможно только с разрешения администрации сайта
    и при указании прямой активной ссылки на источник.
    2011 – 2024 © puzzleweb.ru | razumnikum.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *