图一是我写的, 为什么选中这些文字时,无法选中单一项的文字,一选就是一大片,而且还是从右往左选中?
官网就可以,一次选中一个,下面是官网的 https://pubg.qq.com/
这下面是我简化出来的有问题的demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
* {
margin: 0;
padding: 0;
}
html, body {
height: 100%;
}
ul{
width: 1200px;
height: 66px;
background-color: yellow;
display: flex;
margin: 0 auto;
line-height: 66px;
justify-content: space-between;
}
li{
list-style: none;
}
a{
text-decoration: none;
}
</style>
</head>
<body>
<ul>
<li><a href="#">官网首页</a></li>
<li><a href="#">绑定查询</a></li>
<li><a href="#">国服预约</a></li>
<li><a href="#">老兵绑定</a></li>
<li><a href="#">游戏特色</a></li>
</ul>
</body>
</html>
这个不是Flex布局的问题,应该是题主在使用Flex时忽略了子容器的盒状模型。比如像下面这样修改一下,就不会有一选一大片的问题。
从DOM角度解释就是每个Element节点都包含各种Element子节点以及text节点。如果给li节点不设置盒状模型,选中文字时其实选中的会是ul包含的text节点,就会出现一些异常。