模仿绝地求生网站时遇到的一个问题,选中文字为什么只能从右往左

图一是我写的, 为什么选中这些文字时,无法选中单一项的文字,一选就是一大片,而且还是从右往左选中?
7.gif
官网就可以,一次选中一个,下面是官网的 https://pubg.qq.com/
2.gif

这下面是我简化出来的有问题的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>
阅读 2.3k
2 个回答

这个不是Flex布局的问题,应该是题主在使用Flex时忽略了子容器的盒状模型。比如像下面这样修改一下,就不会有一选一大片的问题。

li{
    list-style: none;
    width:500px;
    text-align: center;
}

从DOM角度解释就是每个Element节点都包含各种Element子节点以及text节点。如果给li节点不设置盒状模型,选中文字时其实选中的会是ul包含的text节点,就会出现一些异常。

自己回答吧. 后来发现,flex布局确实有这个一选选一片的问题, 改用float布局就可以了. 而且float布局时各个选项不能用左右margin隔开,必须用padding才可以

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题