我们可以有两种方式实现:一种是利用html+css+js方法,一种是可以利用flex布局。
一.html+css+js方法
- HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./css/css.css">
<title>Document</title>
</head>
<body>
<div class="scroll">
<ul>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
<li>逢考必过</li>
</ul>
</div>
<script >
</script>
</body>
</html>
2.css
* {
box-sizing: border-box;
margin: 0;
padding: 0
}
.scroll{
overflow-x: scroll;
}
.scroll ul {
padding: 15px 10px;
border-bottom: 1px solid #aca9a7;
height: 75px;
overflow-x: scroll;
overflow-y: hidden;
}
.scroll ul li {
border: 1px solid #1a110b;
border-radius: 40px;
color: #aca9a7;
margin-right: 10px;
font-size: 24px;
padding: 4px 18px;
float: left;
list-style: none;
}
3.js
$(function(){
var width = 0;
for (let i = 0; i < $('.li').length; i++) {
width += $('.li').eq(i).outerWidth(true);
}
$('.ul').width(width+20); //width只是内容的宽度,需要加上padding的宽度
})
二.flex布局
* {
box-sizing: border-box;
margin: 0;
padding: 0
}
.scroll{
width: 100%;
}
.scroll ul {
padding: 15px 20px;
border-bottom: 1px solid #aca9a7;
height: 75px;
display: flex;
align-items: center;
overflow-y: hidden;
flex-wrap: nowrap;
}
.scroll ul li {
border: 1px solid #aca9a7;
border-radius: 40px;
color: #aca9a7;
margin-right: 22px;
font-size: 24px;
padding: 4px 18px;
list-style: none;
white-space: nowrap;
}