html css时尚导航栏,使用CSS开发时髦的导航栏

我能够使用和列表创造有子菜单的导航栏吗?

有时候我们需要超过一级的导航栏 –可是在里面用样式化的列表能够创建多级导航栏吗?

解决方案

在一个导航系统中显示子菜单最好的办法是在一个列表中创建子列表。这样标记的两级导航栏很容易被理解 –哪怕浏览器不支持。

为了产生多级导航栏,我们创建一个嵌套的列表,为这些新的列表项样式化颜色、边界和链接属性:

/SPAN>

"">

Lists as navigation

content="text/html; charset=utf-8" />

#navigation {

width: 200px;

}

#navigation ul {

list-style: none;

margin: 0;

padding: 0;

}

#navigation li {

border-bottom: 1px solid #ED9F9F;

}

#navigation li a:link, #navigation li a:visited {

font-size: 90%;

display: block;

padding: 0.4em 0 0.4em 0.5em;

border-left: 12px solid #711515;

border-right: 1px solid #711515;

background-color: #B51032;

color: #FFFFFF;

text-decoration: none;

}

#navigation li a:hover {

background-color: #711515;

color: #FFFFFF;

}

#navigation ul ul {

margin-left: 12px;

}

#navigation ul ul li {

border-bottom: 1px solid #711515;

margin:0;

}

#navigation ul ul a:link, #navigation ul ul a:visited {

background-color: #ED9F9F;

color: #711515;

}

#navigation ul ul a:hover {

background-color: #711515;

color: #FFFFFF;

}

增加这些以后的显示效果如图4。

uid-10458417-id-208075.html

图4.包含子菜单的导航栏

讨论

嵌套列表是用来描述我们正在做的导航栏系统的好办法。第一个列表包含站点的主要部分,在Recipes下面的子列表显示了Recipes范围之内的子部分。即使没有任何样式,列表的结构依然清晰且容易理解,就象你在图5看到的一样。

uid-10458417-id-208075.html

图5:没有使用样式,包含子菜单的导航栏

下面是我们用来在主要项目的li元素里面标记这个简单的嵌套列表的HTML代码:

用HTML,如果简单的使用本文前面的,不做任何修改的话,导航菜单的显示将如图6。由于li元素继承主菜单的样式,子列表将呈现出主导航栏一样的样式。

uid-10458417-id-208075.html

图6:采用默认样式表子菜单导航栏

为了让嵌套的列表呈现出它是一个子菜单而不是主导航栏一部分的效果,让我们增加一个样式规则:

#navigation ul ul {

margin-left: 12px;

}

这个规则将缩进嵌套列表,让它在主菜单的右边界对齐,象图7显示的这样:

uid-10458417-id-208075.html

图7:带有缩进规则的导航栏

最后让我们给嵌套表里面的li和a元素增加一些简单的样式以便完善效果:

#navigation ul ul li {

border-bottom: 1px solid #711515;

margin: 0;

}

#navigation ul ul a:link, #navigation ul ul a:visited {

background-color: #ED9F9F;

color: #711515;

}

#navigation ul ul a:hover {

background-color: #711515;

color: #FFFFFF;

}

如何使用和列表构造一个水平菜单?

到目前为止,我们能够处理垂直导航栏了—这种导航栏在一个中间是主要内容的网站左边或右边很容易被看到。然而,导航栏也常常被做成水平菜单紧挨在文本上方。

解决方案

图8显示的这种类型的导航栏可以用样式化的列表实现。li元素必须被设置成inline(内联)显示,这样可以避免每个列表元素换行显示。

uid-10458417-id-208075.html

图8:水平菜单导航栏

这是产生这个显示效果的HTML和代码:

/SPAN>

"">

Lists as navigation

content="text/html; charset=utf-8" />

#navigation {

font-size: 90%;

}

#navigation ul {

list-style: none;

margin: 0;

padding: 0;

padding-top: 1em;

}

#navigation li {

display: inline;

}

#navigation a:link, #navigation a:visited {

padding: 0.4em 1em 0.4em 1em;

color: #FFFFFF;

background-color: #B51032;

text-decoration: none;

border: 1px solid #711515;

}

#navigation a:hover {

color: #FFFFFF;

background-color: #711515;

}

讨论

为了产生水平导航栏,我们从创建一个和前面垂直导航栏ID一样的列表开始:

象我们在垂直导航栏做的一样,我们样式化#navigation容器,给它设置一些基本的字体信息。如果页面完全是布局的话,这个ID可能还会包含一些确定导航栏在页面位置的样式:

#navigation {

font-size: 90%;

}

在ul元素的样式里面,我们移除掉列表在浏览器显示时的标志位和缩进:

#navigation ul {

list-style: none;

margin: 0;

padding: 0;

padding-top: 1em;

}

下面是把li元素的显示从垂直变换到水平的属性:

#navigation li {

display: inline;

}

在我们把display属性设定为inline之后,这个列表显示出来象图9一样:

uid-10458417-id-208075.html

图9:disply:inline的列表显示

我们剩下的工作是样式化导航栏的链接:

#navigation a:link, #navigation a:visited {

padding: 0.4em 1em 0.4em 1em;

color: #FFFFFF;

background-color: #B51032;

text-decoration: none;

border: 1px solid #711515;

}

#navigation a:hover {

color: #FFFFFF;

background-color: #711515;

}

如果你想像我这样,在每个链接外面创建一个框,记得为了在文本和它的容器边缘留更多的空隙,你必须在链接左面和右边设定更多的padding,为了在导航栏各个项目间增加更多空隙,你必须增加链接左边和右边的margins。

如何用创建按钮类型的导航栏?

看上去像是可以点击的按钮组成的导航栏是很多网站的一个特色。这种类型的导航栏常常靠模拟成按钮样子的图片来创建,通常还需要一些Javascript脚本来切换到另一张图片,这样可以模拟按钮被按下或者鼠标在上面高亮显示的效果。

只用有可能创造这样类似按钮的导航栏吗?当然!

解决方案

使用创建一个象图10显示的按钮效果是可能的,并且比较简单。这个效果的成功与否取决于你对于里面border属性的使用能力。

uid-10458417-id-208075.html

图10:按钮效果的导航栏

这是你需要的代码:

/SPAN>

"">

Lists as navigation

content="text/html; charset=utf-8" />

/>

#navigation {

font-size:90%

}

#navigation ul {

list-style: none;

margin: 0;

padding: 0;

padding-top: 1em;

}

#navigation li {

display: inline;

}

#navigation a:link, #navigation a:visited {

margin-right: 0.2em;

padding: 0.2em 0.6em 0.2em 0.6em;

color: #A62020;

background-color: #FCE6EA;

text-decoration: none;

border-top: 1px solid #FFFFFF;

border-left: 1px solid #FFFFFF;

border-bottom: 1px solid #717171;

border-right: 1px solid #717171;

}

#navigation a:hover {

border-top: 1px solid #717171;

border-left: 1px solid #717171;

border-bottom: 1px solid #FFFFFF;

border-right: 1px solid #FFFFFF;

}

讨论

为了创建这个效果,我们将使用在“如何用创建按钮类型的导航栏?”章节中描述的水平列表导航栏。与之不同的是,为了创建按钮外观,我们将在每个按钮的上边和左边使用不同于下边和右边的颜色边框。通过给上边和左边赋值比下边及右边的边框亮一些的颜色,我们创建了一个略微突起的效果。

#navigation a:link, #navigation a:visited {

margin-right: 0.2em;

padding: 0.2em 0.6em 0.2em 0.6em;

color: #A62020;

background-color: #FCE6EA;

text-decoration: none;

border-top: 1px solid #FFFFFF;

border-left: 1px solid #FFFFFF;

border-bottom: 1px solid #717171;

border-right: 1px solid #717171;

}

在鼠标停留在上面的状态下,我们反转边框的颜色,这样就创造了按钮被按下的效果。

#navigation a:hover {

border-top: 1px solid #717171;

border-left: 1px solid #717171;

border-bottom: 1px solid #FFFFFF;

border-right: 1px solid #FFFFFF;

}

试着使用更深的边框,改变链接的背景图片,去创造属于你自己的设计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTMLCSS导航栏是通过HTML标签和CSS样式来创建和设计的。通常情况下,导航栏使用无序列表(ul)和列表项(li)来表示各个导航链接,然后使用CSS样式对其进行布局和样式化。 首先,在HTML中创建一个ul标签,并在其中使用多个li标签来表示每个导航链接。每个li标签中包含一个a标签,用于指定导航链接的文本和目标URL。 接下来,在CSS中,你可以使用选择器来选择导航栏的各个元素,并为其应用样式。你可以使用float属性将导航链接水平排列在一行中,使用margin和padding属性来调整导航栏的位置和间距,使用background-color属性设置导航栏的背景颜色,使用font-size和color属性来设置导航链接的字体大小和颜色等。 以下是一个示例的HTMLCSS代码,用于创建一个简单的水平导航栏HTML代码: ``` <nav> <ul class="navbar"> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Services</a></li> <li><a href="#">Contact</a></li> </ul> </nav> ``` CSS代码: ``` .navbar { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #f1f1f1; } .navbar li { float: left; } .navbar li a { display: block; color: #333; text-align: center; padding: 14px 16px; text-decoration: none; } .navbar li a:hover { background-color: #ddd; } ``` 这个示例中,我们使用了一个简单的无序列表来创建导航栏,每个导航链接都被包含在li标签中。然后,我们使用CSS样式对导航栏进行了一些基本的样式设置,例如背景颜色、字体颜色、鼠标悬停效果等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值