三十分钟快速干完CSS

114 阅读7分钟

一、复合选择器、CSS三大特性、背景

1.复合选择器

定义:由两个或多个基础选择器,通过不同的方式组合而成。
作用:更准确、更高效的选择目标元素(标签)。

  • 后代选择器:父选择器 子选择器 { CSS 属性},父子选择器之间用空格隔开。
  • 子代选择器:父选择器 > 子选择器 { CSS 属性},父子选择器之间用> 隔开。
  • 并级选择器:选择器1, 选择器2, …, 选择器N { CSS 属性},选择器之间用 , 隔开。

15f57f52b718355f8785cdda57a644c5_1729121124123-141f257a-630d-4e60-ba54-882e63b7b399_x-oss-process=image%2Fformat%2Cwebp.png

  • 交际选择器:选择器1选择器2 { CSS 属性},选择器之间连写,没有任何符号。
    注意:如果交集选择器中有标签选择器,标签选择器必须书写在最前面。
  • 伪类选择器:例:鼠标悬停状态:选择器:hover { CSS 属性 }

cbf858c0e39dbfbc007d4d2bcffe1073_1729121143672-e49f195d-27b2-4960-87f7-189e56c1f22e_x-oss-process=image%2Fformat%2Cwebp.png

2.CSS三大特性

①继承性:子级默认继承父级的文字控制属性。

67125550cd8eb908cdc904c3f87eade9_1729121201218-ff65d83d-7985-47ee-b118-382844065ed9_x-oss-process=image%2Fformat%2Cwebp%2Fresize%2Cw_512%2Climit_0.png

注意:如果标签有默认文字样式会继承失败。例如 a 标签里面的字体

②层叠性:相同的属性会覆盖:后面的 CSS 属性覆盖前面的 CSS 属性,不同的属性会叠加:不同的 CSS 属性都生效

1e142ea421013000e9d3c38057d2d5b8_1729121262418-14de8cde-38ea-41ac-a1c2-3b1d0bfcac9a_x-oss-process=image%2Fformat%2Cwebp.png

③优先级:也叫权重,当一个标签使用了多种选择器时,基于不同种类的选择器的匹配规则。

公式:通配符选择器 < 默认 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important

  • 优先级-叠加计算规则

5d59d6da5eb32c874290c11329a4c015_1729245347954-3713cf61-93e7-4458-8cfa-9d77622e1360_x-oss-process=image%2Fformat%2Cwebp.png

从左向右依次比较选个数,同一级个数多的优先级高,如果个数相同,则向后比较

3.背景

①背景图片 background-image: 默认由平铺(复制)效果

733e6af3b452218127eec0238120a96f_1729121445212-8d7de7e9-707a-4753-aa88-792ec9c8237d_x-oss-process=image%2Fformat%2Cwebp.png

②背景平铺方式 background-repeat:

1c776128dc24caee728b914a3a7d4d18_1729121510402-a3c0fa46-5556-4503-96d6-4e4e9db51625_x-oss-process=image%2Fformat%2Cwebp.png

f1027250285acb5feefd48a199fb55e2_1729121490280-8b4098d4-8f12-4561-bd44-0d26b3134049_x-oss-process=image%2Fformat%2Cwebp.png

③背景图位置 background-position:水平方向位置 垂直方向位置

5b5fc65b95b90c68b9ed1dd0633da630_1729121658800-012b3239-5295-4b2b-8271-cb9de211af1b_x-oss-process=image%2Fformat%2Cwebp.png

e94fc1db956053bdd7ed062feb3021ab_1729121597994-1e9e6c5e-3eab-40f1-9319-73c6fcb102e6_x-oss-process=image%2Fformat%2Cwebp.png

④背景图缩放
  • background-size:cover等比例缩放背景图片以完全覆盖背景区,可能背景图片部分看不见
  • background-size:contain等比例缩放背景图片以完全装入背景区,可能背景区部分空白
  • 百分比:根据父级盒子尺寸计算图片大小
  • 数字 + 单位(例如:px)
⑤背景复合属性

属性名:background:
属性值:背景色 背景图 背景图平铺方式 背景图位置(空格隔开各个属性值)

13f4d0236960d783970b51c43210fecd_1729245730981-e197c88b-b326-4a54-a72c-ae0040a6868b_x-oss-process=image%2Fformat%2Cwebp.png

二、盒子模型(边框、内外边距、圆角、阴影)

1.基本认识

240165fc22261cb0a81bec4245355faa_1729246131368-70665c34-d302-469b-9dea-555d4cedd60c_x-oss-process=image%2Fformat%2Cwebp.png 盒子模型重要组成部分:

  • 内容区域 – width & height
  • 内边距 – padding(出现在内容与盒子边缘之间)
  • 边框线 – border
  • 外边距 – margin(出现在盒子外面)

2.边框线

属性名:border:
属性值:边框线粗细 线条样式 颜色
例:border : 1px solid red
单方向边框线:border-方位名称:
例:border-left:2px dashed rgba(255,255,255,1)

0783301038ebc56511b2dad0331f85e0_1729246254098-d949d403-4558-4963-be72-0dcd290756c2_x-oss-process=image%2Fformat%2Cwebp.png

3.内边距(外边距)(圆角)

bdedf60e9bfffd55275b507a4eacf3c6_1729246404225-0dd41920-ba5d-4764-98b0-20469e71302c_x-oss-process=image%2Fformat%2Cwebp.png

1c7ee1a91b36f3def3fdb82b5f02d941_1729246543848-7610e5b7-0de7-4b9c-8ca6-72f9706610fa_x-oss-process=image%2Fformat%2Cwebp.png

2c4ccdd06fecf40b6f30139456230ab3_1729247163422-1701f511-5943-42c8-af07-96f863f2265f_x-oss-process=image%2Fformat%2Cwebp.png

  • 技巧:从上开始顺时针赋值,当前方向没有数值则与对面取值相同。
  • 技巧:版心居中– 左右 margin 值 为 auto(盒子要有宽度)
  • 技巧:兄弟之间用margin 自己用padding
  • 外边距合并:垂直排列的兄弟上下margin会合并取最大值
  • 外边距塌陷:子级添加上外边距,父级会产生塌陷问题(掉下来)。解决:①取消自己margin,父级设置padding ②父级设置overfolw:hidden ③父级设置border-top
  • 盒子尺寸自动内减:给盒子加 border / padding 会撑大盒子。解决:开启內减模式:box-sizing: border-box

3c5b02be056f5b35b35715dcea3db998_1729247251528-dc333ddd-d121-4ae9-884b-3691ad0e2c12_x-oss-process=image%2Fformat%2Cwebp.png

  • 清楚默认样式
  • 元素溢出:控制溢出元素的内容的显示方式。overflow:hidden

562d0257843e522339b23f8617effd24_1729247305184-48223c4e-f7ce-4fcb-ba2a-c03d297e7da9_x-oss-process=image%2Fformat%2Cwebp.png

  • 圆角:属性名:border-radius 属性值:数字+px/ 百分比

b262c00bbfdc8c0478d7eb7997e32732_1729248079228-7a2096c4-5f58-4393-8253-e134397b0a46_x-oss-process=image%2Fformat%2Cwebp.png

4.阴影

62c63c377102a58be6638826f5c574b4_1729248234364-74369d60-8977-4668-8625-dd5888559995_x-oss-process=image%2Fformat%2Cwebp.png

  • box-shadow:X 轴偏移量 Y 轴偏移量 模糊半径 扩散半径 颜色 内外阴影

三、标准流,flex布局,定位

1.标准流

  • 标准流也叫文档流,指的是标签在页面中默认的排布规则
  • 例如:块元素独占一行,行内元素可以一行显示多个

2.flex布局:Flex 布局也叫弹性布局,是浏览器提倡的布局模型

0c187c82207e1be5426d92f91b0815db_1729250392908-d0d28d09-b1d9-406a-aa63-fca73c264164_x-oss-process=image%2Fformat%2Cwebp.png

  • 设置方式:给父元素设置 display:flex,子元素可以自动挤压或拉伸

52a751db709ab6243bb32cd01b5bdd0c_1729250441238-00c3d515-5541-4260-a6f2-49609d85dfbb_x-oss-process=image%2Fformat%2Cwebp.png

363674e35e3eed29af928b99ac2bfeae_1729250479368-6df6cd2b-9dc5-4a76-ab3d-837ba5897287_x-oss-process=image%2Fformat%2Cwebp.png

①主轴对齐方式 justify-content

578f85c5bc066c2b675c30de0f46187b_1729250503007-92bd03a7-36ef-436d-bf4f-955c2396e8c4_x-oss-process=image%2Fformat%2Cwebp%2Fresize%2Cw_560%2Climit_0.png 各属性线效果演示:run.jb51.net/try/demo/pl…

②侧轴对齐方式align-items当前弹性容器内的所有盒子(给弹性容器设置)align-self单独控制某个盒子(给弹性盒子设置)

6cb943599d8f81a5548ef5879e3c0f62_1729250637072-a4e5ebc3-ce6b-47b2-9923-c2e9322d032a_x-oss-process=image%2Fformat%2Cwebp.png align-items效果演示:run.jb51.net/try/demo/pl… align-self效果演示:run.jb51.net/try/demo/pl…

③修改主轴方向
  • 例:flex-direction:column

修改主轴方向的效果edu.jb51.net/cssref/cssr…

4405cec2fadc02e0a204b32c2eb1e8c9_1729250676485-17e27e67-5675-4b74-8462-bc673263969a_x-oss-process=image%2Fformat%2Cwebp.png

④弹性伸缩比 控制弹性盒子的主轴方向的尺寸(给弹性盒子设置)
  • flex:1 (整数数字,表示占用父级剩余尺寸的份数。)
⑤弹性盒子换行
  • flex-wrap:wrap( wrap:换行 nowrap:不换行(默认))
⑥多行对齐方式 align-content:

07be3d6d47c0ad3c8ccf013127b2a3ce_1729250786300-c0382fe0-9efa-4910-9cc3-29c02d2d2215_x-oss-process=image%2Fformat%2Cwebp%2Fresize%2Cw_538%2Climit_0.png

3.定位

①基本认识
  • 作用:灵活的改变盒子在网页中的位置
    1. 定位模式:position ;2. 边偏移:设置盒子的位置(left、right、top、bottom)
②相对定位

position:relative

特点:

  • 不脱标,占用自己原来位置
  • 显示模式特点保持不变
  • 设置边偏移则相对自己原来位置移动

拓展:很少单独使用相对定位,一般是与其他定位方式配合使用

③绝对定位

position:absolute

使用场景:子级绝对定位,父级相对定位(子绝父相)

特点:

  • 脱标,不占位

  • 显示模式具备行内块特点

  • 设置边偏移则相对最近的已经定位的祖先元素改变位置

  • 如果祖先元素都未定位,则相对浏览器可视区改变位置

④定位居中

实现步骤:

  1. 绝对定位
  2. 水平、垂直边偏移为 50%
  3. 子级向左、上移动自身尺寸的一半
  • 左、上的外边距为 –尺寸的一半
  • transform: translate(-50%, -50%)

b6a4df3309d80b35f63e9b87b3319778_1729252917800-f45ba74a-31cd-49ae-acd7-9cc2f6a9aee6_x-oss-process=image%2Fformat%2Cwebp.png

⑤固定定位

position:fixed

场景:元素的位置在网页滚动时不会改变

特点:

  • 脱标,不占位
  • 显示模式具备行内块特点
  • 设置边偏移相对浏览器窗口改变位置

d6750da54983d45cfd60ba6490f44848_1729252974562-41e20725-8513-4a6e-8d08-a097a66cf19b_x-oss-process=image%2Fformat%2Cwebp%2Fresize%2Cw_750%2Climit_0.png

⑥## 6. 堆叠层级 z-index
  • 默认效果:按照标签书写顺序,后来者居上
  • 例:z-index :99 整数数字(默认值为0,取值越大,层级越高)

94672ca4fffdd7bf039debdd7e1705de_1729253016469-9bd13834-14a7-48ec-b04e-e659a1898d2e_x-oss-process=image%2Fformat%2Cwebp.png

四、变换,渐变

1.基本认识 平面转换(2D转换) transform:

  • 为元素添加动态效果,一般与过渡配合使用 。改变盒子在平面内的形态(位移、旋转、缩放)

2.平移

  • 例:transform:translate(100px,100px);(x轴移动距离,y轴移动距离)可以是百分比(为自身尺寸计算的)
  • 技巧:translate() 只写一个值,表示沿着 X 轴移动
  • 单独设置 X 或 Y 轴移动距离:translateX() 或 translateY()

3.旋转

  • 例:transform:rotate(90deg)顺时针旋转90度,可以为负数逆时针旋转

4.改变转换原点

  • 例:transform:origin(center 50px);(水平原点位置 垂直原点位置)
  • 方位名词(left、top、right、bottom、center)百分比 数字+px都可以

b454d2310a804f968fddbc862cf32d7a_1729691579518-4fd3d367-9bc7-4662-8363-7bcafa742074_x-oss-process=image%2Fformat%2Cwebp.png

5.多重转换

  • 例:transform: scale(0.5) rotate(1720deg) translateX(-3800px) ;(顺序不一样会影响动画效果和最终位置)
  • transition:all 3s写在变换的元素上,这里设置过渡时间为3秒
  • div:hover {transform: translateX(300px)}鼠标悬停在这个div上执行里面的样式

多重旋转.gif

6.缩放

ea6cff47d602b1a8f0f406745e8e07b8_1729257011773-eb684441-5c7f-4018-ad5b-dc3124b21aa8_x-oss-process=image%2Fformat%2Cwebp.png

  • 例:transition: all 3s ease;transform: scale(1,1);我用按键事件改变scale里面x和y的值,下面是呈现的效果

缩放.gif

7.渐变

①线性渐变
  • 线性渐变是多个颜色线性逐渐变化的效果,一般用于设置盒子背景

c5312c9ff817e19712ad59d65c47f21b_1729257198852-5282502a-84c9-4286-a2af-f1ee036bedef_x-oss-process=image%2Fformat%2Cwebp.png background-image: linear-gradient( 90deg, red, green );

    background-image: linear-gradient(
      to right,
      red,
      green 40%,  /*绿色从40%开始*/
      blue
    );
    

262bceabe893a86e9a4498df7dd5d703_1729257168637-278c00a5-7ffe-4b4f-9cd4-2d7bd5d4a859_x-oss-process=image%2Fformat%2Cwebp.png