@inherits LayoutComponentBase @* Header, main and footer are plain block children of , which is the page's scroll root. The header is position:sticky and, because it is NOT a flex/grid child (a stretched flex item never sticks -- it fills its cell and unsticks immediately), it pins to the top and stays there while the page scrolls. The footer is kept at the bottom on short pages by a min-height on
, not by a flex wrapper -- see MainLayout.razor.css. *@ @* Skip link: the first stop for the Tab key, straight past the menu to the content. The href carries the current path because of in App.razor: a bare "#main" would resolve to "/#main" and lead every subpage back home. data-enhance-nav="false" leaves the jump to the browser: blazor.web.js would otherwise take the click, only scroll to
and keep the focus on the link, so the next Tab would land in the header menu again. *@ @* The skip link's target. tabindex="-1" makes it focusable by the link alone (not by Tab), so after the jump the next Tab continues inside the content. *@
@Body