当前位置:  编程技术>WEB前端

100%点击区的滑动门代码第1/2页

    来源: 互联网  发布时间:2014-09-06

    本文导语:  BLOG地址:http://www.planabc.net/article.asp?id=107 学习标准的朋友,一般都会在学习的过程中接触到CSS滑动门技术,或许大家也都看过这篇文章《CSS中的滑动门技术》,如果你还没接触过或还没看过上文或有点忘记内容,也没关系,可...

BLOG地址:http://www.planabc.net/article.asp?id=107

学习标准的朋友,一般都会在学习的过程中接触到CSS滑动门技术,或许大家也都看过这篇文章《CSS中的滑动门技术》,如果你还没接触过或还没看过上文或有点忘记内容,也没关系,可以点击上面的文章链接,先了解或温习一遍。

在《CSS中的滑动门技术》一文中的滑动门例子,大家仔细实验,或许已经发现,链接区有9像素的盲点无法点击,而且在IE下,只能点击文字部分大小,不能点击整个按钮区块。而我们或许期望的是整个按钮区块都可以点击,并且不允许有盲点存在。

那我们又该如何去实现呢?下面我们一起来探讨一些解决方法:

首先为了方便我们先把《CSS中的滑动门技术》中的代码移过来:
XHTML部分:

代码如下:

 
  
     
        
  • Home
  •  
        News 
        
  • Products
  •  
        
  • About
  •  
        
  • Contact
  •  
      
 
 

CSS部分:
代码如下:

#header { 
  float:left; 
  width:100%; 
  background:#DAE0D2 url("/blog_article/bg.gif") repeat-x bottom; 
  font-size:93%; 
  line-height:normal; 

#header ul { 
  margin:0; 
  padding:10px 10px 0; 
  list-style:none; 

#header li { 
  float:left; 
  background:url("/blog_article/left.gif") no-repeat left top; 
  margin:0; 
  padding:0 0 0 9px; 

#header a { 
  float:left; 
  display:block; 
  background:url("/blog_article/right.gif") no-repeat right top; 
  padding:5px 15px 4px 6px; 
  text-decoration:none; 
  font-weight:bold; 
  color:#765; 

/* Commented Backslash Hack 
   hides rule from IE5-Mac */ 
#header a {float:none;} 
/* End IE5-Mac hack */ 
#header a:hover { 
  color:#333; 

#header #current { 
  background-image:url("/blog_article/left_on.gif"); 

#header #current a { 
  background-image:url("/blog_article/right_on.gif"); 
  color:#333; 
  padding-bottom:5px; 


CSS中滑动门技术 body { background:#fff; margin:0; padding:0; color:#000; font:x-small/1.5em Georgia,Serif; voice-family: ""}""; voice-family:inherit; font-size:small; } html>body {font-size:small;} #header { float:left; width:100%; background:#DAE0D2 url("/articleimg/2007/02/4495/bg.gif") repeat-x bottom; font-size:93%; line-height:normal; } #header ul { margin:0; padding:10px 10px 0; list-style:none; } #header li { float:left; background:url("/articleimg/2007/02/4495/left.gif") no-repeat left top; margin:0; padding:0 0 0 9px; } #header a { float:left; display:block; background:url("/articleimg/2007/02/4495/right.gif") no-repeat right top; padding:5px 15px 4px 6px; text-decoration:none; font-weight:bold; color:#765; } /* Commented Backslash Hack hides rule from IE5-Mac */ #header a {float:none;} /* End IE5-Mac hack */ #header a:hover { color:#333; } #header #current { background-image:url("/articleimg/2007/02/4495/left_on.gif"); } #header #current a { background-image:url("/articleimg/2007/02/4495/right_on.gif"); color:#333; padding-bottom:5px; }
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

方法一:使用相对位置负外边距

为了消除滑动门的9px的盲点区域,设置li的外边距为9px(9px为left图片的宽度大小),li的背景为right图片,不重复,右上对齐。

#header li {
  background:url("/blog_article/right.gif") no-repeat right top;
  margin-left:9px;
}
然后让a向左移动9px,覆盖掉盲点区域,如何移动呢?可对a使用相对位置(position:relative;),用负值移动9px(left:-9px;)。由于li的宽度等于a的宽度,所以当a位置相对左移9px时,li的右边就会多出9px的盲区,如何解决呢?我们使用a的负外边距来解决(margin-right:-9px;)。

#header a {
  position:relative;
  left:-9px;
  margin-right:-9px;
}
设置left图片为a的背景,不重复,左上对齐,并设置文字的内边距,注意现在a的区域为整个按钮的区域,所以padding-left和padding-right的值都应为15px。

#header a {
  background:url("/blog_article/left.gif") no-repeat left top;
  padding:5px 15px 4px;
}
另注意一个细节:在IE中链接的区域为文字区域而不是按钮区域,而在其他对标准支持比较好的浏览器里是按钮区域。为了解决这个问题,我们给IE中的a指定个固定宽度来触发IE的layout(可以选用.1em,1px,1%等值),但这样一来a在其他对标准支持比较好的浏览器里则会识别这个宽度,我们选用对标准支持比较好的浏览器识别而IE6不识别的子选择器来让a的宽度变为auto。

#header a {width:.1em;}
#header > ul a {width:auto;}
相对应的,对于current选择器里的图片位置也要做一点调整:

#header #current {
  background-image:url("/blog_article/right_on.gif");
}
#header #current a {
  background-image:url("/blog_article/left_on.gif");
  padding-bottom:5px;
}

    
 
 

您可能感兴趣的文章:

  • 请教关于red hat linux系统内存消耗接近100%的原因? iis7站长之家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 磁盘分区已用空间总是100%
  • /tmp下文件利用 100%
  • linux内存使用了100%,为什么
  • 请教高手vmware上rh9一启动占用cpu100%
  • 客户机linux用halt关机后主机CPU 100%问题?
  • bash CPU占用率100%
  • 各位高手,请问这个是什么情况,CPU100%
  • linux中,cpu 100%的问题,在线等
  • centos中,mysql占cpu100%,在线等
  • 尼玛,chrome占用率100%
  • 容器高度100%的绝对定位布局
  • top命令显示wa的进程占用100%
  • 怎样调试CPU占用率100%的问题
  • 用Bochs CPU占有率长期100%,why?
  • 请问我的linux的内存占用率怎么老是接近100%啊?
  • 我的MYSQL经常占CPU100%,是怎么回事?
  • 一用打印机。。system进程就占用cpu100%,大家知道是什么原因? 怎么解决?
  • linux下通讯进程启动后cpu占用100%
  • linu下如何才能100%的证明网卡驱动程序是安好了。
  • 请教关于red hat linux系统内存消耗接近100%的原因?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3