Ну если считать, что Windows 95 стала завершающей стадией "поглощения" MSDOS путём переписывания/переноса большей части кода в защищённый режем, то да. Просто в Windows 95 пользователя избавили от необходимости каждый раз руками набирать win.com :-) Он кстати сохранился там. После прочтения вышеупомянутой книги я много экпериментировал с Win 95. Благо в книге было достаточно практических примеров. Там можно было легко получить систему без графической оболочки. Это был DOS в защищённом режиме с полным комплектом возможностей 95-ки. Например была возможность работы с длинными именами файлов. Всё это я "запихивал" на дискету 1.44 Мб, чем очень удивлял преподавателя на практических занятиях, который уверял, что в DOS невозможно получить поддержку длинных имён файлов, потому что это прерогатива именно Win 95 :-)
Эндрю Шульман: "Недокументированная Windows 95". Книга, вышедшая примерно в то же время, что и сама Windows 95. Зачитывал её до дыр. До сих пор стоит на полке. Там очень технически подробно всё это описано. И да, именно с 32-битового доступа к диску всё начиналось. Чёткой грани между оболочкой и полноценной операционкой нет. Windows 95 шла к этому постепенно, начиная с 3.x. Многие подсистемы постепенно переносились в защищённый режим, заменяя куски MSDOS своими собственными драйверами. Собственно уже в тот момент, когда "оболочка" переводила DOS в защищённый режим, всё становилось с ног на голову и DOS находился c этого момента в slave-режиме. Все аппаратные прерывания шли сначала через драйвер защищённого режима и только сам драйвер решал, обрабатывать прерывание самому или передать его в старый код MSDOS.
У меня такая была в прошлой машине. Утром в мороз и снег, когда все скребут лобовые стёкла, стоя на морозе, ты гордо подходишь к машине, садишься и один раз махнув щетками уезжаешь всем на зависть :-) Машина была уже старая, но продавать было жалко именно из-за Вебасто :-(.
Потому что писать UI на C++, например в Qt — дорого, глючно (шаг влево, шаг вправо и получаем либо segfault, либо RCE-уязвимость), специалистов трудно найти.
Соглашусь что "дорого", но не соглашусь, что "глючно". А специалистов найти трудно, потому как все дружно ломанулись в этот пресловутый HTML/CSS. Порог вхождения довольно низкий, зато результат быстрый. А качество ... да фиг с ним с этим качеством.
p.s. Я лучше соглашусь на segfault в однородной среде типа С++/ Qt, чем буду день выискивать ошибку в этом диком месиве клиент-серверных технологий а-ля Blazor, C#, JavaScript, HTML, CSS. Я уже забыл что такое нормальный, человеческий стек вызова в программе, после того как перешел на все эти "модные" технологии :-(
Просто было в 90-е с Netscape Navigator :-) Такие богатые вызальными эффектами страницы, которые сейчас существуют, простыми инструментами не получить.
Ваша "универсальность" сводится к слишком узкому пониманию того, как реализованы и работают очень богатые возможности grid и flexbox. По сути вы свели не "нет" всё то, что вам предлагает такая богатая технология. А по поводу карандаша ... У нас в команде таких "художников" рисовать карандашом столько, что голова кругом идет. Постоянно приходиться бить по рукам. На форме от силы 5 - 6 элементов ввода, а её layout содержит столько же, а иногда даже больше div контейнеров с о стилем display:grid; вложенных друг в друга чуть линао 4-ре уровня в глубину (!) Это же тихий ужас!
p.s. Если для Вас первая строка в приведённом мной примере вызывает сложность, я бы советовал подучить сначала мат. часть :-) Там вообще-то базовые вещи. Без них Вам будет в дальнейшем сложно.
Тот лайоут, что Вы повторили с помощью grid, можно упростить до использования одного единственного <div style="display: grid; и не "городить" ещё один вложенный grid.
Логика "проста". Overflow параметр всего лишь необходимое условие, но никак недостаточное. Вы поймите, что если Вы в некий блок натолкали каких-элементов и не зафиксировали явно или неявно размер этого блока, то его результирующий размер - это сумма всех размеров его елементов (children).
Если у блока с overflow его родитель сам не имеет overflow, то результирующий размер родителя - это опять же сумма всех размеров его елементов (children). Естественно ваш блок не получит скроллбар, т.к. в родителе он получил достаточное пространство для отображения всего своего контента. Поэтому скроллбар возможно появится у другого parent или grand parent вверх по иерархии, пока для этого не появятся соответствующие уловия.
И так будет всегда, пока всё это дело не "упрётся" в body, который конечно же физически ограничен размерами клиентской области окна и как результат - вы видите скроллбар у всего докуметна.
Ну если считать, что Windows 95 стала завершающей стадией "поглощения" MSDOS путём переписывания/переноса большей части кода в защищённый режем, то да. Просто в Windows 95 пользователя избавили от необходимости каждый раз руками набирать win.com :-) Он кстати сохранился там. После прочтения вышеупомянутой книги я много экпериментировал с Win 95. Благо в книге было достаточно практических примеров. Там можно было легко получить систему без графической оболочки. Это был DOS в защищённом режиме с полным комплектом возможностей 95-ки. Например была возможность работы с длинными именами файлов. Всё это я "запихивал" на дискету 1.44 Мб, чем очень удивлял преподавателя на практических занятиях, который уверял, что в DOS невозможно получить поддержку длинных имён файлов, потому что это прерогатива именно Win 95 :-)
Эндрю Шульман: "Недокументированная Windows 95". Книга, вышедшая примерно в то же время, что и сама Windows 95. Зачитывал её до дыр. До сих пор стоит на полке. Там очень технически подробно всё это описано. И да, именно с 32-битового доступа к диску всё начиналось. Чёткой грани между оболочкой и полноценной операционкой нет. Windows 95 шла к этому постепенно, начиная с 3.x. Многие подсистемы постепенно переносились в защищённый режим, заменяя куски MSDOS своими собственными драйверами. Собственно уже в тот момент, когда "оболочка" переводила DOS в защищённый режим, всё становилось с ног на голову и DOS находился c этого момента в slave-режиме. Все аппаратные прерывания шли сначала через драйвер защищённого режима и только сам драйвер решал, обрабатывать прерывание самому или передать его в старый код MSDOS.
https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setthreadexecutionstate
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED | ES_AWAYMODE_REQUIRED);
На ваши "открытые уроки" записываться не буду. Не надейтесь!
p.s. Лучше бы показали как сами таблицы парсинга строятся.
Есть хорошее видео про вышепреведённую автором формулу:
https://www.youtube.com/watch?v=47DH_diz884
Хурму что-ли никогда не видели? :-)
У меня такая была в прошлой машине. Утром в мороз и снег, когда все скребут лобовые стёкла, стоя на морозе, ты гордо подходишь к машине, садишься и один раз махнув щетками уезжаешь всем на зависть :-) Машина была уже старая, но продавать было жалко именно из-за Вебасто :-(.
И тремя коленками минимум. У меня дисонанс, кгода я на её ноги смотрю. :-)
Если у Вас OEM лицензия, то да. Похоже это здесь и обсуждается.
Соглашусь что "дорого", но не соглашусь, что "глючно". А специалистов найти трудно, потому как все дружно ломанулись в этот пресловутый HTML/CSS. Порог вхождения довольно низкий, зато результат быстрый. А качество ... да фиг с ним с этим качеством.
p.s. Я лучше соглашусь на segfault в однородной среде типа С++/ Qt, чем буду день выискивать ошибку в этом диком месиве клиент-серверных технологий а-ля Blazor, C#, JavaScript, HTML, CSS. Я уже забыл что такое нормальный, человеческий стек вызова в программе, после того как перешел на все эти "модные" технологии :-(
Главное про "грабить караваны" не забыть :-)
Sphinx Search вам в помощь.
"Сколько звездЕй на небе!
Не звездей, а звездов!
Чего вы спорите! Таких словов не бывает!"
20-тиричная система же! Карл!
Просто было в 90-е с Netscape Navigator :-) Такие богатые вызальными эффектами страницы, которые сейчас существуют, простыми инструментами не получить.
Ваша "универсальность" сводится к слишком узкому пониманию того, как реализованы и работают очень богатые возможности grid и flexbox. По сути вы свели не "нет" всё то, что вам предлагает такая богатая технология.
А по поводу карандаша ... У нас в команде таких "художников" рисовать карандашом столько, что голова кругом идет. Постоянно приходиться бить по рукам. На форме от силы 5 - 6 элементов ввода, а её layout содержит столько же, а иногда даже больше div контейнеров с о стилем display:grid; вложенных друг в друга чуть линао 4-ре уровня в глубину (!) Это же тихий ужас!
p.s. Если для Вас первая строка в приведённом мной примере вызывает сложность, я бы советовал подучить сначала мат. часть :-) Там вообще-то базовые вещи. Без них Вам будет в дальнейшем сложно.
Это не особенности, это стандартно реализованное поведение.
Тот лайоут, что Вы повторили с помощью grid, можно упростить до использования одного единственного
<div style="display: grid;и не "городить" ещё один вложенный grid.Если мы рассматриваем только css-стиль overflow, то Grid и Flex в этом контексте совершенно "одинаковы".
Логика "проста". Overflow параметр всего лишь необходимое условие, но никак недостаточное. Вы поймите, что если Вы в некий блок натолкали каких-элементов и не зафиксировали явно или неявно размер этого блока, то его результирующий размер - это сумма всех размеров его елементов (children).
Если у блока с overflow его родитель сам не имеет overflow, то результирующий размер родителя - это опять же сумма всех размеров его елементов (children). Естественно ваш блок не получит скроллбар, т.к. в родителе он получил достаточное пространство для отображения всего своего контента. Поэтому скроллбар возможно появится у другого parent или grand parent вверх по иерархии, пока для этого не появятся соответствующие уловия.
И так будет всегда, пока всё это дело не "упрётся" в body, который конечно же физически ограничен размерами клиентской области окна и как результат - вы видите скроллбар у всего докуметна.