给元素加一个display:table;就好了。
代码在这:https://codepen.io/cuteyangya...
<!DOCTYPE html><html><head> <title></title><style type="text/css"> .outer,outer2{ width: 100px; overflow: hidden; } .inner{ white-space: nowrap; } .inner2{ white-space: nowrap; display: table; } </style></head><body> <div class="outer"> <div class="inner">很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。</div> </div> <div class="outer"> <div class="inner2">很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。很长的文字。</div> </div> <script type="text/javascript"> console.log(document.querySelector('.inner').offsetWidth) // 100 console.log(document.querySelector('.inner2').offsetWidth) // 1536 </script></body></html>
或者改成
float: left
position: absolute
display: inline-block
参考链接:
https://stackoverflow.com/que...
https://stackoverflow.com/que...
https://stackoverflow.com/que...