css一些使用总结

143 阅读2分钟

css一些使用总结

## css 单行,多行省略

单行省略

        max-width: 100px; // 指定最大宽度
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;

多行省略(有问题,待修改)

.mul-ellipsis() {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  word-break: break-all; // 让文字可以换行
}

1px

使用伪类

// 修改鼠标选中字体的颜色

::selection {
  color: #fff;
  background: #3262fd;
}

行的下划线消失问题

默认增加如下就可以实现:

text-decoration:underline;

对于一些特殊字母,如j,就会不显示下换线,增加如下全局样式:

* {
  text-underline-position: under;
}

行内元素设置oerflow:hidden,其他元素无法对其

一个块级元素中有几个在同一水平线上的行内块元素,设置其中某个元素的oveflow:hidden之后,会导致这几个行内元素不再是同一水平线上对齐

原因是: 1)行内元素的默认vertical-align:baseline(基线对齐),设置overflow不为visible之后会改变他的基线为下边距边缘 2)其他行内元素为了对齐,就会发生向下偏移的现象

解决方案:设置overflow的行内元素对齐方式 vertical-align:bottom 参考链接: wow.techbrood.com/fiddle/1543…

滚动事件

首先确定需要滚动的元素

1.默认情况下给需要滚动的子元素的父元素设置固定高度,然后添加overflow-y: auto

  height: calc(100vh - 180px);
  overflow-y: auto;

然后如果需要隐藏滚动条:

  &::-webkit-scrollbar {
  width: 0 !important
  }

然后监听父元素的滚动事件

  const onScroll = throttle(
    e => {
      const { scrollHeight, scrollTop, clientHeight } = e.target
      console.log(scrollHeight, scrollTop, clientHeight);
      const scroll = scrollTop - beforeScrollTop
      // console.log(scrollTop, beforeScrollTop, scroll, 'scrollTop, beforeScrollTop, scroll');
      if (scroll > 0) {
        if (scrollTop + clientHeight + 30 >= scrollHeight) {
          // 加载下一页 console.log('加载下一页');
          onUpdate('nextPage', {})
        }
      }
      beforeScrollTop = scrollTop
    }, 500)

span之间有缝隙

1.font-size:0 2.设置margin-right: -4px 或者参考:juejin.cn/post/708794…

目前没有一劳永逸的方案可以解决这个问题