div#b
более конкретно, чем #b
, потому что у вас есть селектор элемента.Первый селектор определяет, какой тип элемента искать, тогда как второй говорит, что это не имеет значения, пока он выбирает этот идентификатор.
div#b
означает
Найти только div
с идентификатором b
.
, тогда как #b
означает
Найти любой элемент с идентификатором b
.
Следовательно, в силу специфики первое правило переопределяет второе правило.
Я не понимаю, что вы имеете в виду, когда #b
появляется внутри #a
, для меня это выглядит прекрасно, как вашеHTML структурирован.С другой стороны, у вас нет никаких правил CSS для #a
, поэтому есть только цвет фона для #b
.
EDIT: , если вы хотите, чтобы окно отображалосьвнутри другого блока добавьте к внешнему блоку отступы и, конечно, цвет фона:
#a {
background-color: yellow;
padding: 1em;
}