我有一个选项卡控件,其特点是不稳定的行为。我试图隐藏底部边框的那部分,它代表我的“文件夹”的顶部,它直接位于活动标签下方,模仿一个真实的的文件夹。期望的外观:
但Chrome和Edge都有一种倾向,有时不能完全隐藏水平线。如果我将浏览器更改为不同的缩放级别,则会出现一条1像素的线:
这也发生在有时拖动框左右,然后消失时,我放手。或者在某些组件中可以正常运行,但在其他组件中同样的代码会出现问题。我似乎无法始终摆脱这一行,所以我想知道是否有一个更可靠的方法来隐藏活动标签下的行?
我认为我的主要问题是我似乎无法从.tab
覆盖下面的详细区域中做出任何事情。这就像z-index
拒绝把标签放在上面。
这是我目前的代码。
* {
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0,0,0,0);
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
line-height: 1.42857143;
color: #333;
--color-dramatic-light-h: 0;
--color-dramatic-light-s: 0%;
--color-dramatic-light-l: 93%;
--color-dramatic-light-fg: hsl(192,46%,42%);
--color-dramatic-light: hsl(var(--color-dramatic-light-h), var(--color-dramatic-light-s), var(--color-dramatic-light-l));
--color-accent: hsl(var(--color-accent-h), var(--color-accent-s), var(--color-accent-l));
font-size: 12px;
box-sizing: border-box;
margin: color-accent;
padding: 0;
}
.svlt-grid-item {
background-color: white;
z-index: 100;
box-shadow: 0 0 2.5em 1em black;
opacity: 1 !important;
touch-action: none;
position: absolute;
will-change: auto;
-webkit-backface-visibility: hidden;
width: 1362.796875px;
height: 880px;
transition: transform 0.2s, opacity 0.2s;
transform: translate(701.3984375px, 166px);
}
.popupOverlayWrapper {
height: 100%;
overflow: auto;
}
.header {
display: inline-block;
padding: 0.1em;
width: 100%;
font-size: 1.5em;
font-weight: bold;
text-align: center;
}
.tabs {
--tab-border-color: hsl(var(--color-dramatic-light-h),var(--color-dramatic-light-s),calc(var(--color-dramatic-light-l) * 0.2 ));
position: relative;
display: flex;
overflow: hidden;
flex-flow: row nowrap;
height: 2.5em;
width: 100%;
isolation: isolate;
}
.tabs:before {
position: absolute;
content: "";
width: 100%;
bottom: 0px;
left: 0;
border-bottom: 1px solid var(--tab-border-color);
z-index: 1;
}
.tab {
--color-tab-gradient: hsl(var(--color-dramatic-light-h),var(--color-dramatic-light-s),calc(var(--color-dramatic-light-l) * 0.85 ));
position: relative;
padding: 0.1em 0.6em;
margin: 0 -0.1em;
height: 100%;
cursor: pointer;
outline: none;
text-align: center;
text-shadow: 0 1px 2px white;
border-radius: 0.6em 0.6em 0 0;
border: 1px solid var(--tab-border-color);
background:linear-gradient(to bottom, white, var(--color-tab-gradient));
box-shadow: 0 0.3em 0.3em var(--tab-border-color);
color: var(--color-dramatic-light-fg);
text-decoration: none;
font-family: 'Fredoka One', 'Arial Black', sans-serif;
font-size: 1.2em;
line-height: 1em;
z-index: 0;
}
.tab:before,
.tab:after {
position: absolute;
content: " ";
bottom: -1px;
width: 0.60em;
height: 0.60em;
border: 1px solid var(--tab-border-color);
}
.tab:before {
left: -0.60em;
border-bottom-right-radius: 0.60em;
border-width: 0 1px 1px 0;
box-shadow: 0.2em 0.2em 0 var(--color-tab-gradient);
}
.tab:after {
right: -0.60em;
border-bottom-left-radius: 0.60em;
border-width: 0 0 1px 1px;
box-shadow: -0.2em 0.2em 0 var(--color-tab-gradient);
}
.tab.activeTab {
z-index: 2;
border-bottom-color: white;
background: none white;
}
.tab.activeTab:before {
box-shadow: 0.2em 0.2em 0 white;
}
.tab.activeTab:after {
box-shadow: -0.2em 0.2em 0 white;
}
<div draggable="false" class="svlt-grid-item" style="width: 1362.796875px; height:880px; transition: transform 0.2s, opacity 0.2s; transform: translate(701.3984375px, 166px); ">
<div class="popupOverlayWrapper">
<div class="header">
<div class="tabs">
<button class="tab activeTab">
Listener Detail
</button>
<button class="tab">
Listener Services
</button>
<button class="tab">
Instances Served
</button>
</div>
</div>
</div>
</div>
1条答案
按热度按时间wvyml7n51#
我用你的代码做了一点修改,通过
margin-bottom
调整了一些元素的位置,并修改了这些标签的box-shadow
,我不确定这是否能满足你的需求:结果: