发布网友 发布时间:2022-04-26 22:12
共6个回答
懂视网 时间:2022-04-06 15:15
本章给大家介绍用css实现横向滚动条的两种方式。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。html代码:
<div class="nav_wrap"> <ul class="nav_mine"> <li class="nav_item">全部</li> <li class="nav_item">Adobe</li> <li class="nav_item">微软</li> <li class="nav_item">会计</li> <li class="nav_item">绘画</li> <li class="nav_item">Adobe</li> <li class="nav_item">微软</li> <li class="nav_item">会计</li> <li class="nav_item">绘画</li> </ul> </div> <script src="node_modules/jQuery/tmp/jquery.js"></script>
一、 原始css + jquery 实现横向滚动条(原生js可以实现,为了方便才用的jQuery)
css代码:
* { box-sizing: border-box; margin: 0; padding: 0 } .nav_wrap{ overflow-x: scroll; } .nav_mine { padding: 15px 10px; border-bottom: 1px solid #aca9a7; height: 75px; overflow-x: scroll; overflow-y: hidden; } .nav_mine .nav_item { border: 1px solid #1a110b; border-radius: 40px; color: #aca9a7; margin-right: 10px; font-size: 24px; padding: 4px 18px; float: left; list-style: none; }
js代码:
$(function(){ var width = 0; for (let i = 0; i < $('.nav_item').length; i++) { width += $('.nav_item').eq(i).outerWidth(true); } $('.nav_mine').width(width+20); //width只是内容的宽度,需要加上padding的宽度 })
PS:为什么用js,是因为不知道tabs有多少个,不能把宽度写死,只能动态获取tabs的宽度,然后相加,获取总宽度,方便多次使用。outerWidth加上参数true,代表包含了padding+margin+border的宽度。
二 css3 -- flex
css代码:
* { box-sizing: border-box; } .nav_mine { padding: 15px 20px; border-bottom: 1px solid #aca9a7; height: 75px; display: flex; align-items: center; overflow-y: hidden; flex-wrap: nowrap; } .nav_mine .nav_item { border: 1px solid #aca9a7; border-radius: 40px; color: #aca9a7; margin-right: 22px; font-size: 24px; padding: 4px 18px; list-style: none; white-space: nowrap; }
对于white-space,item在没有用white-space:nowrap时,发现一个问题,在未设定宽度的情况下,一个单词不会换行,而汉字会换行,认为是和display:flex有关系,上网查阅,才知道:white-space是看空格来识别是否换行的,单词是作为一个字符,所以要针对于汉字和英文,都要设置white-space:nowrap不换行。因为汉字和英文的不同,导致所占的宽度不一致,所以要留1到2个像素。
热心网友 时间:2022-04-06 12:23
css是无法实现的,您要横向滚动只有通过js监听页面的拖动事件才行。给你个插件可以研究研究,这插件能让你体验到win8切换的效果。
如果你非要用滚轮来响应横向滚动 你还是得用js监听滚轮,给滚轮绑定一个事件,没次滚动都使div 内容向某个方向animate移动一个固定距离
追答expression表达式非常耗系统开销(其实就是css里内嵌的js),强烈不建议使用与之相关的一切,因为你就算在页面啥也不做鼠标轻轻移动一下expression也会运行成千上万次。
还是用js去实现吧
热心网友 时间:2022-04-06 13:41
设置这个属性就可以了overflow-y: auto;热心网友 时间:2022-04-06 15:16
css就是一个样式,不是动作。所以要实现滚动必须要js结合热心网友 时间:2022-04-06 17:07
仅仅用css恐怕不行吧,需要用到js追问所以我也很头疼...
热心网友 时间:2022-04-06 19:15
CSS 3.0中的animation,transform