CSS网页布局入门教程10:带当前标识的标签式横向导航

下面我将为你详细讲解“CSS网页布局入门教程10:带当前标识的标签式横向导航”的完整攻略。

1. 什么是带当前标识的标签式横向导航?

带当前标识的标签式横向导航是一种常见的网页布局方式,它通常用于网站顶部的导航栏中。这种导航栏将多个链接以标签页的形式展现出来,用户可以通过点击标签页来跳转到对应页面。而带当前标识则是指,当前所处于的标签页将被特别标识出来,以帮助用户明确当前所处的页面。

2. 实现带当前标识的标签式横向导航的步骤

2.1 HTML结构

首先,我们需要定义导航栏的HTML结构。这里我们假设有三个页面,分别是“首页”、“产品列表”、“联系我们”,对应的URL地址分别为“/”,“/products”和“/contact”。

<ul class="nav">
  <li><a href="/">首页</a></li>
  <li><a href="/products">产品列表</a></li>
  <li><a href="/contact">联系我们</a></li>
</ul>

2.2 CSS样式

接下来,我们需要定义导航栏的CSS样式。这里我们采用水平排列的方式,并且给当前所处标签页添加一个特别的样式。

.nav {
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #eee;
  display: flex;
}

.nav li {
  flex-grow: 1;
  text-align: center;
}

.nav li a {
  display: block;
  padding: 10px;
  text-decoration: none;
  color: #333;
}

.nav li.active a {
  background-color: #ddd;
}

2.3 JavaScript脚本

最后,我们需要定义一个JavaScript脚本来动态地为当前所处标签页添加样式。具体实现方式是,获取当前页面的URL地址,然后遍历导航栏中的所有链接,如果有链接的URL地址与当前页面的URL地址相同,则给该链接的li元素添加一个名为“active”的类。

// 获取当前页面的URL地址
var currentUrl = window.location.pathname;

// 遍历导航栏中的所有链接
var navLinks = document.querySelectorAll('.nav li a');
navLinks.forEach(function(link) {
  // 如果链接的URL地址与当前页面的URL地址相同
  if (link.getAttribute('href') === currentUrl) {
    // 给该链接的li元素添加一个名为“active”的类
    link.parentNode.classList.add('active');
  }
});

3. 示例说明

下面,我将针对两个示例具体说明如何实现带当前标识的标签式横向导航。

3.1 示例1:使用jQuery实现导航栏高亮

<ul class="nav">
  <li><a href="/">首页</a></li>
  <li><a href="/products">产品列表</a></li>
  <li><a href="/contact">联系我们</a></li>
</ul>

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(function() {
  // 获取当前页面的URL地址
  var currentUrl = window.location.pathname;

  // 遍历导航栏中的所有链接
  $('.nav li a').each(function() {
    // 如果链接的URL地址与当前页面的URL地址相同
    if ($(this).attr('href') === currentUrl) {
      // 给该链接的li元素添加一个名为“active”的类
      $(this).parent().addClass('active');
    }
  });
});
</script>

<style>
.nav {
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #eee;
  display: flex;
}

.nav li {
  flex-grow: 1;
  text-align: center;
}

.nav li a {
  display: block;
  padding: 10px;
  text-decoration: none;
  color: #333;
}

.nav li.active a {
  background-color: #ddd;
}
</style>

该示例使用了jQuery框架来实现导航栏的高亮。具体实现方式是,使用jQuery的选择器获取所有的导航链接,然后遍历链接,如果当前链接的URL地址与当前页面的URL地址相同,则为该链接所在的li元素添加一个名为“active”的类。

3.2 示例2:使用Vue.js实现导航栏高亮

<div id="app">
  <ul class="nav">
    <li v-for="page in pages" :key="page.url" :class="{ active: page.url === currentUrl }">
      <router-link :to="page.url">{{ page.title }}</router-link>
    </li>
  </ul>
</div>

<script src="https://unpkg.com/vue@3.2.7/dist/vue.global.min.js"></script>
<script src="https://unpkg.com/vue-router@4.0.11/dist/vue-router.min.js"></script>
<script>
const Home = { template: '<div>Home</div>' };
const Products = { template: '<div>Products</div>' };
const Contact = { template: '<div>Contact</div>' };

const routes = [
  { path: '/', component: Home },
  { path: '/products', component: Products },
  { path: '/contact', component: Contact }
];

const router = VueRouter.createRouter({
  history: VueRouter.createWebHashHistory(),
  routes
});

const app = Vue.createApp({
  data() {
    return {
      pages: [
        { title: '首页', url: '/' },
        { title: '产品列表', url: '/products' },
        { title: '联系我们', url: '/contact' }
      ]
    };
  },
  computed: {
    currentUrl() {
      return window.location.pathname;
    }
  }
});

app.use(router);
app.mount('#app');
</script>

<style>
.nav {
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #eee;
  display: flex;
}

.nav li {
  flex-grow: 1;
  text-align: center;
}

.nav li a {
  display: block;
  padding: 10px;
  text-decoration: none;
  color: #333;
}

.nav li.active a {
  background-color: #ddd;
}
</style>

该示例使用了Vue.js框架和Vue Router插件来实现导航栏的高亮。具体实现方式是,通过Vue.js的计算属性获取当前页面的URL地址,然后使用Vue Router的router-link组件生成导航链接。在循环渲染导航链接的过程中,使用Vue.js的条件渲染的语法为当前所处页面所对应的li元素添加一个名为“active”的类。

至此,我们已经完成了带当前标识的标签式横向导航的实现攻略。希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS网页布局入门教程10:带当前标识的标签式横向导航 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • bootstrap网页框架的使用方法

    下面是“bootstrap网页框架的使用方法”的完整攻略。 什么是Bootstrap网页框架? Bootstrap是一个流行的HTML、CSS、JS框架,它简化了Web开发过程,提供了大量可重用的组件和工具,使得开发者可以更快速、更简单地创建高质量的响应式网站和Web应用程序。 Bootstrap的核心是一个基础CSS样式和网格系统,这使得开发者可以轻松快速…

    css 2023年6月10日
    00
  • Bootstrap基本样式学习笔记之图片(6)

    Bootstrap基本样式学习笔记之图片(6)主要介绍的是Bootstrap框架中关于图片的样式和API。 Bootstrap图片样式 Bootstrap提供了一系列的图片样式供我们使用,这些样式都是通过为 <img> 标签或具有 class=”img-*” 属性的其他元素添加类来实现的。以下是常用的Bootstrap图片样式类: .img-fl…

    css 2023年6月11日
    00
  • 仿Word自动套用格式使用CSS设置表格样式实例

    那我就给您逐步讲解一下如何实现“仿Word自动套用格式使用CSS设置表格样式”的攻略。 一、设置表格样式 首先,在 \ 标签中添加样式表: <style> /* 表格样式 */ table { border-collapse: collapse; width: 100%; margin-top: 20px; margin-bottom: 20px…

    css 2023年6月9日
    00
  • img图片下面莫名的出现下边距的快速解决方法推荐

    下面是针对“img图片下面莫名的出现下边距的快速解决方法推荐”的完整攻略: 问题背景 在网页设计过程中,我们常常使用img标签来插入图片。但是有时会发现图片下方会出现一个意料之外的下边距,使得整个页面看起来不够美观。 解决方法 方法1 第一种方法是使用CSS的display:block;属性。我们可以将img标签的display属性设置为block,这样它就…

    css 2023年6月9日
    00
  • JQUERY THICKBOX弹出层插件

    下面是对 JQuery Thickbox弹出层插件的完整攻略。 什么是JQuery Thickbox弹出层插件? JQuery Thickbox是一个弹出层插件,它可以在网页中显示一个弹出层,主要用于展示图片、视频、网页等内容,同时可以增强网页的视觉效果和用户体验。 安装JQuery Thickbox插件 在使用JQuery Thickbox插件之前,需要先…

    css 2023年6月9日
    00
  • JQuery contains的选择器

    当我们需要选择包含特定文本的元素时,我们可以使用JQuery选择器的contains选择器。这个选择器可以非常方便的帮助我们选择特定的元素。 1. 基本语法 在JQuery中,我们可以使用以下语法进行包含特定文本的元素选择。 $("*:contains(‘text’)") 其中,’*’表示任意元素,’text’表示我们想要选择包含的文本。…

    css 2023年6月10日
    00
  • stricky footer的三种解决方案详解

    “sticky footer”的目标就是让footer永远处于页面底部,无论页面的内容高度是多少。下面介绍三种实现“sticky footer”的方法。 方法一:使用flex布局 flex布局可以很容易地实现sticky footer。步骤如下: 在html里添加如下代码: <body> <div class="wrapper&q…

    css 2023年6月10日
    00
  • js 实现css风格选择器(压缩后2KB)

    要实现CSS风格的选择器,我们需要在JavaScript中通过正则表达式和递归算法实现一个选择器引擎。这个引擎接收两个参数,一个是选择器字符串,另一个是上下文DOM元素。具体实现步骤如下: 1. 将选择器字符串进行分组 如:”.box li.active span”分为:- .box- li- .active- span 2. 逆序遍历分组 从最后一个分组开…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部