CSS-2,自学必看,中高级工程师前端开发

本文详细介绍了CSS中的行内元素、块级元素、行内块元素的特性和区别,包括元素的显示模式、CSS的层叠性、继承性与优先级,以及如何通过CSS控制背景样式和数据结构与算法的基础知识,如排序算法和前端面试准备。
摘要由CSDN通过智能技术生成
  1. 是一个容器及盒子,里面可以放行内或者块级元素。

注意:

  • 文字类的元素不能使用块级元素。

  • p标签主要用于存放文字,因此里面不能放块级元素,特别是不能放<div>

  • 同理<h1>~<h6>等都是文字类块级标签,里面也不能放其它块级元素。

2.行内元素

常用的行内元素有<a>,<strong>,<b>,<em>,<i>,<del>,<s>,<ins>,<u>,<span>等,其中**<span>标签是最典型的行内元素**。有的地方也将行内元素称为内联元素。

行内元素的特点:

  1. 相邻行内元素在一行上,一行可以显示多个。

  2. 高,宽直接设置无效。

  3. 默认宽度就是它本身内容的宽度。

  4. 行内元素只能容纳文本或其他行内元素。

注意:

  • 链接里面不能再放链接

  • 特殊情况链接<a>里面可以放块级元素,但会给转换一下块级模式最安全。

3.行内块元素

在行内元素中有几个特殊标签------<img/>,<inout/>,<td>,它们同时具有块元素和行内元素的特点。有些资料称它们为行内块元素

行内块元素的特点:

  1. 和相邻行内元素(行内块)在一行上,但是它们之间会有空白缝隙。一行可以显示多个(行内元素特点)。

  2. 默认宽度就是它本身内容的宽度(行内元素特点)。

  3. 高度,行高,外边距以及内边距都可以控制(块级元素特点)。

4.元素显示模式总结

| 元素模式 | 元素排列 | 设置样式 | 默认宽度 | 包含 |

| — | — | — | — | — |

| 块级元素 | 一行只能放一个块级元素 | 可以设置宽度,高度 | 容器的100% | 容器级可以包含任何标签 |

| 行内元素 | 一行可以放多个行内元素 | 不可以直接设置高度,宽度 | 它本身内容的宽度 | 容纳文本或者其它行内元素 |

| 行内块元素 | 一行放多个行内块元素 | 可以设置宽度和高度 | 它本身内容的宽度 | |

5.元素显示模式转换

特殊情况下,我们需要元素模式的转换,简单理解:一个模式的元素需要另一种模式的特性比如想要增加理解<a>的触发范围。

  • 转换为块元素:display:block

  • 转换为行内元素:display:inline

  • 转换为行内块:display:inline-block

案例

老北京来了

小皮皮

小皮皮

我是块级元素
我是块级元素

行内元素转换为行内块元素

行内元素转换为行内块元素

6.一个小技巧使单行文字垂直居中的代码

解决方案:让文字的行高等于盒子的高度,就可以让文字在当前盒子内垂直居中。

老北京来了

手机 电话卡

电视 盒子

笔记本 平板

出现 穿戴

智能 路由器

健康 儿童

7.单行文字垂直居中的原理

在这里插入图片描述

四.CSS的背景


序:通过CSS背景属性,可以给页面元素添加背景样式。

背景属性可以设置背景颜色,背景图片,背景平铺,背景图片位置,背景图像固定等。

1.背景颜色

background-color属性定义了元素的背景颜色。

background-color:颜色值;

一般情况下元素背景颜色默认值都是transparent(透明),我们也可以手动指定背景颜色为透明色。

background-color:transparent;

2.背景图片

background-image属性描述了元素的背景图像。实际开发常见于logo或者一些装饰性的小图片或者是超大的背景图片,优点是非常便于控制位置。

background-image : none |url (url)

| 参数值 | 作用 |

| — | — |

| none | 无背景图(默认的) |

| url | 使用绝对或相对路径指定背景图像 |

**注意:**背景图片后面的地址,千万不要忘记加URL,同时里面的路径不要加问号。

3.背景平铺

如果需要在HTML页面上对背景图像进行平铺,可以使用background-repeat属性。

background-repeat : repeat | no-repeat | repeat-x | repeat-y

| 参数值 | 作用 |

| — | — |

| repeat | 背景图像在纵向和横向上平铺(默认的) |

| no-repeat | 背景图像不平铺 |

| repeat-x | 背景图像在横向上平铺 |

| repeat-y | 背景图像在纵向上平铺 |

4.背景图片的位置

利用background-position属性可以改变图片在背景中的位置。

background-position: x y;

参数代表的意思是:x坐标和y坐标,可以使用方位名词或者精确单位

| 参数值 | 说明 |

| — | — |

| length | 百分数|由浮点数字和单位标识组成的长度值 |

| position | top|center|bottom|left|right 方位名词 |

  1. 参数是方位名词
  • 如果指定的两个值都是方位名词,则两个值前后顺序无关,比如left top 和 top left 效果一致。

  • 如果只指定了一个方位名词吗,另一个值省略,则第二个值默认居中对齐。

  1. 参数是精确单位
  • 如果参数是精确单位,那么第一个肯定是x坐标,第二个一定是y坐标。

  • 如果只指定一个数值,那该数值一定是x坐标,另一个默认垂直居中。

  1. 参数是混合单位
  • 如果指定的两个值是精确单位和方位名词混合使用则第一个值是x坐标,第二个值是y坐标。
5.背景图像固定

background-attachment属性设置背景图像是否固定或者随着页面的其余部分滚动。

background-attachment后期可以制作视差滚定效果。

background-attachment : scroll | fixed

| 参数 | 作用 |

| — | — |

| scroll | 背景图像是随对象内容滚动 |

| fixed | 背景图像固定 |

6.背景复合写法

为了简化背景属性的代码,我们可以将这些属性合并简写在同一个属性background中,从而节约代码量。当使用简写属性时,没有特定的书写顺序,一般习惯的约定顺序为:

background:背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置;

background: transparent url(image.jpg) repeat-y fixed top ;

这是实际开发中,我们更提倡的写法。

7.背景色半透明

CSS3为我们提供了背景颜色半透明的效果。

background: rgba(0,0,0,0.3);

  • 最后一个参数是alpha透明度,取值范围0~1之间。

  • 我们习惯把0.3的0省略掉,写为background: rgba(0,0,0,.3);

  • 注意:背景半透明是指盒子背景半透明,盒子里面的内容不受影响。

  • CSS新增属性,是IE9+版本浏览器才支持的。

  • 但是现在实际开发,我们不太关注兼容性写法了,可以放心使用。

8.背景总结

| 属性 | 作用 | 值 |

| — | — | — |

| background-color | 背景颜色 | 预定义的颜色值/十六进制/RGB代码 |

| background-image | 背景图片 | url(图片路径) |

| background-repeat | 是否平铺 | repeat/no-repeat/repeat-x/repeat-y |

| background-position | 背景位置 | length/position 分别是x和y坐标 |

| background-attachment | 背景附着 | scroll(背景滚动)/fixed(背景固定) |

| 背景简写 | 书写更简单 | 背景颜色 背景图片地址 背景平铺 背景滚动 背景位置; |

| 背景半透明 | 背景颜色半透明 | background: rgba(0,0,0,.3); 后面必须是4个值 |

五.CSS的三大特性


CSS有三个非常重要的三个特性:层叠性,继承性,优先级。

1.层叠性

相同选择器给设置相同的样式,此时一个样式就会**覆盖(层叠)**另一个冲突的样式。层叠性主要解决样式冲突的问题。

层叠性原则:

  • 样式冲突,遵循的原则是就近原则,那个样式离结构近,就执行那个样式。

  • 样式不冲突,不会层叠。

2.继承性

CSS中的继承:子标签会继承父标签的某些样式,如文本颜色和字号。

  • 恰当使用继承可以简化代码,降低CSS样式的复杂性。

  • 子元素可以继承父元素的样式(text-,font-,line-,这些元素开头的可以继承,以及color属性)。

行高的继承性

body { font:12px/1.5 Microsoft YaHei;}

  • 行高可以跟单位也可以不跟单位。

  • 如果子元素没有设置行高,则会继承父元素的行高为1.5。

  • 此时子元素的行高是:当前子元素的文字大小*1.5。

  • body行高1.5这样写法最大的优势就是里面子元素可以根据自己文字大小自动调整行高。

3.优先级

| 选择器 | 选择器权重 |

| — | — |

| 继承 或 * | 0,0,0,0 |

| 元素选择器 | 0,0,0,1 |

| 类选择器,伪类选择器 | 0,0,1,0 |

| ID选择器 | 0,1,0,0 |

| 行内样式 style=“” | 1,0,0,0 |

| !important | ∞无穷大 |

优先级注意点

  1. 权重是有4组数字组成,但不会有进位。

  2. 可以理解为类选择器永远大于元素选择器,id选择器永远大于类选择器。

  3. 等级判断从左向右,如果某一位数值相同,则判断下一位数值。

  4. 可以简单记忆法:通配符和继承权重为0,标签选择器为1,类选择器(伪类选择器)为10,id选择器为100,内样式表为1000,!important无穷大。

  5. 继承的权重是0,如果该元素没有直接选中,不管父元素权重多高,子元素得到的权重都是0.

  6. a链接浏览器默认定制了一个样式 ,蓝色的 有下划线 a{ color : blue;},不会继承父类样式,只能自己手动指定。

权重叠加

如果是复合选择器,则会有权重叠加,需要计算权重。

  • div ul li ------> 0,0,0,3
  • .nav ul li ------> 0,0,1,2
  • a:hover ------> 0,0,1,1
  • .nav a ------> 0,0,1,1

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

数据结构与算法

这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

  • 二叉树层序遍历
  • B 树的特性,B 树和 B+树的区别
  • 尾递归
  • 如何写一个大数阶乘?递归的方法会出现什么问题?
  • 把多维数组变成一维数组的方法
  • 知道的排序算法 说一下冒泡快排的原理
  • Heap 排序方法的原理?复杂度?
  • 几种常见的排序算法,手写
  • 数组的去重,尽可能写出多个方法
  • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
  • 知道数据结构里面的常见的数据结构
  • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
  • 合并两个有序数组
  • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

等**,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

  • 二叉树层序遍历
  • B 树的特性,B 树和 B+树的区别
  • 尾递归
  • 如何写一个大数阶乘?递归的方法会出现什么问题?
  • 把多维数组变成一维数组的方法
  • 知道的排序算法 说一下冒泡快排的原理
  • Heap 排序方法的原理?复杂度?
  • 几种常见的排序算法,手写
  • 数组的去重,尽可能写出多个方法
  • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
  • 知道数据结构里面的常见的数据结构
  • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
  • 合并两个有序数组
  • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

[外链图片转存中…(img-ivEG1mwG-1710762083098)]

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值