CSS基础 | 青训营笔记

63 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天

今天来总结下CSS的笔记,除了课堂知识点外还做了一些面试题,加入了对应的思考,应该算是温故知新了。

课堂知识点

graph TD
css基础-->选择器
css基础-->选择器性质
css基础-->盒模型
css基础-->常规流

知识点详细

css引入

外部引用或直接写html里。

<link type="text/css" rel="styleSheet" href="CSS文件路径" />

<style type="text/css"> @import url("css文件路径"); </style>

<style type="text/css"> div{ width: 65px; height: 50px; background: green; } </style>

<p style="color:red;font-size:30px;"></p>

选择器

  • id选择器:#id名
  • 类选择器:.class名
  • 伪类选择器::hover
  • 标签选择器:div
  • 通配符:*

还有一些实践的时候见到的

  • 相邻兄弟选择器: p+h1
  • 第一个子选择器:li>ul
  • 第n个字选择器:p:nth-child(n)
  • 后代选择器:div ul

选择器性质

  1. 优先级

有时候同一个标签会被多个选择器选中,当属性冲突的时候,则按选择器优先级来。总结一句就是,越具体的选择器级别越高。其中id>(伪)类>标签,量化分析的话,就是统计这三个类别的个数个数,从前往后按百分位,十分位,个位加一起,数字大的优先级大。

  1. 继承性

子元素的某些元素(文字属性、光标属性、可见性)默认会继承父元素属性,有些不继承(盒模型相关属性),可使用inherit来强制继承。

盒模型

感觉盒模型是那种初看没什么东西,很简单,但是实际上手幺蛾子一堆的知识,细节太多了,也不好讲。就上一张图吧。盒模型本身是文档渲染的常规布局,包括block\inline\inline-block。即网页呢内容都会放到一个个如下图的盒子里,都具有盒子的一些属性。 盒模型

平常的width和height都是指content的宽高,加入box-sizing: border-box;后即代表加入padding和border后的宽高

常规流(文档流)

文档排版布局的方式。网页上的元素默认按照盒模型进行排列,而盒模型又可以分为块级元素和内联元素。 块级元素:p、h1、div、 ul、ol、li、 table、 form;内联元素:input、 a、 img、 span。可以通过display属性更改盒模型类别。

而块级元素采用BFC排版,即从顶部开始Box会在垂直方向,一个接一个地放置。而内联元素采用IFC排版,即从块的顶部开始,一个接一个地水平摆放。

元素也可以脱离原本的位置,人为的指定ta的位置,即脱离常规流。使用position属性实现。当属性值为absolute(绝对定位),则彻底脱离文档,且不在原位置留下占位,用left、top、right、bottom来指定距离有position父级的位置,不指定则相当于没脱离文档流(父级元素用)。当属性值为relative(相对定位)时,彻底脱离文档,且不留占位符,此时left、top这些属性相对原来位置。当属性为none时,相当于删除元素。当为fixed时,相对视窗定位。

visibility:hidden只是不可见,并不删除元素,不修改文档流

还有一个零碎知识点,浮动用来指定元素排版到容器右边或左边,使用float:left/right即可。

课后总结

css还是得多写,要不然学不到多少属性,学到的属性也不知道怎么用。不算太难,就是混乱。