CSS 部分
.menu {}
.menu .row {margin:0;padding:0;list-style:none;}
.menu .item {position:relative;margin:0;padding:0 0.5em;cursor:default;color:#000;box-sizing:border-box;}
.menu .item:hover {color:#FFF;background-color:#666;}
.menu .row > .item {display:inline;border:1px solid #000;box-sizing:border-box;}
html 部分
<div class="menu">
<ul class="row">
<li class="item">
File
</li>
<li class="item">
Edit
</li>
<li class="item">
View
</li>
<li class="item">
Help
</li>
</ul>
</div>
li 元素内部文本节点有换行时,如图
<div class="menu">
<ul class="row">
<li class="item">File</li>
<li class="item">Edit</li>
<li class="item">View</li>
<li class="item">Help</li>
</ul>
</div>
li 元素 html不换行时,如图
补充其他情况
文本后面增加一个空格,没有空隙

文本前面增加一个空格,空隙还在

看起来是 元素内部的 空白/换行 合并了 元素外部的 空白/换行
行内空白合并不受元素限制
知道原因后,可以这样解决问题