关于css利用一张背景图制作导航菜单的实现思路

利用一张背景图片来实现菜单的悬停状态,没有什么不可思议完全可以办得到,仅这一张图片,我们实现一个横行css菜单。并设置它们的悬停效果,感兴趣的朋友可以参考下哈,希望可以帮助到你

今天介绍的这款简单非常简单,利用一张背景图片来实现菜单的悬停状态。我们看下面的图片:

关于css利用一张背景图制作导航菜单的实现思路
仅这一张图片,我们实现一个横行CSS菜单。并设置它们的悬停效果。我们该如何做呢?看下面的图片:
关于css利用一张背景图制作导航菜单的实现思路 
这是一个示意图。最底层是ul,这是一个容器,我们将列表项li全部置入其中。为了方便说明,示意图中仅画了一个li。实际此例中有六个li,全部向左浮动,实现横行排列。在li上面还有链接a标签。

我们首先整理XHTML代码:
Example Source Code

我们着手写CSS前,先结合上面的示意图整理一下思路:

1、首先需要让ul居中,然后让nav成为ul的背景图片。这样就可以简化编码,不必给每一个li或a再定义不同的背景图片及其定位。
2、定义列表项li的宽度与高度,并向左浮动。实现列表项的横向排列,组成一个横向的菜单格局。
3、定义列表项内部的链接a元素为块元素。并给a:hover一个背景图片,但不给他任何定位信息。
4、根据nav1~nav6分别定义a:hover状态下,背景图片的定位。
5、利用padding移除链接a元素的文字。使得在CSS有效时文字不可见,若出现CSS加载失败或其它设备浏览时,链接同样有效。

立即学习“前端免费学习笔记(深入)”;

我们开始着手CSS编写:
Example Source Code

* {margin:0; padding:0; font-size:12; list-style-type:none; }#mini_nav {width:390px; height:38px; margin:50px auto; background:url(nav.png) no-repeat 0 0;}#mini_nav li {width:65px; height:38px; float:left;}#mini_nav li a {display:block; width:65px; height:38px;}#mini_nav li a:hover {background:url(nav.png) no-repeat;}

设置总体布局声明,外边距与内边距均为零,文字大小为12px,列表项预调标记为无(去掉列表项前面的小黑点)。
设置ID为mini_nav的UL宽度与高度,上下边距为50px,左右边距为auto,实现水平居中对齐。设计背景图片为nav.png,定位于:0 0。
设置UL中的LI的样式,宽度与高度,向左浮动。
设置LI中链接A元素的样式,首先将A元素转换为块元素,并设置其宽与高。
设置链接A元素的县停样式,定义背景图片nav.png,重复方式为不重复,不给出背景图片的定位信息。

此时我们可以看到的页面效果如下
关于css利用一张背景图制作导航菜单的实现思路 
但这时候还不能实现任何悬停交互效果,而且链接文字而位于我们的神觉范围内。我们继续编写CSS代码:
Example Source Code 

#mini_nav li.nav1 a:hover {background-position:0 -38px;}#mini_nav li.nav2 a:hover {background-position:-65px -38px;}#mini_nav li.nav3 a:hover {background-position:-130px -38px;}#mini_nav li.nav4 a:hover {background-position:-195px -38px;}#mini_nav li.nav5 a:hover {background-position:-260px -38px;}#mini_nav li.nav6 a:hover {background-position:-325px -38px;}

这一段很相类,我们给不同的链接(即nav1~nav6)设置了鼠标悬停时的定位坐标。

我们给前面的LI中链接A元素增加以下代码:

Example Source Code [www.52css.com] padding-top:40px; overflow:hidden;

上部的内边距为40px。溢出为隐藏。我们将链接文字增加上部的内边距,从而推到了下面,不可见的地方,为了使这样的方法成功,我们必须设置溢出为隐藏。

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

CSS实现面包屑导航栏

以上就是关于css利用一张背景图制作导航菜单的实现思路的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1610445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 01:28:34
下一篇 2025年12月24日 01:28:51

相关推荐

  • 如何解决css中float:right右对齐元素会换行不在同一条线上

    这篇文章主要介绍了关于如何解决css中float:right右对齐元素会换行不在同一条线上,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 使用float设置右对齐显示的时候,我们通常会遇到,右对齐的元素会换行,这样就会出现左右元素不在同一条线上,下面为大家介绍下两种解决方法,有类似情…

    好文分享 2025年12月24日
    000
  • CSS中的em、px 、pt 、Percent之间的关系及换算

    这篇文章主要介绍了css font-size: em、 px 、pt 、percent之间的关系及换算,本篇整理的还是比较详细的,需要的朋友可以参考下 一、基础介绍 1、“Ems”: em,大小不固定 ,成为相对单位(body则相对浏览器的默认字体设置,子集相对父级), 浏览器默认设置字体大小为16…

    2025年12月24日
    000
  • 关于css的background-attachment属性的使用

    这篇文章主要为大家介绍了在css中,使用背景附件属性background-attachment可以设置背景图像是随对象滚动还是固定不动,需要的朋友可以参考下 一、background-attachment属性 在CSS中,使用背景附件属性background-attachment可以设置背景图像是随…

    2025年12月24日
    000
  • CSS中使用Flexbox来达到居中效果的方法实现

    这篇文章主要介绍了css中flexbox来达到居中效果的实例,注意一下ie浏览器中的兼容问题,需要的朋友可以参考下 CSS未来发展的方向就是采用Flexbox这种设计,解决像垂直居中这种共同的问题。请注意,Flexbox有不止一种办法居中,他也可以用来分栏,并解决奇奇怪怪的布局问题。 .Center…

    2025年12月24日
    000
  • css实现自动换行以防撑破div影响排版

    自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是css如何实现换行的方法 对于p,p等块级元素正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行html 正常文字的换行(亚洲文字和…

    好文分享 2025年12月24日
    000
  • CSS实现面包屑导航栏

    这篇文章主要为大家介绍了两个纯css 面包屑导航栏实现代码,内容比较简单,不会的朋友可以进来看一下,其中html代码实现非常简单,需要的朋友可以参考下   下面是两个纯CSS 面包屑导航栏实现代码,在网上找了一些方法但觉得都不合适唯独这两个纯css的就差不多了,下面一聚小编来给大家整理一下。   方…

    2025年12月24日
    000
  • css页面中左中右分栏布局的实现

    页面左中右分栏布局在目前的网页布局中是比较常见的,下面就与大家分享两个不错的方法可以实现左中右分栏布局,代码很详细,需要的朋友可不要错过 以下代码复制粘贴即可使用: 示例一:  .page_center { width:100%; } #nav { background-color:red; hei…

    好文分享 2025年12月24日
    000
  • 如何使用css属性nth-child(n)匹配选择第n个子元素

    这篇文章主要介绍了关于如何使用css属性nth-child(n)匹配选择第n个子元素,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 css匹配选择第n个子元素可以使用:nth-child(n) 选择器,其匹配属于其父元素的第N个子元素,不论元素的类型 加入要让第二个 th 占tabl…

    好文分享 2025年12月24日
    000
  • 关于css 属性选择器的解析

    下面为大家带来一篇全面了解css 属性选择器。内容挺不错的,现在就分享给大家,也给大家做个参考。 1.[class~=”flower”]:选中有flower的class  class=”flower ss”  class=”ss flower” 2.[class|=&#821…

    好文分享 2025年12月24日
    000
  • 如何使用CSS实现鼠标悬浮出现遮罩层

    这篇文章给大家分享了两个鼠标悬浮出现说明遮罩层的效果,大家可以根据自己的需要选择某一种效果,两种效果文中都给出了实例代码,下面来一起看看吧。 先来一个简单的实现方法: Document .mask-wrapper { position: relative; overflow: hidden; } .…

    好文分享 2025年12月24日
    000
  • 关于CSS如何实现多行多列布局的方法

    这篇文章主要介绍了css实现多行多列的布局的实例代码,需要的朋友可以参考下 1.两列多行:   HTML: box1:实现两列多行布局 111 222 333 CSS: 立即学习“前端免费学习笔记(深入)”; .box1 { width: 500px; background: #EEEEEE;}.b…

    2025年12月24日 好文分享
    000
  • 关于CSS中animation属性的使用方法

    这篇文章主要介绍了css的animation属性使用实例讲解,是css入门学习中的基础知识,需要的朋友可以参考下 一、animation的语法1、@keyframes——插入关键帧(1)FormTo形式: @keyframes demo { from { Properties:Properties …

    2025年12月24日
    000
  • CSS使用position:sticky 实现粘性布局的方法

    这篇文章主要介绍了css使用position:sticky 实现粘性布局的方法的相关资料,内容挺不错的,现在分享给大家,也给大家做个参考。 简介 一般都知道下面几个常用的: {position: static;position: relative;position: absolute;positio…

    2025年12月24日 好文分享
    000
  • 关于CSS的display:inline-block属性的使用

    这篇文章主要介绍了css的display:inline-block属性的使用,其中对使用时产生的空隙问题的解决作了重点讲解,需要的朋友可以参考下 display:inline-block感觉与display:table-cell有些相似,例如对内部元素的包裹性。但是,由于display:inline…

    2025年12月24日 好文分享
    000
  • 关于CSS3的animation实现逐帧动画效果

    这篇文章主要介绍了css3 animation实现逐帧动画效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 css3里面的animation属性非常强大,但是自己用的比较少,最近有次面试就刚好被问到了,趁现在有时间就对animation做一个小总结。同时实现一个逐帧动画的demo作为练习 an…

    2025年12月24日 好文分享
    000
  • 如何利用CSS实现标题文字过长部分显示省略号

    这篇文章主要介绍了css实现标题文字过长部分显示省略号的方法,并且讲解了针对单行文字溢出和多行文字溢出的情况,需要的朋友可以参考下 前段时间在公司移动站的重构,遇到了一个产品列表title的需求是只显示两行,然后超过两行的字符用省略号显示。如下图的效果,当时第一感觉是这个需求只能通过后台输出的时候截…

    好文分享 2025年12月24日
    000
  • 关于不同浏览器下的CSS中Hack的兼容性

    这篇文章主要介绍了各种浏览器下的css hack兼容性写法,css hack大致可以分为内部hack和选择器hack以及html头部引用hack,需要的朋友可以参考下 由于不同浏览器所遵循的标准也有所不同,再加上不可避免的程序bug、经济利益等因素的干扰。同样的网页代码(HTML + CSS),在不…

    好文分享 2025年12月24日
    000
  • 关于CSS background的使用方法

    下面为大家带来一篇css background全部汇总。内容挺不错的,现在就分享给大家,也给大家做个参考。 所有背景属性都不能继承。 1. background-color 所有元素都能设置背景颜色。 background-color的默认值是transparent;也就是说,如果一个元素没有指定背…

    好文分享 2025年12月24日
    000
  • 关于CSS3 rem(设置字体大小)的解析

    本篇文章主要介绍了详解css3 rem(设置字体大小) 教程,内容挺不错的,现在分享给大家,也给大家做个参考。 css3新增了相对单位 rem ,使用rem同em一样皆为相对字体大小单位,不同的是rem相对的是HTML根元素。鉴于很多网友提到了rem,所以我这里就对其中一个总结。 在Web中使用什么…

    2025年12月24日
    000
  • 关于css中清除浮动塌陷的方法

    这篇文章主要介绍了关于css中清除浮动塌陷的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 在大家在使用css的过程中,多多少少会遇到清除浮动这个问题。所以这篇文章给大家总结了p+css中关于清除浮动塌陷的4种方法,相信会对大家学习或者使用p+css能有所帮助,有需要的朋友们下面…

    2025年12月24日 好文分享
    000

发表回复

登录后才能评论
关注微信