0

Что означает символ тильда (~) в CSS

13

Описание проблемы

Я столкнулся с проблемой в CSS, когда пытаюсь понять, что означает селектор ~ (тильда/волнистая линия) в следующем примере:

#img1:hover ~ #img2 {
    opacity: 0;
}

При использовании этого селектора в Visual Studio я получаю ошибку 'неожиданная последовательность символов'. Можете ли вы объяснить, что именно делает этот селектор и как правильно его использовать? Также интересно, почему возникает указанная ошибка.

Заранее спасибо за помощь!

2 ответ(ов)

0

8.3.2. Комбиниратор общих соседей

Комбиниратор общих соседей обозначается символом "тильда" (U+007E, ~), который разделяет две последовательности простых селекторов. Элементы, представляемые этими двумя последовательностями, имеют одного и того же родителя в дереве документа, и элемент, представленный первой последовательностью, предшествует (не обязательно мгновенно) элементу, представленному второй последовательностью.

Пример

h1 ~ pre

сопоставляется с <pre> вот здесь:

<h1>Определение функции a</h1>
<p>Функция a(x) должна применяться ко всем фигурам в таблице.</p>
<pre>function a(x) = 12x/13.5</pre>

Также существует селектор + для комбинирования соседей, находящихся рядом: с h1 + pre тег <pre> должен находиться сразу после <h1>.

0

Селектор, который вы используете, применяет стиль ко всем элементам, соответствующим второму селектору, если они идут после элементов, соответствующих первому селектору. Например, в представленном HTML и CSS:

hr ~ p {
    font-weight: bold;
}
<p>Строка один</p>
<hr />
<p>Строка два</p>
<p>Строка три</p>

только <p>Строка два</p> и <p>Строка три</p> будут отображаться полужирным шрифтом. Что касается вашего примера, то, вероятно, Visual Studio имеет проблемы с интерпретацией модификатора :hover, так как это не является настоящим элементом. Если вы уберете его из правила, функциональность может восстановиться.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь