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

· HTML & CSS, JavaScript и Блог · 5 мин чтения

Есть множество вариантов того, как можно скрыть ненужные элементы в HTML. Мы рассмотрим в этой статье как это можно сделать с помощью CSS, JavaScript или jQuery. Если у вас есть еще какие-нибудь варианты — то пишите их в комментарии.

CSS

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

Спрятать по имени класса (class)

HTML пример

<div class="sidebar">
этот блок нужно спрятать
</div>

CSS пример

.sidebar {display: none;}

Код выше скроет все элементы на странице с <div class="sidebar"></div>.

Спрятать по id

HTML пример

<div id="sidebar">
этот блок нужно спрятать
</div>

CSS пример

#sidebar {display: none;}

Код выше скроет все элементы на странице с <div id="sidebar"></div>.

Спрятать по другим атрибутам

В случае, если у вас нет id или class у элемента, то его все равно можно скрыть. Альтернативно можно использовать другие атрибуты, как показано в примере ниже.

HTML пример

<div class="container">
     <div></div>
     <div></div>
     <div></div>
     <div data-id="hello-world"></div>
     <a href="http://bologer.ru" data-url data-where="http://bologer.ru">Ссылка</a>
</div>

CSS пример

.container div:nth-child(2) {display: none}
.container div:nth-child(3) {display: none}
div[data-id="hello-world"] {display: none}

a[href="http://bologer.ru"] {display: none}
a[data-url] {display: none}

.container div:nth-child(2) спрячет второй div внутри блока .container.

div[data-id="hello-world"] спрячет все div элементы со страницы, у которых есть data-id атрибуты со значением "hello-world", если указать так [data-id="hello-world"], то это будет скрыты не только div элементы, но уже все элементы будут проверены на наличие такого атрибута и значения.

Вы так же можете убрать элемент другими свойствами CSS, например:

.sidebar {
    display: none;
    opacity: 0; 
    z-index: -999;
    visibility: hidden;
    width: 0;
    height: 0;
    position: absolute; 
    left: -9999;
    top: -9999;
}

Описание CSS свойств из примера выше

opacity: 0  — устанавливает прозрачность до 0, тем самым элемент совсем не будет показан на странице, чтобы снова показать нужно установить 0.1 (10% видимости элемента), 0.2, … 1.

z-index: -999  — устанавливает расположение слоя. Чем выше цифра, тем элемент, который вы хотите спрятать будет находиться выше других слоев. Например, если у слоя .sidebar стоит z-index: 999, а у .container стоит z-index: 100, то даже если поставить эти слои друг на друга, .sidebar все равно будет отображаться выше .container, так как index у него стоит выше.

visibility: hidden — схожее свойство с display: none

width: 0;height: 0; — если их поставить к нулю, то у вашего элемента высота и ширина будет равно 0, тем самым он вообще не будет показывать на экране.

position: absolute; left: -9999; top: -9999 — в данном случае, элемент переместиться за пределы экрана пользователя, тем самым не будет виден на странице

jQuery

Элементы на странице так же можно скрыть при помощи jQuery. Вы должны сначала установить библиотеку jQuery, прежде чем начать пользоваться ее функциями.

Обращаться к элементам можно таким же образом, как и в CSS. Проблема CSS в том, что с его помощью можно только прятать элементы.

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

Удалить элемент с помощью класса (class)

Скрипт ниже удалить все элементы со страницы с классом sidebar.

HTML пример

<div class="sidebar">Текст</div>

jQuery пример

<script>
$(function() {
    $(document).ready(function() {
        $('.sidebar').remove();
    });
});
</script>

Удалить элемент с помощью id

Скрипт ниже удалить элемент со страницы с id sidebar.

HTML пример

<div id="sidebar">Текст</div>

jQuery пример

<script>
$(function() {
    $(document).ready(function() {
        $('#sidebar').remove();
    });
});
</script>

Удалить элемент по атрибуту

Пример ниже удалит все ссылки с сайта с атрибутом data-url .

<script>
$(function() {
    $(document).ready(function() {
        $('a[data-url]').remove();
    });
});
</script>

Таким образом можно удалить все что угодно на странице.

JavaScript

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

Удалить элемент с помощью class

HTML пример

<div class="sidebar">Текст</div>

JavaScript пример

<script> 
    document.getElementsByClassName('sidebar')[0].remove()
</script

Привет выше удалить первый найденный .sidebar элемент со страницы. getElementsByClassName()возвращает массив, поэтому нам нужно использовать индекс [0], чтобы удалить первую позицию из него.

Таким же образом, нам можно пройтись циклов по массиву и удалить все элементы с классом .sidebar:

var els = document.getElementsByClassName('sidebar');
var elsLength = els.length;
for(var i = 0; i < elsLength; i++) {
    els[i].remove();
}

Удалить элемент с помощью id

HTML пример

<div id="sidebar"></div>

JavaScript пример

<script> 
    document.getElementById('sidebar').remove()
</script>

Пример выше удалит элемент с id именем sidebar.

Удалить элемент по атрибуту

HTML пример

<a href="http://bologer.ru/" data-url="yeah">Ссылка</a>

JavaScript пример

<script> 
    document.querySelectorAll('[data-url=yeah]')[0].remove();
</script>

Пример выше удалит первый найденный элементы на странице с атрибутом data-url, который равен значению yeah.

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

var els = document.querySelectorAll('[data-url=yeah]');
var elsLength = els.length;
for(var i = 0; i < elsLength; i++) {
    els[i].remove();
}

Вывод

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

Если у вас остались какие-нибудь вопросы, пишите их в комментарии.