简体   繁体   English

当其 Href 是当前页面时隐藏链接 - 仅限 CSS

[英]Hide Link When its Href is the Current Page - CSS Only

In a <ul/> I need to hide one of the <li/>s if the <li/> 's href is the current page.<ul/>中,如果<li/>href是当前页面,我需要隐藏<li/>s之一。 I found a couple of postings on SO , but they're not helpful to me.我在SO上找到了几个帖子,但它们对我没有帮助。 The item with class = hideMeWhenActive needs to be hidden when its href is active.当其href处于活动状态时,需要隐藏 class = hideMeWhenActive的项目。 No javascript , just CSS .没有javascript ,只有CSS Is it possible?是否可以? If so, how?如果是这样,如何?

<ul class="primaryNav">
    <li><a href="/Coverage/CoverageSummary/" class="primaryNav__link">Coverage</a></li>
    <li><a href="/Claim/ClaimList/" class="primaryNav__link">Claims</a></li>
    <li><a href="/HelpCenter/Main" class="primaryNav__link">Help</a></li>
    <li><a href="~/IdCard/" class="btn hideMeWhenActive">Card</a></li> /*THIS ONE NEEDS TO BE HIDDEN*/
 </ul>

Check this code, if can be useful for you, if I understood your question.如果我理解您的问题,请检查此代码,如果对您有用。

 $( document ).ready(function() { $( ".primaryNav_link" ).click(function(){ $(".hideMeWhenActive").addClass("showMeWhenActive").removeClass("hideMeWhenActive"); $(this).parent().addClass("hideMeWhenActive").removeClass("showMeWhenActive"); }); });
 ul { list-style: none; margin-left: 0; padding-left: 1em; text-indent: -1em; } .hideMeWhenActive { display: none; } .showMeWhenActive { display: block; }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="primaryNav"> <li>- <a href="#" class="primaryNav_link">Coverage</a></li> <li>- <a href="#" class="primaryNav_link">Claims</a></li> <li>- <a href="#" class="primaryNav_link">Help</a></li> <li class="hideMeWhenActive">- <a href="#" class="primaryNav_link">Card</a></li> <!--THIS ONE NEEDS TO BE HIDDEN--> </ul>

it just hides the active link.它只是隐藏了活动链接。

Edit #1 (only CSS):编辑 #1(仅 CSS):

 ul { list-style: none; margin-left: 0; padding-left: 1em; text-indent: -1em; } .primaryNav_link { display: block; } .primaryNav_link:focus { display: none; }
 <ul class="primaryNav"> <li><a href="#" class="primaryNav_link">Coverage</a></li> <li><a href="#" class="primaryNav_link">Claims</a></li> <li><a href="#" class="primaryNav_link">Help</a></li> <li><a href="#" class="primaryNav_link">Card</a></li> </ul>

Sadly, I don't think this is attainable by using purely CSS.可悲的是,我认为这无法通过使用纯 CSS 来实现。

You can definitely make a CSS class with a display: none attribute, but to trigger that class to be added on the li element only when that button is clicked, you will need to add some JavaScript/jQuery.您绝对可以创建一个带有display: none属性的 CSS 类,但是要仅在单击该按钮时触发该类添加到li元素上,您需要添加一些 JavaScript/jQuery。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM