Как я понимаю вопрос, вы задаетесь вопросом, когда элемент без стиля примет стиль, определенный в таблице стилей браузера, по сравнению с тем, когда он примет стиль своего родителя. На самом деле это вопрос специфичности, а не наследования. Возьмите этот слишком очевидный и упрощенный пример:
Лист браузера
a { color: blue }
Страница автора
div { color: green }
HTML
<div><a href="#">This is a link</a></div>
Как и следовало ожидать, ссылка будет синей, а не зеленой, потому что правило браузера более конкретное. Это не имеет ничего общего с наследованием, потому что ссылка никогда не имеет возможности наследовать. Приоритет для потоков стиля элемента:
- встроенный стиль; Вы не можете получить более конкретную информацию, чем эта, и это превосходит все (возможное исключение, если! важный существует в соответствующем правиле)
- Самый специфический селектор (расположен где угодно); будет применен селектор с наивысшей специфичностью, независимо от того, где он находится в структуре наследования, как описано Робом Алленом в этой теме
- Селектор, который был применен последним, затем анализирует дерево наследования (теги стилей в документе => авторский лист => пользовательский лист => лист браузера; обратите внимание, что в некоторых случаях пользовательский лист может отменять авторский лист, но обычно автор окончательный)
- Стиль родителя для свойства (или, если у родителя нет требуемого свойства, в DOM); очевидно не все свойства наследуются
Основная причина того, что стили браузера не препятствуют наследованию родительских стилей, заключается в том, что стили браузера, как правило, очень разрежены и определяют такие вещи, как цвет, размер шрифта и т. Д. Настолько высоко, насколько это возможно, в дереве DOM, чтобы сделать их проще. переопределить. Если бы у вас был браузер, который определил, скажем, цвет для элементов span, то вы могли бы столкнуться с проблемами, пытаясь получить универсальный цвет div для наследования.