当前位置:Gxlcms > css > css实现横向滚动条的两种方式(代码实例)

css实现横向滚动条的两种方式(代码实例)

时间:2021-07-01 10:21:17 帮助过:29人阅读

本章给大家介绍用css实现横向滚动条的两种方式。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

html代码:

  1. <div class="nav_wrap">
  2. <ul class="nav_mine">
  3. <li class="nav_item">全部</li>
  4. <li class="nav_item">Adobe</li>
  5. <li class="nav_item">微软</li>
  6. <li class="nav_item">会计</li>
  7. <li class="nav_item">绘画</li>
  8. <li class="nav_item">Adobe</li>
  9. <li class="nav_item">微软</li>
  10. <li class="nav_item">会计</li>
  11. <li class="nav_item">绘画</li>
  12. </ul>
  13. </div>
  14. <script src="node_modules/jQuery/tmp/jquery.js"></script>

一、 原始css + jquery 实现横向滚动条(原生js可以实现,为了方便才用的jQuery)

css代码:

  1. * {
  2. box-sizing: border-box;
  3. margin: 0;
  4. padding: 0
  5. }
  6. .nav_wrap{
  7. overflow-x: scroll;
  8. }
  9. .nav_mine {
  10. padding: 15px 10px;
  11. border-bottom: 1px solid #aca9a7;
  12. height: 75px;
  13. overflow-x: scroll;
  14. overflow-y: hidden;
  15. }
  16. .nav_mine .nav_item {
  17. border: 1px solid #1a110b;
  18. border-radius: 40px;
  19. color: #aca9a7;
  20. margin-right: 10px;
  21. font-size: 24px;
  22. padding: 4px 18px;
  23. float: left;
  24. list-style: none;
  25. }

js代码:

  1. $(function(){
  2. var width = 0;
  3. for (let i = 0; i < $('.nav_item').length; i++) {
  4. width += $('.nav_item').eq(i).outerWidth(true);
  5. }
  6. $('.nav_mine').width(width+20); //width只是内容的宽度,需要加上padding的宽度
  7. })

PS:为什么用js,是因为不知道tabs有多少个,不能把宽度写死,只能动态获取tabs的宽度,然后相加,获取总宽度,方便多次使用。outerWidth加上参数true,代表包含了padding+margin+border的宽度。

二 css3 -- flex

css代码:

  1. * {
  2. box-sizing: border-box;
  3. }
  4. .nav_mine {
  5. padding: 15px 20px;
  6. border-bottom: 1px solid #aca9a7;
  7. height: 75px;
  8. display: flex;
  9. align-items: center;
  10. overflow-y: hidden;
  11. flex-wrap: nowrap;
  12. }
  13. .nav_mine .nav_item {
  14. border: 1px solid #aca9a7;
  15. border-radius: 40px;
  16. color: #aca9a7;
  17. margin-right: 22px;
  18. font-size: 24px;
  19. padding: 4px 18px;
  20. list-style: none;
  21. white-space: nowrap;
  22. }

对于white-space,item在没有用white-space:nowrap时,发现一个问题,在未设定宽度的情况下,一个单词不会换行,而汉字会换行,认为是和display:flex有关系,上网查阅,才知道:white-space是看空格来识别是否换行的,单词是作为一个字符,所以要针对于汉字和英文,都要设置white-space:nowrap不换行。因为汉字和英文的不同,导致所占的宽度不一致,所以要留1到2个像素。

以上就是css实现横向滚动条的两种方式(代码实例)的详细内容,更多请关注Gxlcms其它相关文章!

人气教程排行