Код: Выделить всё
div.inside
{
background-color: green;
width : 100%;
height : 100%;
/* the magic happens here */
&:has(div.inside-text:empty)
{
display : none;
}
}
Я обнаружил, что если добавить следующее, это работает.
Код: Выделить всё
/* why is this part needed for iOS/iPadOS? */
&:has(div.inside-text)
{
display : block;
}
Приведенный здесь пример кода скрывает внутренний элемент div, если установлен флажок (который, в свою очередь, устанавливает для внутреннего HTML внутреннего текста значение ""). Без раздела с display:block; тогда внутренний элемент div не скрывается, когда внутренний элемент div пуст.
Код: Выделить всё
const checkBox1 = document.getElementById("checkbox");
const insideDiv = document.getElementById("inside-text");
checkBox1.addEventListener("change", function(){
if (this.checked) {
insideDiv.innerHTML = "";
} else {
insideDiv.innerHTML = "Text in here";
}
});Код: Выделить всё
body
{
background-color: gray;
}
div.container
{
background-color: white;
position : fixed;
top : 50%;
left : 50%;
width : 50%;
height : 50%;
transform: translate(-50%, -50%);
border : 1px black solid;
will-change : transform;
}
div.inside
{
background-color: green;
width : 100%;
height : 100%;
&:has(div.inside-text:empty)
{
display : none;
}
/* why is this part needed for iOS/iPadOS? */
&:has(div.inside-text)
{
display : block;
}
}
div.inside div.inside-text
{
background-color: pink;
}Код: Выделить всё
Test
Hide text in bottom div. (White if checked.)
Text in here
Подробнее здесь: https://stackoverflow.com/questions/798 ... ios-ipados
Мобильная версия