走进前端技术栈 - CSS| 青训营

69 阅读3分钟

走进前端技术栈 - CSS

css是什么(Cascading Style Sheets)

CSS是什么.jpg

通常CSS代码由两部分组成

  • 选择器(Selector): 选中页面中的元素

  • 声明: 给选中的原则设置属性,包裹在{}中 (声明由属性和属性值组成)

在页面中使用CSS
  • 外链 推荐!可以做到内容和样式的分离, (当然类似编写Vue组件时并没有怎么做,而是将该组件的内容,样式,逻辑都放在这个文件中,做到了关注的分离,个人理解是,就是和这个组件相关的都放在这个文件中,不相关的就不放在这个文件里)
  • 嵌入
  • 内联 不推荐!(当然有时候也会用到,比如用到一些UI组件库,有一些预定义的样式,我们可能需要通过内联的方式来设置)
CSS是如何工作的

简化的工作图(HTML -> Dom树 -> 渲染树 ->展示页面)

CSS工作原理.jpg

选择器
  • 可以通过多种方法选择元素

    • 标签名 | 类名(这类使用的最为频繁) | id

    • 通过属性(不一定要精确匹配,也可以通过匹配上某个条件来实现,比如xxx属性以xxxx开头或结尾)

      /* 存在 href 属性并且属性值匹配"https://example.org"的<a> 元素 */
      a[href="https://example.org"] {
        color: green;
      }
      
    • 按照Dom树中的位置

  • 通配选择器 * 选择所有元素

  • 伪类选择题(pseudo-classes)

    • 状态伪类 如 访问过的链接(:visited) 鼠标悬浮在上的(:hover)
    • 结构性伪类(根据Dom节点在Dom树中出现的位置来决定是否选中) 如 (li:first-child) (li:last-child)
  • 不同的选择器可以组合在一起(注意两个选择器之间是否有空格

选择器组合.jpg

  • 选择器组: 选择器之间用 ,分开
文字格式化相关
颜色
  • RGB 两种表示方法 0-255范围
    • RGB (143, 172, 135)
    • #8f(r)ac(g)87(b)
  • HSL 一种更符合直觉的表示方式

HSL.jpg

  • 关键字 black white等
  • 透明度 0(完全透明)-1(透明)
    • rgba(xx,xx,xx,xx) #xxxxxxxx
    • hsla(xx,xx,xx,xx) #xxxxxxxx
字体
  • 通过font-family属性设置

​ 通用字体族(在font-family属性值的最后一般都会加一个通用字体族,相当 于保底,只要电脑上有这一类中一种就可以正确显示,保证显示效果离预 期的相差太远)(中英文混排的情况下,建议英文的字体放在中文字体前, 因为中文字体通常也会设计英文字体)

通用字体族.jpg

  • WebFont(访问放在服务器上的字体文件,当然会带来一些性能上的开销)

web-font.jpg

​ 由于中文字体会比较大,所以一般会进行裁切优化

  • font-weight 100-900 字体粗细 (当然不是每一个字体都支持所有类型的字重)
    • 400 对应normal
    • 700 对应bold
  • line-height (默认的行高,其实是不太适合于阅读的,所以通常多行的文字,都需要设置下行高)

line-height.jpg

若制定的行高没有单位,则行高的具体值则是该数乘以字体的大小(推荐使用没有单位的方法来设置行高[相当于字体大小的几倍几倍])更为直观

  • letter-spacing word-spacing text-indent text-decoration
  • HTMl里多个连续的空格或换行,默认下会被合成一个。可以通过white-space来控制这一行为
调试CSS

右键检查,选中Dom节点,来修改其对应的CSS属性

注:文中使用的图片引用了 赵文博 老师的课件,十分感谢!若有侵权,请联系我,将第一时间删除