认识css样式clip: 认识隐藏页面元素的另一个技巧

在页面上,我们经常会用到radio, 比如性别:男,女,保密.

但我们不喜欢默认的radio样式!我们会用其他的来替代.

 

我最初的做法是, 用label显示,设置radio为隐藏! (即display:none;)

当我点击label的时候,同时触发radio的click事件.

即: ($是jquery)

$(".label1").click(function(){

$(".radio1").click();

        // 其他代码更改样式,让label显示为(非)激活状态

});

 

Firefox和Chrome都比较正常, 但IE下杯具了!

进一步调试,发现,原来IE下不会触发隐藏元素的事件,即有样式"display:none;"的元素.

 

这个时候我想到jQuery也有实现这个功能的插件!于是就去查那个插件的源码,啥也没查到!

然后Firebug查css,终于, clip印入我的眼帘.

 

在此,引用w3school上的说明:http://www.w3school.com.cn/css/pr_pos_clip.asp

 

语法:object.style.clip="rect(0px,50px,50px,0px)"

默认值是auto

四个参数,和css其他样式一样,分别对应:上,右,下,左.

基于元素左上角定位!

即:(上下边界离上边的距离,左右边界离左边的距离)

上边界距上边0

右边界距左边50

下边界距上边50

左边界距左边0

可见这个是显示元素左上角50×50的范围

 

这个css样式要配合绝对定位样式才会起作用,即下面两个经常一起出现:

object.style.position="absolute";

object.style.clip="rect(0px,50px,50px,0px)";

 

回到我们radio的问题,我们不能设置radio "display:none;"

而是设置

position : absolute;

clip        : rect(1px, 1px, 1, 1px);

 

这个时候,radio不再是隐藏的,而是可见的元素,不过通过裁剪(clip),我们实际上是看不见它的, 问题解决!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值