温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

CSS如何实现简单的选项卡切换效果

发布时间:2022-02-28 11:44:21 来源:亿速云 阅读:129 作者:小新 栏目:web开发

这篇文章将为大家详细讲解有关CSS如何实现简单的选项卡切换效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

  页面布局及样式:

  <divclass="box">

  <divclass="list"id="one">1</div>

  <divclass="list"id="two">2</div>

  <divclass="list"id="three">3</div>

  <divclass="list"id="four">4</div>

  </div>

  <divclass="link">

  <ahref="#one">1</a>

  <ahref="#two">2</a>

  <ahref="#three">3</a>

  <ahref="#four">4</a>

  </div>

  ......

  .box{

  height:10em;

  border:1pxsolid#ddd;

  overflow:hidden;

  }

  .list{

  line-height:10em;

  background:#ddd;

  }

  容器设置了overflow:hidden,且每个列表高度和容器的高度一样高,这样保证永远只显示一个列表。当我们点击按钮,如第三个按钮,会改变URL地址的锚链为#three,从而触发id为three的第三个列表发生的锚点定位,也就是改变容器滚动高度让列表3的上边缘和滚动容器上边缘对齐,从而实现选项卡效果。

  3372313660-5bfce3b04c4e2_articlex.png

  但是这种方式有一定的不足之处:

  其一,容器高度需要固定;

  其二,锚点定位会触发窗体的重定位,也就是如果页面可以滚动,那么点击选项页面也会发生跳动

  为了改变这种情况,下面利用下面的方式。页面布局为:

  <divclass="box">

  <divclass="list"><inputid="one">1</div>

  <divclass="list"><inputid="two">2</div>

  <divclass="list"><inputid="three">3</div>

  <divclass="list"><inputid="four">4</div>

  </div>

  <divclass="link">

  <labelclass="click"for="one">1</label>

  <labelclass="click"for="two">2</label>

  <labelclass="click"for="three">3</label>

  <labelclass="click"for="four">4</label>

  </div>

  这样写就算页面窗体就有滚动条,绝大多数情况下,也都不会发生跳动现象。其原理就是在每个列表里塞入一个肉眼看不见的<input>输入框,然后选项卡按钮变成<label>元素,并通过for属性与<input>输入框的id相关联,这样,点击选项按钮会触发输入框的focus行为,触发锚点定位,实现选项卡切换效果。

  但是上面这种技术要想用在实际项目中还离不开JavaScript的支持,一个是选项卡按钮的选中效果,另一个就是处理列表部分区域在浏览器外面时依然会跳动的问题。

  相关处理类似下面的做法,使用jQuery语法:

  $('label.click').removeAttr('for').on('click',function(){$('.box').scrollTop(xxx);'xxx'表示滚动数值

  });

关于“CSS如何实现简单的选项卡切换效果”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

css
AI