gpt4 book ai didi

css - 将每个导航元素包装在一个 div 中是否合适?

转载 作者:太空狗 更新时间:2023-10-29 15:04:58 25 4
gpt4 key购买 nike

我正在学习 HTML + CSS 并在一个网站上工作,我需要在左侧有一个垂直导航栏,其中有四个可以与之交互的元素。用 div 包装这四个元素中的每一个是标准做法,还是有更优雅或更语义化的方法来解决这个问题?我希望每个元素都具有与之关联的独特的点击功能,这就是为什么我认为为它们提供 div 和类对于以后与它们进行交互最有意义。

谢谢!

最佳答案

JSFIDDLE DEMO

HTML 结构:
有很多方法可以实现垂直导航。
最常见的是使用 ulli:

<div id="lnav_container">
<ul id="lnav">
<li class="lnav_item"><a href="#">Item 1</a></li>
<li class="lnav_item"><a href="#">Item 2</a></li>
<li class="lnav_item"><a href="#">Item 3</a></li>
<li class="lnav_item"><a href="#">Item 4</a></li>
</ul>
</div>

li 中使用 a 标签也很常见。

样式:
您可以通过为 ul 添加 list-style-type: none; 来消除元素符号。
您可以使用 :hover 选择器在悬停时为它们提供不同的样式,以使其更具交互性。

.lnav_item {
width: 74%;
margin-top: 10px;
}
.lnav_item:first-child {margin-top: 0px;}
.lnav_item.selected {width: 86%;}
.lnav_item a {
display: inline-block;
width: 100%;
line-height: 30px;
padding: 8px 5px 5px 0px;
background-color: yellow;
color: black;
font-weight: bold;
text-decoration: none;
border-radius: 2px 12px 12px 2px;
}
.lnav_item.selected a {
background-color: green;
color: white;
font-size: 18px;
}
.lnav_item:hover a {background-color: orange;}

要摆脱 a 下划线,请使用 text-decoration: none; 并根据需要覆盖其默认颜色。

Javascript (jQuery):
clickListener 绑定(bind)到元素很容易:

$('.lnav_item a').on('click', function() {
//$(this) item is clicked, do whatever you want
$('.lnav_item').removeClass('selected');
$(this).parent().addClass('selected');
});

编辑:

如果你想给每个导航项一个不同的风格等,你可以通过不同的方式实现:

jsfiddle DEMO

  1. 您可以使用 CSS 的 nth-child() 选择器:

    .lnav_item:nth-child(2):hover a{background-color: #252F1D;}
    .lnav_item:nth-child(3):hover a{background-color: white;}
  2. 如果您在 jQuery 中执行此操作,或者您可以使用带参数 (index) 的函数,并且如果需要可以使用 eq

    $('.lnav_item > a').each(function(index) {
    if(index == 0) {
    //give it a different onClick, CSS rule, etc
    }
    //and so on
    });
    • index 从零开始,但 nth-child 从一开始。

关于css - 将每个导航元素包装在一个 div 中是否合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30022689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com