导航栏在悬停时向下推送内容
Navigation bar pushes content down on hover
我网站上的导航栏有问题,尤其是 <a>
元素及其悬停状态。我在我的整个网站上使用 box-sizing: border-box
,并且当 <a>
元素悬停时,它们的边框会动画化。然而,问题是当它们悬停时,它们会以某种方式将主要内容向下推(高度比应有的增加了大约 0.33 像素)。 <a>
元素的高度设置为 44 像素,但是当鼠标悬停时,它会以某种方式增加超过此限制 0.33 像素并将内容下推。这有点难以解释,所以我制作了一个简短的视频来详细说明我的问题,请在此处查看:https://youtu.be/iEyVXqoQV74
这里有一个 link 到我的实时网站:http:// arkelectronics.ca/
请注意:这个 link 将不会在我修复后显示问题。
您可以在 GitHub 的“pre_fix_Whosebug”分支上查看我网站的所有文件(修复前):https://github.com/Twinbird24/ark_electronics/tree/pre_fix_Whosebug
我的导航栏 HTML:
<nav>
<ul>
<li><a href="index.html">home</a></li>
<li><a href="about.html">about</a></li>
<li><a href="services.html">services</a></li>
<li><a href="contact.html">contact</a></li>
</ul>
</nav>
我的导航栏的关联 CSS:
nav li a {
height: 44px;
color: white;
padding: 0px 8px 0px 8px;
text-decoration: none;
background-color: transparent;
border-bottom: 0px solid #ededed; /* will be animated-in on hover */
border-top: 0px solid orange; /* will be animated-in on hover */
transition: border 200ms; /* the transition is applies to the border only, at a speed of 200ms */
display: table-cell; /* this, as well as the vertical-align, ensures text is vertically centered every time inside the nav buttons*/
vertical-align: middle;
}
/* when nav button is hovered over */
nav li a:hover {
border-bottom: 13px solid #ededed;
border-top: 13px solid orange;
}
/* when the mouse is held down on nav button */
nav li a:active {
border-bottom: 5px solid #ededed;
}
在您的 css 的第 81 行将高度更改为 51 像素
nav li a {
背景颜色:透明;
border-bottom: 0 solid #ededed;
border-top: 0 实心橙色;
白颜色;
显示:table-单元格;
高度:51px;
填充:0 8px;
文字装饰:none;
过渡:边界 200ms 缓和 0s;
垂直对齐:中间;
}
改成这样:
nav ul {
list-style-type: none; /* removes the bullet-point that's common with ul elements */
margin: 0;
padding: 0;
overflow: hidden;
}
我添加了 overflow: hidden;
属性 因为在 IE10 上有一个错误。
然后像这样:
nav li a {
height: 45px;
color: white;
padding: 0px 8px 0px 8px;
text-decoration: none;
background-color: transparent;
border-bottom: 0px solid #ededed; /* will be animated-in on hover */
border-top: 0px solid orange; /* will be animated-in on hover */
transition: border 200ms; /* the transition is applies to the border only, at a speed of 200ms */
display: table-cell; /* this, as well as the vertical-align, ensures text is vertically centered every time inside the nav buttons*/
vertical-align: middle;
}
我改了 height
属性。现在在 IE10 上运行良好,希望它对你有好处。
我网站上的导航栏有问题,尤其是 <a>
元素及其悬停状态。我在我的整个网站上使用 box-sizing: border-box
,并且当 <a>
元素悬停时,它们的边框会动画化。然而,问题是当它们悬停时,它们会以某种方式将主要内容向下推(高度比应有的增加了大约 0.33 像素)。 <a>
元素的高度设置为 44 像素,但是当鼠标悬停时,它会以某种方式增加超过此限制 0.33 像素并将内容下推。这有点难以解释,所以我制作了一个简短的视频来详细说明我的问题,请在此处查看:https://youtu.be/iEyVXqoQV74
这里有一个 link 到我的实时网站:http:// arkelectronics.ca/ 请注意:这个 link 将不会在我修复后显示问题。
您可以在 GitHub 的“pre_fix_Whosebug”分支上查看我网站的所有文件(修复前):https://github.com/Twinbird24/ark_electronics/tree/pre_fix_Whosebug
我的导航栏 HTML:
<nav>
<ul>
<li><a href="index.html">home</a></li>
<li><a href="about.html">about</a></li>
<li><a href="services.html">services</a></li>
<li><a href="contact.html">contact</a></li>
</ul>
</nav>
我的导航栏的关联 CSS:
nav li a {
height: 44px;
color: white;
padding: 0px 8px 0px 8px;
text-decoration: none;
background-color: transparent;
border-bottom: 0px solid #ededed; /* will be animated-in on hover */
border-top: 0px solid orange; /* will be animated-in on hover */
transition: border 200ms; /* the transition is applies to the border only, at a speed of 200ms */
display: table-cell; /* this, as well as the vertical-align, ensures text is vertically centered every time inside the nav buttons*/
vertical-align: middle;
}
/* when nav button is hovered over */
nav li a:hover {
border-bottom: 13px solid #ededed;
border-top: 13px solid orange;
}
/* when the mouse is held down on nav button */
nav li a:active {
border-bottom: 5px solid #ededed;
}
在您的 css 的第 81 行将高度更改为 51 像素 nav li a { 背景颜色:透明; border-bottom: 0 solid #ededed; border-top: 0 实心橙色; 白颜色; 显示:table-单元格; 高度:51px; 填充:0 8px; 文字装饰:none; 过渡:边界 200ms 缓和 0s; 垂直对齐:中间; }
改成这样:
nav ul {
list-style-type: none; /* removes the bullet-point that's common with ul elements */
margin: 0;
padding: 0;
overflow: hidden;
}
我添加了 overflow: hidden;
属性 因为在 IE10 上有一个错误。
然后像这样:
nav li a {
height: 45px;
color: white;
padding: 0px 8px 0px 8px;
text-decoration: none;
background-color: transparent;
border-bottom: 0px solid #ededed; /* will be animated-in on hover */
border-top: 0px solid orange; /* will be animated-in on hover */
transition: border 200ms; /* the transition is applies to the border only, at a speed of 200ms */
display: table-cell; /* this, as well as the vertical-align, ensures text is vertically centered every time inside the nav buttons*/
vertical-align: middle;
}
我改了 height
属性。现在在 IE10 上运行良好,希望它对你有好处。