Html 旋转文本覆盖粘性导航栏
我正在建立一个网站,它有一个粘性导航栏和一个表格。 表格的第一列包含垂直文本。表格足够长,可以滚动。但是,当滚动时,旋转文本的行为很有趣:它出现在导航栏上。所有其他文本的行为与预期一致 下面是我的example.html:Html 旋转文本覆盖粘性导航栏,html,css,css-transforms,sticky,Html,Css,Css Transforms,Sticky,我正在建立一个网站,它有一个粘性导航栏和一个表格。 表格的第一列包含垂直文本。表格足够长,可以滚动。但是,当滚动时,旋转文本的行为很有趣:它出现在导航栏上。所有其他文本的行为与预期一致 下面是我的example.html: <!DOCTYPE html> <html lang="en"> <head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"&
<!DOCTYPE html>
<html lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Funny overlay example</title>
</head>
<body>
<nav class="navbar">
<div>
Sticky Navbar
</div>
</nav>
<section>
<div>
<table>
<tr><td rowspan="8" class="cell_vert_text"><div class="rotwrap"><div class="textcon">Problematic Text</div></div></td><td class="cell_horiz_text">Ok Text</td></tr>
<tr><td class="cell_horiz_text">Ok Text</td></tr>
<tr><td class="cell_horiz_text">Ok Text</td></tr>
<tr><td class="cell_horiz_text">Ok Text</td></tr>
<tr><td class="cell_horiz_text">Ok Text</td></tr>
<tr><td class="cell_horiz_text">Ok Text</td></tr>
<tr><td class="cell_horiz_text">Ok Text</td></tr>
<tr><td class="cell_horiz_text">Ok Text</td></tr>
</table>
</div>
</section>
</body>
</html>
我怀疑旋转对DOM结构有一些副作用,但我真的不明白发生了什么。我试图通过引入z-index属性来解决这个问题,但没有任何帮助。
我不仅在寻找一种将旋转文本推到导航栏后面的解决方案,而且在寻找一种对实际情况的清晰解释。谢谢大家! 元素上的变换会创建一个,因为它的父元素都不是堆栈上下文,所以它与另一个堆栈上下文navbar(position sticky)处于同一级别 当我们在同一级别上有两个堆叠上下文,并且两者都没有
z-index
,最后一个将显示在前面的上下文之上
解决方案:在导航栏上设置z索引:
.navbar {
z-index: 1;
background: #ff0000;
position: sticky;
top: 0;
width: 100%;
}
演示
*{
保证金:0;
填充:0;
框大小:边框框;
}
.集装箱{
高度:150像素;
溢出:自动;
}
navbar先生{
z指数:1;
背景:#ff0000;
位置:粘性;
排名:0;
宽度:100%;
}
表td.cell\u vert\u text{
文本对齐:居中;
空白:nowrap;
垂直对齐:中间对齐;
宽度:1.5em;
}
表td.cell\u vert\u text div.rotwrap div.textcon{
变换:旋转(270度);
左边距:-10em;
右边距:-10em;
}
粘性导航条
问题文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
元素上的变换会创建一个堆栈,因为它的父元素都不是堆栈上下文,所以它与另一个堆栈上下文navbar(位置粘滞)处于同一级别
当我们在同一级别上有两个堆叠上下文,并且两者都没有z-index
,最后一个将显示在前面的上下文之上
解决方案:在导航栏上设置z索引:
.navbar {
z-index: 1;
background: #ff0000;
position: sticky;
top: 0;
width: 100%;
}
演示
*{
保证金:0;
填充:0;
框大小:边框框;
}
.集装箱{
高度:150像素;
溢出:自动;
}
navbar先生{
z指数:1;
背景:#ff0000;
位置:粘性;
排名:0;
宽度:100%;
}
表td.cell\u vert\u text{
文本对齐:居中;
空白:nowrap;
垂直对齐:中间对齐;
宽度:1.5em;
}
表td.cell\u vert\u text div.rotwrap div.textcon{
变换:旋转(270度);
左边距:-10em;
右边距:-10em;
}
粘性导航条
问题文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
*{
保证金:0;
填充:0;
框大小:边框框;
}
身体{
高度:5000px;
}
navbar先生{
背景:#ff0000;
位置:粘性;
排名:0;
宽度:100%;
z指数:1;
}
表td.cell\u vert\u text{
文本对齐:居中;
空白:nowrap;
垂直对齐:中间对齐;
宽度:1.5em;
}
表td.cell\u vert\u text div.rotwrap div.textcon{
变换:旋转(270度);
左边距:-10em;
右边距:-10em;
}
粘性导航条
有问题的文本OK文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
*{
保证金:0;
填充:0;
框大小:边框框;
}
身体{
高度:5000px;
}
navbar先生{
背景:#ff0000;
位置:粘性;
排名:0;
宽度:100%;
z指数:1;
}
表td.cell\u vert\u text{
文本对齐:居中;
空白:nowrap;
垂直对齐:中间对齐;
宽度:1.5em;
}
表td.cell\u vert\u text div.rotwrap div.textcon{
变换:旋转(270度);
左边距:-10em;
右边距:-10em;
}
粘性导航条
有问题的文本OK文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
Ok文本
非常感谢!不幸的是,我不能将两个答案都标记为接受,我将使用另一个相同的答案,它是在几秒钟前发布的。非常感谢!不幸的是,我不能将两个答案都标记为接受,我将使用另一个相同的答案,它是在几秒钟前发布的。