IE 11 中的 Blazor(服务器端)边栏兼容性问题
Blazor (Server-Side) Sidebar Compatability Issues in IE 11
我最近一直在使用 Blazor Apps(服务器端)并注意到 IE 11 支持需要 Polyfill 来实现某些不受支持的功能。
虽然我已经应用了必要的依赖项来完成这项工作,但我在 IE 11 上的侧边栏的行为方式与其他浏览器(Edge、Chrome、Firefox)截然不同。
当我滚动 "main" 内容时,边栏向上移动并在页面的其余部分留下一个巨大的空白 space。
有人遇到过这种情况吗? (注意:没有更改有关前端的任何代码...)
Update:
<div class="sidebar">
<div class="top-row pl-4 navbar navbar-dark">
<a class="navbar-brand" href="">
<img src="../images/hightide-logo.png" width="80" height="60" class="d-inline-block align-top" alt="" style="margin-top: -5px">
</a>
<button class="navbar-toggler" @onclick="ToggleNavMenu">
<span class="navbar-toggler-icon"></span>
</button>
</div>
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
<ul class="nav flex-column">
<li class="nav-item px-3">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="oi oi-home" aria-hidden="true"></span> Home
</NavLink>
</li>
<li class="nav-item px-3">
<NavLink class="nav-link" href="contact-us">
<span class="material-icons">email</span> Contact us
</NavLink>
</li>
</ul>
</div>
</div>
<div class="main">
<div class="top-row px-4 auth">
<LoginDisplay />
</div>
<div class="content px-4 mt-2">
@Body
</div>
<LayoutFooter>
<!-- Footer Goes Here -->
</LayoutFooter>
</div>
.sidebar {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.sidebar .top-row {
background-color: #f4f5f7;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}
.sidebar .navbar-brand {
font-size: 1.1rem;
}
.sidebar .oi, .sidebar .material-icons {
width: 2rem;
font-size: 1.1rem;
vertical-align: text-top;
top: -2px;
}
.sidebar .nav-item {
font-size: 0.9rem;
padding-bottom: 0.5rem;
}
.sidebar .nav-item:first-of-type {
padding-top: 1rem;
}
.sidebar .nav-item:last-of-type {
padding-bottom: 1rem;
}
.sidebar .nav-item a {
color: #d7d7d7;
border-radius: 4px;
height: 3rem;
display: flex;
align-items: center;
line-height: 3rem;
}
.sidebar .nav-item a.active {
background-color: rgba(255,255,255,0.25);
color: white;
}
.sidebar .nav-item a:hover {
background-color: rgba(255,255,255,0.1);
color: white;
}
当滚动出现时,网页看起来像 this。如果这是问题所在,让侧边栏覆盖其余高度。您可以如下更改侧边栏 CSS 样式(设置 底部 属性):
.sidebar {
width: 250px;
position: sticky;
top: 0px;
bottom: 0px;
}
[注意] 你也应该在 site.css[=29= 中更改 .sidebar
css 样式]文件,对于media query中的.sidebar
CSS样式,也需要去掉高度属性,像这样:
然后,输出像这样。
我最近一直在使用 Blazor Apps(服务器端)并注意到 IE 11 支持需要 Polyfill 来实现某些不受支持的功能。
虽然我已经应用了必要的依赖项来完成这项工作,但我在 IE 11 上的侧边栏的行为方式与其他浏览器(Edge、Chrome、Firefox)截然不同。
当我滚动 "main" 内容时,边栏向上移动并在页面的其余部分留下一个巨大的空白 space。
有人遇到过这种情况吗? (注意:没有更改有关前端的任何代码...)
Update:
<div class="sidebar">
<div class="top-row pl-4 navbar navbar-dark">
<a class="navbar-brand" href="">
<img src="../images/hightide-logo.png" width="80" height="60" class="d-inline-block align-top" alt="" style="margin-top: -5px">
</a>
<button class="navbar-toggler" @onclick="ToggleNavMenu">
<span class="navbar-toggler-icon"></span>
</button>
</div>
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
<ul class="nav flex-column">
<li class="nav-item px-3">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="oi oi-home" aria-hidden="true"></span> Home
</NavLink>
</li>
<li class="nav-item px-3">
<NavLink class="nav-link" href="contact-us">
<span class="material-icons">email</span> Contact us
</NavLink>
</li>
</ul>
</div>
</div>
<div class="main">
<div class="top-row px-4 auth">
<LoginDisplay />
</div>
<div class="content px-4 mt-2">
@Body
</div>
<LayoutFooter>
<!-- Footer Goes Here -->
</LayoutFooter>
</div>
.sidebar {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.sidebar .top-row {
background-color: #f4f5f7;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}
.sidebar .navbar-brand {
font-size: 1.1rem;
}
.sidebar .oi, .sidebar .material-icons {
width: 2rem;
font-size: 1.1rem;
vertical-align: text-top;
top: -2px;
}
.sidebar .nav-item {
font-size: 0.9rem;
padding-bottom: 0.5rem;
}
.sidebar .nav-item:first-of-type {
padding-top: 1rem;
}
.sidebar .nav-item:last-of-type {
padding-bottom: 1rem;
}
.sidebar .nav-item a {
color: #d7d7d7;
border-radius: 4px;
height: 3rem;
display: flex;
align-items: center;
line-height: 3rem;
}
.sidebar .nav-item a.active {
background-color: rgba(255,255,255,0.25);
color: white;
}
.sidebar .nav-item a:hover {
background-color: rgba(255,255,255,0.1);
color: white;
}
当滚动出现时,网页看起来像 this。如果这是问题所在,让侧边栏覆盖其余高度。您可以如下更改侧边栏 CSS 样式(设置 底部 属性):
.sidebar {
width: 250px;
position: sticky;
top: 0px;
bottom: 0px;
}
[注意] 你也应该在 site.css[=29= 中更改 .sidebar
css 样式]文件,对于media query中的.sidebar
CSS样式,也需要去掉高度属性,像这样:
然后,输出像这样。