HTML从入门到入土 - 导航栏和一点有趣的CSS实例


date: 2018-07-27 02:28:36
HTML是静态的,可以利用CSS来制作各种特效,今天我在美化页面的时候想到可以制作各种页面效果,特别是很多动态特效,需要js或者css都可以实现。

DIV标签阴影

可以制作卡片效果,原文点击此处
使用边框阴影box-shadow属性可以制作出光晕、浮雕等PS才能实现的特效。
IE6~8不支持box-shadow,IE9+FireFox4.0、Chrome、Opera及Safari5.1.1支持该属性。

基本语法

box-shadow:color h-shadow v-shadow blur spread inset;

  • color:阴影颜色 ------------ 可选
  • h-shadow :水平偏移量 ----必选
  • v-shadow:垂直偏移量-----必选
  • blur:模糊距离 -------------可选
  • spread:阴影尺寸---------- 可选
  • inset:内阴影 --------------可选
.div1{
            width:200px;
            height:200px;
            margin:20px auto;
            line-height: 200px;
            text-align: center;
            background: cadetblue;
            border:2px solid darkslategray;
            box-shadow: darkgrey 10px 10px 30px 5px ;//边框阴影
        }
...
<div class="div1">边框阴影示例</div>

上面就是一个简单的栗子,效果是类似卡片的立体背景阴影效果。
inset参数可选可不选,选择该参数则表示为内阴影,不选则默认为外阴影。
偏移量即阴影在x和y方向的移动距离,也可以说是立体感。
阴影尺寸决定了阴影的长度,模糊程度即为阴影最重要的。
具体使用搭配可以亲自尝试感受这个效果。

导航栏特效 一

这里好像有很多导航栏Demo
原文出处
这个特效可以仅借助CSS完成,当然js也可以实现。
首先需要制作横向导航栏,使用position绝对布局,此处不多赘述,借助伪元素,将下划线作用于每一个li标签。

li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-bottom: 2px solid #000;
}

接下来考虑动画第一步,下划线从一侧展开,使用绝对定位,设置li的宽度为0,hover的时候宽度由0->100%

li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  border-bottom: 2px solid #000;
}
li:hover::before {
    width: 100%;
}

而此时可以发现从第二个选项划至第一个的时候,第一个选项下划线回收方向是从右向左,可是我们需要它从左向右回收,这时候修改一下left值,设为100%,这样第一个选项的回收就好了。

li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 100%;
  width: 0;
  height: 100%;
  border-bottom: 2px solid #000;
}
li:hover::before {
  left: 0;
  width: 100%;
}

但是第一个好了第二个又出问题了,现在需要在不修改hover的li移动方向的情况下改变下一个移动方式。
使用**~**选择符
对于当前 hover 的 li ,其对应伪元素的下划线的定位是 left: 100%,而对于 li:hover ~ li::before,它们的定位是 left: 0。

li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 100%;
  width: 0;
  height: 100%;
  border-bottom: 2px solid #000;
  transition: 0.2s all linear;
}
li:hover::before {
  width: 100%;
  left: 0;
}
li:hover ~ li::before {
  left: 0;
}

至此这个特效就实现了,完整代码如下,但是我发现如果这个导航栏有背景色,不管什么颜色他都没有效果了,很奇怪,还有其实我不怎么能看懂这玩意,我现在觉得我能用上已经不错了

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <style>
        *{margin:0;padding:0;}
        a{text-decoration:none;color:#000;}
        ul{margin-top:100px;}
        li{float:left;list-style:none;padding:0 20px;cursor:pointer;position:relative;}
        li::before {
          content: "";
          position: absolute;
          top: 0;
          left: 100%;
          width: 0;
          height: 100%;
          border-bottom: 2px solid #4C7C9C;
          transition: 0.2s all linear;
          z-index:-1;
        }
        li:hover::before {
          width: 100%;
          left: 0;
        }
        li:hover ~ li::before {
          left: 0;
        }        
    </style>
    <body>
        <ul>
            <li><a href="http://www.baidu.com">11111</a></li>
            <li><a href="http://www.taobao.com">22222</a></li>
            <li><a href="http://www.sina.com">33333</a></li>
            <li><a href="http://www.jd.com">44444</a></li>
            <li><a href="http://www.360.com">55555</a></li>
        </ul>
    </body>
</html>

导航栏特效 二

原文地址
效果图如下
image
image
CSS代码如下

#nav{margin:50px}
.box{width:0;height:0}
.btn{text-align:center;width:100px;height:50px;background-color:#663399}
.btn span{line-height:50px;color:#fff;font-size:16px;font-weight:700}
.btn:hover{background-color:#ffab8e}
.link_list{display:none;width:100px;background-color:#B6B684;text-align:center}
.btn:hover .link_list{display:block}
.link_list ul{margin:0;padding:0;list-style:none}
.link_list ul a{font-size:16px;text-decoration:none}
.link_list li:hover{color:#fff;background-color:brown}

Html代码如下

<div id="nav">
    <div class="box">
        <div class="btn">
            <span>今日热卖</span>
            <div class="link_list">
                <ul>
                    <li><a href="#"><span>超链接</span></a></li>
                    <li><a href="#"><span>超链接</span></a></li>
                    <li><a href="#"><span>超链接</span></a></li>
                    <li><a href="#"><span>超链接</span></a></li>
                    <li><a href="#"><span>超链接</span></a></li>
                    <li><a href="#"><span>超链接</span></a></li>
                </ul>
            </div>
        </div>
    </div>
</div>

导航栏特效 三

原文出自牛图库
image
相关素材图片我已经上传云存储,直接载入链接即可使用。
顺序分别为上下两个链接
紫色

http://my-web-image.oss-cn-beijing.aliyuncs.com/18-8-17/70132085.jpg
http://my-web-image.oss-cn-beijing.aliyuncs.com/18-8-17/69547621.jpg

绿色

http://my-web-image.oss-cn-beijing.aliyuncs.com/18-8-17/28643869.jpg
http://my-web-image.oss-cn-beijing.aliyuncs.com/18-8-17/79245850.jpg

红色

http://my-web-image.oss-cn-beijing.aliyuncs.com/18-8-17/91673116.jpg
http://my-web-image.oss-cn-beijing.aliyuncs.com/18-8-17/14933803.jpg

CSS代码如下,将相应图片的存储链接替换即可

.blue #slatenav{position:relative;display:block;height:42px;font-size:11px;font-weight:bold;background:transparent url(http://my-web-image.oss-cn-beijing.aliyuncs.com/18-8-17/60056145.jpg) repeat-x top left;font-family:Arial,Verdana,Helvitica,sans-serif;text-transform:uppercase;}
.blue #slatenav ul{margin:0px;padding:0;list-style-type:none;width:auto;}
.blue #slatenav ul li{display:block;float:left;margin:0 1px 0 0;}
.blue #slatenav ul li a{display:block;float:left;color:#D5F1FF;text-decoration:none;padding:14px 22px 0 22px;height:28px;}
.blue #slatenav ul li a:hover,.blue #slatenav ul li a.current{color:#fff;background:transparent url(http://my-web-image.oss-cn-beijing.aliyuncs.com/18-8-17/46106443.jpg) no-repeat top center;}

Html代码如下

<div class="blue">
<div id="slatenav">
<ul>
<li><a href="" title="css menus" class="current">Home</a></li>
<li><a href="http://www.niutuku.com/" title="css menus">About Us</a></li>
<li><a href="http://www.niutuku.com/" title="css menus">Services</a></li>
<li><a href="http://www.niutuku.com/" title="css menus">Our Work</a></li>
<li><a href="http://www.niutuku.com/" title="css menus">Contact Us</a></li>
</ul>
</div>
</div>

导航栏特效 四

image
image
出自百度经验,鼠标滑过效果是选项颜色改变,同时下方有指示图标,这个图标是一个背景图,可以更改的,你做出好看的指示图后直接替换background中url的地址即可,我用的箭头图片已经放到图床了,可以直接使用。
CSS代码如下

<style type="text/css">
		.nav ul li{
			margin:0px;
			padding:0px;
			list-style:none;
			float:left;
		}
		.nav ul{
			position:absolute;
			border-bottom:2px solid red;
			padding-left:30px;
			padding-right:30px;
		}
		.nav ul li a{
			font-size:24px;
			color:#000;
			text-decoration: none;
			padding:20px 	30px;
			float:left;
		}
		.nav ul li span{
			border-left:1px solid #ccc;
			height:25px;
			margin-top:22px;
			float:left;
		}
		.nav ul li a:hover{
			color:red;
			background:url("http://my-web-image.oss-cn-beijing.aliyuncs.com/18-8-27/3518495.jpg") no-repeat center 50px;
			background-size: 30px 20px;
		}
</style>

Html代码如下

<div class="nav">
		<ul>
			<li><a href="#">首页</a><span></span></li>
			<li><a href="#"></a><span></span></li>
			<li><a href="#"></a><span></span></li>
			<li><a href="#"></a><span></span></li>
		</ul>
	</div>

导航栏特效 五

使用CSS和Jqery实现可收缩的三级菜单,要想使用新需要将对应版本的jq文件复制到当前目录下。
image
CSS以及JQuery代码

<script>
ul,li{list-style: none;}
a:link,a:visited{text-decoration: none;}
.list{width: 210px;border-bottom:solid 1px #316a91;margin:40px auto 0 auto;}
.list ul li{background-color:#467ca2; border:solid 1px #316a91; border-bottom:0;}
.list ul li a{padding-left: 10px;color: #fff; font-size:12px; display: block; font-weight:bold; height:36px;line-height: 36px;position: relative;
}
.list ul li .inactive{ background:url(http://my-web-image.oss-cn-beijing.aliyuncs.com/18-8-23/97911310.jpg) no-repeat 184px center;}
.list ul li .inactives{background:url(http://my-web-image.oss-cn-beijing.aliyuncs.com/18-8-23/8662614.jpg) no-repeat 184px center;} 
.list ul li ul{display: none;}
.list ul li ul li { border-left:0; border-right:0; background-color:#6196bb; border-color:#467ca2;}
.list ul li ul li ul{display: none;}
.list ul li ul li a{ padding-left:20px;}
.list ul li ul li ul li { background-color:#d6e6f1; border-color:#6196bb; }
.last{ background-color:#d6e6f1; border-color:#6196bb; }
.list ul li ul li ul li a{ color:#316a91; padding-left:30px;}
</style>
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
	$('.inactive').click(function(){
		if($(this).siblings('ul').css('display')=='none'){
			$(this).parent('li').siblings('li').removeClass('inactives');
			$(this).addClass('inactives');
			$(this).siblings('ul').slideDown(100).children('li');
			if($(this).parents('li').siblings('li').children('ul').css('display')=='block'){
				$(this).parents('li').siblings('li').children('ul').parent('li').children('a').removeClass('inactives');
				$(this).parents('li').siblings('li').children('ul').slideUp(100);

			}
		}else{
			//控制自身变成+号
			$(this).removeClass('inactives');
			//控制自身菜单下子菜单隐藏
			$(this).siblings('ul').slideUp(100);
			//控制自身子菜单变成+号
			$(this).siblings('ul').children('li').children('ul').parent('li').children('a').addClass('inactives');
			//控制自身菜单下子菜单隐藏
			$(this).siblings('ul').children('li').children('ul').slideUp(100);

			//控制同级菜单只保持一个是展开的(-号显示)
			$(this).siblings('ul').children('li').children('a').removeClass('inactives');
		}
	})
});
</script>

Html代码

<div class="list">
	<ul class="yiji">
		<li><a href="#">中国美协章程</a></li>
		<li><a href="#" class="inactive">团体会员</a>
			<ul style="display: none">
				<li><a href="#" class="inactive active">美协机关</a>
					<ul>
						<li><a href="#">办公室</a></li>
						<li><a href="#">人事处</a></li>
						<li><a href="#">组联部</a></li>
						<li><a href="#">外联部</a></li>
						<li><a href="#">研究部</a></li>
						<li><a href="#">维权办</a></li>
					</ul>
				</li> 
				<li class="last"><a href="#">《美术》杂志社</a></li> 
			</ul>
		</li>
		<li><a href="#" class="inactive">组织机构</a>
			<ul style="display: none">
				<li><a href="#" class="inactive active">美协机关</a>
					<ul>
						<li><a href="#">办公室</a></li>
						<li><a href="#">人事处</a></li>
						<li><a href="#">组联部</a></li>
						<li><a href="#">外联部</a></li>
						<li><a href="#">研究部</a></li>
						<li><a href="#">维权办</a></li>
					</ul>
				</li> 
				<li><a href="#" class="inactive active">中国文联美术艺术中心</a>   
					<ul>
						<li><a href="#">综合部</a></li>
						<li><a href="#">大型活动部</a></li>
						<li><a href="#">展览部</a></li>
						<li><a href="#">艺委会工作部</a></li>
						<li><a href="#">信息资源部</a></li>
						<li><a href="#">双年展办公室</a></li>
					</ul>
				</li> 
				<li class="last"><a href="#">《美术》杂志社</a></li> 
			</ul>
		</li>
	</ul>
</div>

CSS列表特效 六

这个常用于新闻、下载列表等列表的制作,很常见很简洁,使用时只需要修改位置距离即可。
image
CSS代码如下

ul, li { list-style:none;} 
a{ text-decoration:none; color:#3381BF;} 
a:hover{ text-decoration:underline;} 
#movie_rank { height:260px;} 
.box2 { border:1px solid #ADDFF2; text-align:left; overflow:hidden; color:#9C9C9C; text-align:left;} 
.box2 { margin-bottom:7px;} 
.box2 h2{ background:#EEF7FE; height:21px; line-height:21px; overflow-y:hidden; border-bottom:1px solid #ADDFF2; color:#1974C8; font-size:12px; padding:0px 8px;} 
.box2 h2 a.more{ float:right; text-decoration:underline; background:url() no-repeat 100% -123px; padding-right:8px; font-weight:normal;} 
.box2 h2 span{ margin-left:5px; font-weight:normal; color:#B9B7B8;} 
.box2 .inner{ padding:8px; line-height:18px; overflow:hidden; color:#3083C7;} 
.box2 a{ color:#3083C7; white-space:nowrap;} 
.rank_list{ line-height:14px; margin:auto; padding-top:5px;} 
.rank_list li{ height:14px; margin-bottom:8px; width:290px; padding-left:20px; white-space:nowrap; overflow:hidden; position:relative;} 
.rank_list li.top3 em{ background:#FFE4B7; border:1px solid #FFBB8B; color:#FF6800;} 
.rank_list em{ position:absolute; left:0; top:0; width:12px; height:12px; border:1px solid #B1E0F4; color:#6298CC; font-style:normal; font-size:10px; font-family:Arial; background:#E6F0FD; text-align:center; line-height:12px; overflow:hidden;} 
.rank_list span{ position:absolute; width:60px; color:#B7B7B7; text-align:right; height:14px; background:#fff; left:250px;} 
#movie_rank .rank_list span{ position:absolute; width:40px; color:#B7B7B7; text-align:right; height:14px; background:#fff; left:260px;} 

Html代码如下

<p class="box2" id="movie_rank"> 
<h2><a href="#" class="more">更多</a>源码排行</h2> 
<p class="inner"> 
<ul class="rank_list"> 
<li class="top3"><em>1</em><a href="#">艾恩An-Upload 无组件上传类</a><span>21</span></li> 
<li class="top3"><em>2</em><a href="#">EasySlide jQuery图片轮显</a><span>528</span></li> 
<li class="top3"><em>3</em><a href="#">通用Ajax无刷新表彰验证类</a><span>232</span></li> 
<li><em>4</em><a href="#">支持中文的鼠标取词VB源码</a><span>74</span></li> 
<li><em>5</em><a href="#">通用Ajax无刷新表彰验证类</a><span>56</span></li> 
<li><em>6</em><a href="#">EasySlide jQuery图片轮显</a><span>85</span></li> 
<li><em>7</em><a href="#">支持中文的鼠标取词VB源码</a><span>25</span></li> 
<li><em>8</em><a href="#">多样式链接提示框组件</a><span>85</span></li> 
<li><em>9</em><a href="#">类似lightbox的无刷新图片显示插件</a><span>41</span></li> 
<li><em>10</em><a href="#">通用Ajax无刷新表彰验证类</a><span>62</span></li> 
</ul> 
</p> 
</p> 

CSS好玩特效 七

这个特效是抖动,有好玩使用又简单,非常棒!
点击此处,查看效果预览页面
使用时只需要链接.css文件后,在div中使用对应类即可,有多种抖动方式。
但是就很奇怪我链接了css没有用,等以后再说这个问题吧,现在先放一放。

OK,THANKS FOR READING.BYE BYE~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值