导览列上的CSS框缐底部

ldfqzlk8  于 2022-12-05  发布在  其他
关注(0)|答案(4)|浏览(103)

我有一个导航栏,我添加了一条红线的底部时,悬停列表的任何项目,但我想移动标题下的红线(类似“服务”),任何想法如何实现这一点?
我在codepen中添加了一个小示例,这样您就可以轻松地检查HTML和CSS代码
第一个
Link to check the code

smtd7mpg

smtd7mpg1#

您可以修正标题高度,也可以修正导航栏项目的高度。此外,您也有一个问题,即悬停时元素移动。您也可以修正这个问题,始终为元素添加透明颜色的边框,这样元素的整体高度在悬停状态下不会改变。
下面是修复的CSS

header {
  background-color: lightblue;
  position: sticky;
  display: flex;
  height: 60px;
  align-items: center;
  justify-content: space-around;
}

header nav {
  min-width: 50%;
}

header nav ul {
  margin: 0;
  height: 100%;
  list-style: none;
  padding-left: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 60px;
}

header li {
  display: flex;
  align-items: center;
  border-bottom: 2px solid transparent;
  height: 60px;
}

header li:hover {
  border-bottom: 2px solid red;
}

https://codepen.io/swarajgk/pen/JjZewPo?editors=1100

mklgxw1f

mklgxw1f2#

我认为只要给所有列表元素的高度和标题一样就可以了。
就像这样:
第一个

31moq8wy

31moq8wy3#

希望这能解决问题

header {
  background-color: lightblue;
  padding-top: 1rem;
  height: 3rem;
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-around;
}

header nav {
  min-width: 50%;
  height : 100%;
}

header nav ul {
  margin: 0;
  height: 100%;
  list-style: none;
  padding-left: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

header li{
  height: inherit;
}

header li:hover {
  border-bottom: 2px solid red;
}
w8f9ii69

w8f9ii694#

我建议使用以下方法,并在CSS中添加解释性注解:
第一个
JS Fiddle demo
参考文献:

参考书目:

相关问题