Иногда фон моего родительского div показывает, и это сводит меня с ума.
Настройка: контейнерный div с 4x4 div внутри (давайте назовем их "external"; синийвд).Каждый из синих «внешних» -дивов содержит еще один div («внутренний»; зеленый bg).
Почему я так хочу: зеленый должен покрывать синий, потому что в конечном итоге зеленый исчезнет (через jQuery - щелкните), и появится синий (у него будет bg-изображение вместо только синего bg).
Проблема: даже если я пробовал разные подходы (см. ниже код), иногда синий bg покажет.
снимок экрана проблемы
Дело в том, что иногда.Если браузер увеличен до удобного коэффициента масштабирования, он будет отображаться точно так, как задумано: зеленый покрывает синий на 100%.Однако, если браузер считает, что это неудобный коэффициент увеличения, синий bg просвечивает.Это также зависит от браузера.Если вы посмотрите приведенный ниже пример кода в Firefox, а не в Chrome, Opera или Edge, вы можете даже не увидеть эту ошибку (я не проверял ее в Safari).
Вопрос: Как я могуубедитесь, что зеленый будет последовательно покрывать синий, независимо от коэффициента увеличения (или браузера)?
css:
<style>
#outer-container {
width: 600px;
/* height: 600px; */
display: flex;
flex-flow: row wrap;
}
.outer-box {
width: 150px;
height: 150px;
background-color: blue;
border: 1px solid black;
box-sizing: border-box;
}
.inner-box {
width: 100%;
height: 100%;
background-color: green;
}
</style>
html:
<div id="outer-container">
<div class="outer-box" id="outer-box01">
<div class="inner-box"></div>
</div>
<div class="outer-box" id="outer-box02">
<div class="inner-box"></div>
</div>
<div class="outer-box" id="outer-box03">
<div class="inner-box"></div>
</div>
<!-- there are 16 outer-divs in total (see codepen) -->
</div>
codepen-link
Дополнительная информация: Если я открываю этот кодовый блок с помощью firefox, он ведет себя так, как задумано, а не в chrome или edge.Если я открываю код Visual Studio в Firefox, я получаю тот же фон-показ-отображение-сбой (?) (В зависимости от коэффициента масштабирования).
Я пробовал float, flexbox и grid (см. Codepen);Я использовал высоту / ширину в пикселях, высоту: 100%, растянуть (flexbox);pos: rel на внешнем и pos: abs, верхний, правый, нижний, левый: 0 на внутреннем;display: block не поможет, потому что div уже является блок-элементом (просто чтобы убедиться, что я назначил его вручную в любом случае);Я использую box-sizing: border-box - и у меня заканчиваются идеи.Да, когда я назначаю границу внутренним элементам div, внешний bg не отображается;но это внешние div-ы, которые должны иметь границу, потому что как только зеленый щелчок щелкнет, граница должна все еще быть.
Заранее спасибо за любые предложения!