跳到主要内容

5 篇博文 含有标签「CSS」

查看所有标签

word-break 和 overflow-wrap

· 阅读需 6 分钟

主要描述浏览器中文本换行,以及对比 word-breakoverflow-wrap 这两个CSS属性在防止文本溢出上的效果.

父元素宽度自适应子元素宽度

· 阅读需 2 分钟

默认情况下,一个 div 元素的宽度是父容器内容的 100%,哪怕这个 div 的子元素的宽度超出了。

可以看到下面这个示例,container 的背景色并不是和内容等宽的。

实时编辑器
function Scrollable() {
  const styleScrollable = {
    height: '100px',
    backgroundColor: 'antiquewhite',
    overflow: 'auto'
  }

  const styleContainer = {
    // width: 'max-content',
    height: '50px',
    display: 'flex',
    alignItems: 'center',
    backgroundColor: 'lightblue',
    gap: '20px',
  }

  const styleItem = {
    flexGrow: '1',
    flexShrink: '0',
    // flexBasis: '200px',
    width: '200px',
    backgroundColor: 'cadetblue',
  }

  return (
    <div class="scrollable" style={styleScrollable}>
      <p>scrollable</p>

      <div class="container" style={styleContainer}>
        <div style={styleItem}>item</div>
        <div style={styleItem}>item</div>
        <div style={styleItem}>item</div>
        <div style={styleItem}>item</div>
        <div style={styleItem}>item</div>
        <div style={styleItem}>item</div>
      </div>
    </div>
  )
}
结果
Loading...

要解决这个问题,可以给 container 一个显示的宽度。比如 width: max-content

flex basic

但是这里有个特别需要注意的

如果子元素是通过 flex 布局的 flex-basis 计算宽度撑宽的,那这里的 width 又会出现问题。

所以,务必要给容器元素和子元素都加上 width 属性。

文本换行

· 阅读需 5 分钟

white-spaceword-breakoverflow-wrap(word-wrap) 三个属性整理