我是html / css的新手,所以请耐心等待。 我有特定的图像,我想用作导航菜单。 我的HTML,CSS基本上看起来像这样:
HTML
<div id="navigation">
<a id="main" href="domain.com/main">main</a>
<a id="tips" href="domain.com/tips">tips</a>
<a id="news" href="domain.com/news">news</a>
</div>
CSS
a#main:
{
background-image:url(main-normal.png);
margin-right:0px;
}
a#main:hover:
{
background-image:url(main-highlight.png);
}
a#tips:
{
background-image:url(tips-normal.png);
margin-right:0px;
}
a#tips:hover:
{
background-image:url(tips-highlight.png);
}
a#news:
{
background-image:url(news-normal.png);
margin-right:0px;
}
a#news:hover:
{
background-image:url(news-highlight.png);
}
#main,#news,#tips
{
background-repeat:no-repeat;
display:block;
text-decoration:none;
text-indent:-30000px;
}
当我将鼠标悬停在图像上时,它会更改为突出显示的图像,但是当我点击该链接时,该选项卡将恢复为正常图像。当用户当前在该页面上时,我希望它保持突出显示。谁能帮我这个? 我尝试过“访问过”,但似乎无法正常工作,我在谷歌搜索中找到的所有内容都与我正在尝试的内容略有不同。
提前致谢。
答案 0 :(得分:0)
有很多方法可以做到这一点。使用PHP,JavaScript或纯CSS以及一些额外的标记。
既然你说你是HTML / CSS的新手,我认为CSS方式最适合你吗?
所以你有3页完全相同的菜单代码?只需将其放在每个站点上:
对于您的主页:
<div id="navigation">
<a id="main" class="active" href="domain.com/main">main</a>
<a id="tips" href="domain.com/tips">tips</a>
<a id="news" href="domain.com/news">news</a>
</div>
您的提示页面:
<div id="navigation">
<a id="main" href="domain.com/main">main</a>
<a id="tips" class="active" href="domain.com/tips">tips</a>
<a id="news" href="domain.com/news">news</a>
</div>
您的新闻页面:
<div id="navigation">
<a id="main" href="domain.com/main">main</a>
<a id="tips" href="domain.com/tips">tips</a>
<a id="news" class="active" href="domain.com/news">news</a>
</div>
添加CSS:
#main.active {background-image:url(main-highlight.png);}
#tips.active {background-image:url(tips-highlight.png);}
#news.active {background-image:url(news-highlight.png);}
答案 1 :(得分:0)
要回答具体问题,当用户点击链接时,他们会转到新页面。这些链接本身没有关于它们存在于哪个页面的概念。
所以你有几个选择。常见的解决方案是使用服务器端代码发送带有某些指示符的HTML,即当前链接。例如,您可以添加类似“当前”的类。此外,如果这是您所在的页面,也不需要链接,因此不应该链接该文本。
但是如果您无法访问服务器,则需要手动添加。您可以为.current
创建新样式,然后在该页面上将该类应用于您的活动链接。
但是,也许您将此菜单作为包含...包含意味着每个页面的代码都相同。在这种情况下,您需要使用CSS定位活动链接。所以在每个页面上你都会在页面上有一个自定义的CSS。
例如,在提示页面上,您可以执行以下操作:
#tips {put your style here for active links}
为了获得更高级/更自动化,您可以编写一些javascript:
PS。没有必要在CSS中使用a#tips
的语法。原因是,如果您使用的是ID,则页面上只能有一个ID,因此a
有点多余。
答案 2 :(得分:0)
这个例子对我来说很好......
主页
<html>
<head>
<title>Home</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body#home a#homenav, body#second a#secondnav {
color: #f8f8f8;
background: #D34;
cursor: default;
}
</style>
</head>
<body id="home">
<nav>
<ul>
<li><a href="nav.html" id="homenav">Home</a></li>
<li><a href="nav2.html" id="secondnav">Second</a></li>
</ul>
</nav>
</body>
第二页
<html>
<head>
<title>Second</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<style>
body#home a#homenav, body#second a#secondnav {
color: #f8f8f8;
background: #D34;
cursor: default;
}
</style>
<body id="second">
<nav>
<ul>
<li><a href="nav.html" id="homenav">Home</a></li>
<li><a href="nav2.html" id="secondnav">Second</a></li>
</ul>
</nav>
</body>
答案 3 :(得分:0)
使用CSS突出显示当前页面上的导航选项卡的一种方法是创建一个活动类,以附加到您当前使用的标签的类上。您的活动CSS类将详细说明您认为它处于活动状态时的外观。然后,根据您所位于的选项卡,为该选项卡插入active as类,如下所示。
`
<html>
<head>
<title>Highlight Nav Tab of Page</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial- scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
</head>
<style>
.navbar {
background-color: purple;
font-size: 12px !important;
line-height: 1.42857143 !important;
}
.navbar li a, .navbar .navbar-brand {
color: #fff !important;
}
.navbar-nav li a:hover, .navbar-nav li.active a {
color: purple !important;
background-color: #fff !important;
}
</style>
<body id="about.html" data-spy="scroll" data-target=".navbar" data-offset="60">
<!--navbar-->
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav navbar-right">
<li ><a href="#">Home</a></li>
<li class = "active"><a href="#">About</a></li>
<li ><a href="#">More</a></li>
<li ><a href="#">Contact Us</a></li>
</ul>
</div>
</div>
</nav>
</body>
</html>
`