white-space: nowrap; 元素获取不到真实宽度

Posted 周羊羊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了white-space: nowrap; 元素获取不到真实宽度相关的知识,希望对你有一定的参考价值。

给元素加一个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...

以上是关于white-space: nowrap; 元素获取不到真实宽度的主要内容,如果未能解决你的问题,请参考以下文章

具有“空白:nowrap”的元素的宽度不适应子内容

当flex遇到white-space:nowrap,超出省略无效的问题

white-space: nowrap

空白:nowrap;并且 flexbox 在 chrome 中不起作用

flex 遇到white-space:nowrap

火狐下white-space: nowrap对float的影响