В чем разница между overflow: hidden и display: none

В чем разница между overflow: hidden и display: none?

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
14
0
22 897
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

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

Допустим, у вас есть div размером 100 x 100 пикселей.

Затем вы помещаете в него целую кучу текста, например, он переполняет div. Если вы используете overflow: hidden;, то текст, который умещается в 100x100, не будет отображаться и не повлияет на макет.

display: none совсем другой. Он отображает остальную часть страницы будто, если div все еще был виден. Даже если произойдет переполнение, это будет учтено. Он просто оставляет место для div, но не отображает его. Если заданы оба параметра: display: none; overflow: hidden;, то он не будет отображаться, текст не будет переполняться, и страница будет отображаться так, как если бы невидимый div все еще был там.

Чтобы div вообще не влиял на рендеринг, необходимо установить как display: none; overflow: hidden;, так и сделать что-то вроде установки height: 0;. Или с width, или с обоими, тогда страница будет отображаться так, как если бы div вообще не существовал.

display: none удаляет элемент со страницы, и поток страницы действует так, как будто его вообще нет.

overflow: hidden:

The CSS overflow: hidden property can be used to reveal more or less of an element based on the width of the browser window.

изображение? вы могли бы сказать элемент?

Liam 25.09.2008 15:25
Ответ принят как подходящий

Пример:

.oh
{
  height: 50px;
  width: 200px;
  overflow: hidden;
}

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

display: none; просто скроет блок.

Обратите внимание, что у вас также есть visibility: hidden;, который скрывает содержимое блока, но блок все еще будет в макете, перемещая объекты.

display: none означает, что рассматриваемый тег вообще не будет отображаться на странице (хотя вы все равно можете взаимодействовать с ним через dom). Для него не будет места между другими тегами. Скрытое переполнение означает, что тег отображается с определенной высотой, и любой текст и т. д., Который может привести к расширению тега для визуализации, не будет отображаться. Я думаю, вы хотите спросить о видимости: скрыто. Это означает, что в отличие от display none, тег не отображается, но для него выделяется место на странице. так например

<span>test</span> | <span>Appropriate style in this tag</span> | <span>test</span>

дисплей: ни один не будет:

тест |   | тестовое задание

видимость: скрытый будет:

тест |                   NB6SP66BSP666 тестовое задание

В режиме видимости: скрытый тег отображается, его просто не видно на странице.

Простой пример переполнения: скрытый http://www.w3schools.com/Css/tryit.asp?filename=trycss_pos_overflow_hidden

Если вы отредактируете CCS на этой странице, вы увидите разницу между атрибутами переполнения (visible | hidden | scroll | auto) - и если вы добавите display: none в css, вы увидите, что весь блок содержимого исчезает.

По сути, это способ управления макетом и «потоком» элементов - если вы разрешаете ввод данных пользователем (например, из поля CMS) для рендеринга в блоке фиксированного размера, вы можете настроить атрибут переполнения, чтобы блок не увеличивался в размере и, следовательно, нарушение макета страницы. (и наоборот, display: none предотвращает отображение элемента, и поэтому вся страница перенастраивается)

overflow: hidden - скрывает переполнение содержимого, в отличие от overflow: auto, которое показывает полосы прокрутки на div фиксированного размера, где его внутреннее содержимое больше, чем его размер

display: none - скрывает элемент и полностью не участвует в разметке контента

P.S. между ними нет разницы, они совершенно не связаны

По умолчанию элементы HTML имеют такую ​​высоту, которая требуется для размещения их содержимого.

Если вы зададите элементу HTML фиксированную высоту, он может быть недостаточно большим, чтобы вместить его содержимое. Так, например, если у вас есть абзац с фиксированной высотой и синим фоном:

<p>This is an example paragraph. It has some text in it to try and give it a reasonable height. In a separate style sheet, we’re going to give it a blue background and a fixed height. If we add overflow: hidden, we won’t see any text that extends beyond the fixed height of the paragraph. Until then, the text will “overflow” the paragraph, extending beyond the blue background.</p>

p {
    background-color: #ccf;
    height: 20px;
}

Текст в абзаце будет выходить за нижний край абзаца.

Свойство overflow позволяет изменить это поведение по умолчанию. Итак, если вы добавили overflow: hidden:

p {
    background-color: #ccf;
    height: 20px;
    overflow: hidden;
}

Тогда вы не увидите никакого текста за нижним краем абзаца. Он будет обрезан до фиксированной высоты абзаца.

display: none просто заставит весь абзац (визуально) исчезнуть, синий фон и все такое, как если бы он вообще не отображался в HTML.

Другие вопросы по теме