采用 clip 属性和 CSS3-transition 产生动态效果注意问题

2 篇文章 0 订阅
前面的话 >>
clip似乎是一个很少使用的属性,但最近在学习的时候我发现,它竟是一个很有趣的属性。这让才接触CSS不就得我对它越发的感兴趣了。
在学习的过程中,我也遇到了几点麻烦。
有任何新的见解欢迎评论~



(1)先是发现当鼠标hover的部分被clip处理后,竟然不能继续clip下去——html模型的构建,像这样:
起初——直接对两个盒子进行clip导致被clip后鼠标无法对消失的部分hover

  1. <div id="div1">
  2.    <div id="div2"></div>
  3. </div>



改进——用一个不会被变化的div包裹住两个span标签,只对span进行clip
  1. <a>
  2.     <div id="div1">
  3.             <span id="one"></span>
  4.             <span id="two"></span>
  5.     </div>
  6. </a>


(2)后来以为只能对鼠标hover的内容进行属性处理——没有掌握selector的使用,像这样:
起初

  1. #div1:hover{property:value;}


改进——可以在父元素hover后面 选择子元素设置样式
  1. #div1:hover #two{property:value;}


(3)最后发现,可以在一个选择器内对同一元素的多个属性进行处理,像这样:
改进——之前我一次只用一个属性过度的,这个不管,直接跳到CSS3学习这个了(我怎么这么不安分!快滚回去学CSS先-_-#)


  1. #div2{property:value;transition:All 1s ease-in-out;}
  2. #div1:hover #two{property:value;property:value;property:value;}

  1. <html>
  2. <body>
  3.         <a><div id="div1"><span id="one"></span><div><span id="two"></span></div></div></a>
  4. </body>
  5. </html>

源码:

<span style="font-family:Microsoft YaHei;font-size:14px;"><html>
<head>
<style type="text/css">
	#div2{
                width:150px;
                height:150px;
                border-radius:75px;
                background-color:orange;
                position:absolute;
                top:200px;
                left:440px;
		clip:rect(0px,150px,150px,0px);
		transition:All 1s ;
		-o-transition:All 1s;
		-webkit-transition:All 1s;
		-moz-transition:All 1s;
        }
        #div3{
                width:136px;
                height:136px;
                border-radius:68px;
                position:absolute;
                top:7px;
                left:7px;
                background-color:white;
       }
        #div2:hover{
                clip:rect(75px,150px,75px,0px)
       }
/***************************************/
	#div1{
		width: 150px;
		height: 150px;
		border-radius: 75px;
		position: absolute;
		top: 200px;
                left:730px;
	}
	#one{
		display: block;
		width: 150px;
		height: 150px;
		border-radius: 75px;
		background-color: orange;		
		position: absolute;
		clip:rect(0px,150px,150px,0px)

		
	}
	#two{
		display: block;
		width: 136px;
		height: 136px;
		border-radius: 68px;
		background-color: white;
		position: absolute;
		top: 7px;
		left: 7px;
	}
	#div1:hover #one{
		clip:rect(75px,150px,75px,0px)
	}
	#one{
		
		transition:All 1s ;
		-o-transition:All 1s;
		-webkit-transition:All 1s;
		-moz-transition:All 1s;
	}
</style>
</head>
<body>
	<a href="#"><div id="div1">
                         <span id="one"></span>
                         <span id="two"></span>
                         </div>
        </a>
        <a href="#"><div id="div2">
                         <div id="div3"></div>
                         </div>
        </a>
</body>
</html></span>

具体效果请看本人的另外一篇博文底端 

http://www.w3cfuns.com/blog-5460184-5403209.html


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值