@ekzotika

Можно ли задать отступы блоку относительно его заголовка?

Можно ли задать отступы блоку относительно его заголовка? Нужно, если заголовок h2, задавать margin сверху и снизу - 1,5 высоты заголовка, а если h3 - 1
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
@strelok011
Дам немного развернутый ответ, почему это не возможно.
Прежде всего - почему стили именно каскадные? Каскад - это цепочка зависимостей, определяющих, на что данный стиль повлияет.
Пример:
a {color: "red"}
h1 a {color: "green"}
h1+a {color: "yellow"}

первый стиль говорит - "все теги А будут красного цвета"
второй стиль уточняет - "а теги А, лежащие в теге H1 будет зелеными"
третий стиль добавляет еще правило "теги А, находящиеся СРАЗУ ПОСЛЕ тега H1 будут желтыми"
При этом чем больше уточняющих узлов (на самом деле есть еще нюансы, но это отдельный разговор) в каскаде стиля, тем он будет более весомый.
Уточняющие стили будут перекрывать значение первого общего стиля.
Как же работает браузер?
К примеру есть такой стиль
div h1 span a {color: "blue"}
Это каскад, говорящий что тэг А, находящийся во вложенной структуре вида div>h1>span>a и только такой будет синего цвета.
Так вот браузер начинает разбирать такой стиль начиная с правого! края. Соответственно он в начале собирает коллекцию всех тегов А и потом начинает отсеивать не подпадающие под описание в стиле варианты. Сначала оставит только те тэги, которые вложены в тег SPAN, затем по цепочке пройдет до самого начал.
Этот алгоритм парсинга и сообщает, что нельзя прописывать условие для элемента опираясь на его вложение.
Можно написать стиль для элементов, которые идут следом за каким-либо определенным.
h1~p {color: "orange"}
раскрасит текст во всех тегах p, идущих следом после h1 (причем могут идти не подряд) но только в рамках общего родительского контейнера.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы