CSS随笔

76 阅读2分钟

1.实现一个水平垂直居中布局

  • 使用flex布局:水平方向justify-content:center,垂直方向align-items:center

  • 使用绝对定位:设置position:absolute; top:50%; left:50%; 然后设置margin-left:-50%; margin-top:-50%; 或者translateX:-50%; translateY:-50%;

  • 水平居中可以设置左右margin:auto;

  • 对于文本可以设置text-align:center;水平居中,设置line-height等于父容器高度实现单行文本垂直居中

2.文本多行超出省略号

display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;

3.CSS盒子模型

box-sizing:border-box和content-box

4.CSS几种定位的规则、定位参照物、对文档流的影响

static:默认,没有定位,元素正常出现在文档流中

relative:相对于元素在文档流中的正常位置进行定位,不脱离文档流

absolute:相对于第一个非static的父元素进行定位,脱离文档流

fixed:相对于浏览器窗口进行定位,脱离文档流

sticky:在浏览器可视区域内类似于relative定位,滚动到可视区域外类似于fixed定位,通常用来做吸顶效果

5.CSS预处理器和后处理器

CSS预处理器可以为CSS提供一些编程语言所具有的特性,如变量,嵌套,混合,继承等,可以提升开发效率

最常用的三种sass,less,stylus

CSS后处理器可以对CSS进行处理,最终生成CSS的预处理器,属于广义上的预处理器。常用的有AutoPrefixer,和CSS压缩工具

6.CSS模块化方案

  • 每个页面的根节点设置唯一的类名,然后通过根类名+后代选择器的方式实现样式在每个页面内的私有化,只适合小型项目

  • vue中的scoped方案,给每个模块生成一个唯一的属性值,然后将这个属性值添加到模块内的每一个节点上,再配合属性选择器实现样式在模块内的私有化。 但是这种方案是有一定缺陷的,内部样式可能会被其他外部样式干扰

  • 使用CSS Modules方案,通过js来维护CSS中类名的唯一映射值,简单来说就是通过webpack等打包工具将类名编译为一个唯一哈希字符串,并维护它们之间的映射关系