看上去是移动端H5,而且菜单的宽度并不是自动撑开的,所以你可以直接设置每个菜单的宽度(750的设计稿,第一行就是 750/4,第二行就是750/3)。再通过rem自动转换就行了。
以下代码只能在浏览器移动模式375下才能正常显示,实际项目中再自动转成rem即可
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
.menu {
display: flex;
flex-wrap: wrap;
}
.menu__item {
height: 80px;
border: 1px solid orange;
box-sizing: border-box;
}
</style>
</head>
<body>
<div class="menu">
<div class="menu__item"></div>
</div>
<script>
const menus = [
{ name: "1", width: 300 / 4 + "px" },
{ name: "1", width: 300 / 4 + "px" },
{ name: "1", width: 300 / 4 + "px" },
{ name: "1", width: 300 / 4 + "px" },
{ name: "1", width: 300 / 3 + "px" },
{ name: "1", width: 300 / 3 + "px" },
{ name: "1", width: 300 / 3 + "px" }
];
const menusHtml = menus
.map(
item => `<div class="menu__item" style="width: ${item.width}"></div>`
)
.join("");
document.querySelector(".menu").innerHTML = menusHtml;
</script>
</body>
</html>
3 回答5.2k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
4 回答1.7k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
你看下是不是这样的,查看demo