html - CSS:防止带有文本内容的子元素增大窗口大小

标签 html css flexbox

我有一个文本内容很长的元素,当它大于父元素的宽度时,我想截断/收缩它。但是,不是使用“文本...”样式截断/收缩,而是整个窗口宽度增加并出现水平滚动条。 我该如何解决这个问题,通常如何防止子元素增加父元素的宽度?请注意,内容元素位于 flex 元素内。

示例代码 https://codepen.io/anon/pen/BqMNXe :

HTML

<body>
  <nav>
  </nav>

  <main>
    <article>
        lorem ipsum dolores lorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum doloreslorem ipsum dolores
    </article>
  </main>
</body>

CSS

    body{
        display: flex;
        height: 100%;
    }

    html {
      height: 100%;
    }

    nav {
        background-color: aquamarine;
        width: 20em;

        flex-shrink: 0;
        overflow-y: scroll;
        border-right: 0.2em solid black;
    }

    main {
        background-color: bisque;
        flex-shrink: 1;
        flex-grow: 1;
    }

    article {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

谢谢, Z

最佳答案

删除:

 white-space: nowrap; 

来自您的文章 css 类。

或者,如果您的意思是要截断文本。你将需要一个固定的宽度,或者如果你想用 flexbox 来做到这一点:see this

关于html - CSS:防止带有文本内容的子元素增大窗口大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53004126/

相关文章:

css - 如何限制 body 高度到视口(viewport)

html - flex.sm vs flex.md vs fxFlex.lg 和 fxFlex.gt-lg 等等有什么区别?

html - 将传单输出保存为 html

html - 如何隐藏三个相同元素的第一个和最后一个元素

html - 如何在位置 :absolute with CSS only? 时强制两个元素之间的空格

php - 移动网络应用程序的缩放表

html - 在跨度中将宽度设置为等于最小宽度是多余的吗?

html - 如果网格的宽度大于其父级的 100%,则具有粘性左列的 CSS 网格将滚动

javascript - 奇怪的垂直 div flex 行为

css - 使用 flexbox 垂直居中元素