CSS 滑动门技术
制作网页时,为了美观,常常需要为网页元素设置特殊形状的背景,比如微信导航栏,有凸起和凹下去的感觉。
然而,问题在于:里面的字数不一样。
为了使各种特殊形状的背景能够自适应元素中文本内容的多少,出现了CSS滑动门技术。它是从新的角度构建页面,使各种特殊形状的背景能够自由拉伸滑动,以适应元素内容的文本内容,可用性更强。 // 常见:各种导航栏的滑动门
基本原理
滑动门技术的核心是利用CSS精灵(主要是背景位置)和盒子padding撑开宽度,以便能适应不同字数的导航栏。
// 一般的经典代码为:
<li>
<a>
<span>导航栏内容</span>
</a>
</li>
- a 设置背景左侧,padding 撑开合适宽度;
- span 设置背景右侧,padding 撑开合适宽度,剩下由文字继续撑开宽度;
- 之所以a包含span就是因为整个导航都是可以点击的,同时是它们是不能有固定宽度的。
背景图 ao.png ![]()
背景图 to.png. ![]()
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>滑动门技术</title>
<style>
.nav{
/*background: url(images/wx.png) repeat-x;*/
width: 100%;
height: 33px;
overflow: hidden;
}
.nav li{
list-style: none;
float: left;
}
.nav li a{
display: inline-block;
height: 33px;
background: url(images/to.png) no-repeat;
text-decoration: none;
color: #fff;
font-size: 700;
padding-left: 15px;
line-height: 33px;
}
.nav li a span{
display: inline-block;
height: 33px;
background: url(images/to.png) no-repeat right;
padding-right: 15px;
}
.nav a:hover , .nav a:hover span{
background-image: url(images/ao.png);
/* 只写一个background-image的目的就是当鼠标附上去时只改变图片
,以前图片的样式是不会改变的 */
/* 这个鼠标附上时会把前边的全部层叠掉,所以还是得添加no-repeat */
}
</style>
</head>
<body>
<ul class="nav">
<li><a href="#"><span>首页</span></a></li>
<li><a href="#"><span>导航说明</span></a></li>
<li><a href="#"><span>菜单栏</span></a></li>
</ul>
</body>
</html>


