1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 状态输出导航栏html css3与html5实现响应式导航菜单(导航栏)效果分享

状态输出导航栏html css3与html5实现响应式导航菜单(导航栏)效果分享

时间:2019-04-19 23:11:50

相关推荐

状态输出导航栏html css3与html5实现响应式导航菜单(导航栏)效果分享

此方法可以应用到有特别多的链接菜单项目中,特别在移动项目中,它可以将所有菜单转换成一个按钮式的下拉菜单。

HTML

示例中有一个导航菜单的html结构,元素用来定位导航菜单,.current表示当前活动的导航项。

复制代码代码如下:

首页客户服务产品展示经典案例联系我们

CSS

首先我们要给菜单nav相对定位,我们在.nav li中使用display: inline-block代替float:left,这样一来我们可以使用text-align 来对nav菜单进行左中右对齐设置。

复制代码代码如下:

.nav {

position: relative;

margin: 20px 0;

}

.nav ul {

margin: 0;

padding: 0;

}

.nav li {

margin: 0 5px 10px 0;

padding: 0;

list-style: none;

display: inline-block;

}

.nav a {

padding: 3px 12px;

text-decoration: none;

color: #999;

line-height: 100%;

}

.nav a:hover {

color: #d0d0d0;

}

.nav .current a {

background: #999;

color: #fff;

border-radius: 5px;

}

使用text-align对菜单进行右对齐和居中对齐。

/* right nav */

.nav.right ul {

text-align: right;

}

/* center nav */

.nav.center ul {

text-align: center;

}

接下来我们来做响应式设计,我们使用CSS3的media query来实现。当浏览器窗口宽度小于600px时,我们把设置成relative相对定位,把

设置成absolute绝对定位,并且display:none隐藏所有li元素,这个时候导航菜单变成一个固定大小的按钮。当鼠标滑向nav元素时,菜单下拉展开,设置所有li的样式display: block,具体请看代码:

复制代码代码如下:

@media screen and (max-width: 600px) {

.nav {

position: relative;

min-height: 40px;

}

.nav ul {

width: 180px;

padding: 5px 0;

position: absolute;

top: 0;

left: 0;

border: solid 1px #aaa;

background: #fff url(images/menu.png) no-repeat 10px 11px;

border-radius: 5px;

box-shadow: 0 1px 2px rgba(0,0,0,.3);

}

.nav li {

display: none; /* hide all items */

margin: 0;

}

.nav .current {

display: block; /* show only currentitem */

}

.nav a {

display: block;

padding: 5px 5px 5px 32px;

text-align: left;

}

.nav .current a {

background: none;

color: #666;

}

/* on nav hover */

.nav ul:hover {

background-image: none;

}

.nav ul:hover li {

display: block;

margin: 0 0 5px;

}

.nav ul:hover .current {

background: url(images/check.png) no-repeat 10px 7px;

}

/* right nav */

.nav.right ul {

left: auto;

right: 0;

}

/* center nav */

.nav.center ul {

left: 50%;

margin-left: -90px;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。