CSS实现点击事件及实践

实现原理利用:target,把a标签自身的href以及id设置成一样的。

案例1:实现元素的切换

HTML:

<div id="box">
  <a href="#a" id="a">
    <p>我是P1的内容</p>
  </a>
  <a href="#b" id="b">
    <p>我是P2的内容</p>
  </a>
</div>

CSS:

body,div{
  margin:0;
  padding:0;
}
#box>a{
  display:none;
}
#box>a:first-of-type{
  display:block;
}
#box>a:target{
  display:none;
}
#box>a:target + a{
  display:block;
}

效果

点击后成这样。

再次点击

实现的原理就是先让所有的a标签隐藏,让第一个显示,当点击的时候让自己隐藏让它的下一个兄弟元素显示,其实这里有个坑,一开始实现这个效果的时候我以为会出问题,其实光这句话是不够的,刚刚碰巧我使用了

#box>a:first-of-type{
  display:block;
}

其实很关键,因为+号是匹配不了它的上一个兄弟元素的,不太好解释,自己去想吧。

案例2:通过点击事件结合模拟父元素选择器使用可以看这篇文章:CSS中模拟父元素选择器

案例3:利用target制作的tab切换可以看这篇文章:CSS3选择器的研究,案例 ctrl+f 搜索target

当然还有其他可以做的,暂时没想到,有新想法再更新。

时间: 2024-07-30 13:43:15

CSS实现点击事件及实践的相关文章

CSS伪类选择器active模拟JavaScript点击事件

一.说明 设置元素在被用户激活(在鼠标点击与释放之间发生的事件)时的样式. IE7及更早浏览器只支持a元素的:active,从IE8开始支持其它元素的:active. 另:如果需要给超链接定义:访问前,鼠标悬停,当前被点击,已访问这4种伪类效果,而又没有按照一致的书写顺序,不同的浏览器可能会有不同的表现.超链接的4种状态,需要有特定的书写顺序才能生效.注意,a:hover必须位于a:link和a:visited之后,a:active必须位于a:hover之后.可靠的顺序是:l(link)ov(v

js,css随笔(动态生成的dom做点击事件无效)

1.动态生成的DOM做点击事件无效   https://blog.csdn.net/mm_hello11/article/details/79010679 2.消除button的默认样式 margin: 0; padding: 0; border: 1px solid transparent; //自定义边框 outline: none; //消除默认点击蓝色边框效果 3. 键盘按下事件 $("#btn").keydown(function(event){ if(event.keyCo

移动端点击事件全攻略,有你知道与不知道的各种坑

看标题的时候你可能会想,点击事件有什么好说的,还写一篇攻略?哈哈,如果你这么想,只能说明你too young to simple. 接触过移动端开发的同学可能都会面临点击事件的第一个问题:click事件的300ms延迟响应.不能立即响应给体验造成了很大的困扰,因此解决这个问题就成为了必然. 这个问题的解决方案就是: zepto.js的tap事件.tap事件可以理解为在移动端的click事件,而zepto.js因为几乎完全复制jQuery的api,因此常常被用在h5的开发上用来取代jquery.

css3模拟jq点击事件

还是这个梗,收好冷.今天是一个css3模拟jq点击事件,因为我发现,css3中没有类似于,js的点击事件,那么,可不可以仿照 jq的效果,类似的做一个呢?主要用到,input里面的radio 单选按钮,然后后面跟一个a标签,让radio覆盖在a上,那为什么不直接 把 a放在radio上面呢?因为选择器 + 好选择嘛,用radio的功能,a来修饰按钮样式,再把radio 隐藏,这里要用opacity(透明度) 这就是,主要原理! 上视图吧 <!DOCTYPE html> <html>

百度地图聚合点加点击事件

在做项目的时候需要用到聚合点  看完聚合点的时候有需要详情 下面是效果 代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user

点击事件问题

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style type="text/css"> .btn1 { width:200px; height:50px; background -color:gary; } </

JS如何将拖拉事件与点击事件分离?

帖子:http://bbs.csdn.net/topics/390785395?page=1#post-397369340 如何将拖拉事件跟点击事件分离? 需要做到:拖拉时不触动点击事件 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> js拖拽组件1 </title> <script type="text/javascript" src=&qu

Icicle partition,这里的点击事件很厉害。

<!DOCTYPE html> <html> <head> <title>Icicle</title> <script type="text/javascript" src="../d3.min.js"></script> <script type="text/javascript" src="Icicle.json"></s

分析js操作动态获取屏高并触发按钮点击事件回到页面窗口的顶部

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>回到顶部</title> <style> .d1{ width:100%; height:5000px; } #btn{ width:100px; height:40px; position:fixed; right:0; bottom:0; dis