前端硬核面试专题之 CSS 55 问(上)

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 前端硬核面试专题之 CSS 55 问(上)

CSS


盒子模型的理解 ?


  • 标准模式和混杂模式(IE)。
  • 在标准模式下浏览器按照规范呈现页面;
  • 在混杂模式下,页面以一种比较宽松的向后兼容的方式显示。
  • 混杂模式通常模拟老式浏览器的行为以防止老站点无法工作。


微信图片_20220513135756.png


微信图片_20220513135807.png


CSS 盒子模型具有内容 (content)、填充 (padding)、边框 (border)、边界 (margin)这些属性。


我们所说的 width,height 指的是内容 (content) 的宽高。


一个盒子模型的中:


  • 宽度 = width+ pdding(宽) + border(宽)。
  • 高度 = height + padding(高) + border(高)。

如何在页面上实现一个圆形的可点击区域 ?


  • 1、map+area 或者 svg
  • 2、border-radius
  • 3、纯 js 实现,需要求一个点在不在圆上简单算法、获取鼠标坐标等等

实现不使用 border 画出 1px 高的线,在不同浏览器的标准模式与怪异模式下都能保持一致的效果。


<div style="height:1px;overflow:hidden;background:red"></div>

CSS 中哪些属性可以同父元素继承 ?


继承:(X)HTML 元素可以从其父元素那里继承部分 CSS 属性,即使当前元素并没有定义该属性,比如: color,font-size。


box-sizing 常用的属性有哪些 ?分别有什么作用 ?


常用的属性:content-box、 border-box 、inherit


作用

  • content-box(默认):宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框(元素默认效果)。
  • border-box:元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。

页面导入样式时,使用 link 和 @import 有什么区别 ?


  • link 属于 XHTML 标签,除了加载 CSS 外,还能用于定义 RSS(是一种描述和同步网站内容的格式,是使用最广泛的 XML 应用), 定义 rel 连接属性等作用;
  • 而 @import 是 CSS 提供的,只能用于加载 CSS;
  • 页面被加载的时,link 会同时被加载,而 @import 引用的 CSS 会等到页面被加载完再加载;
  • import 是 CSS2.1 提出的,只在 IE5 以上才能被识别,而 link 是 XHTML 标签,无兼容问题。
  • 总之,link 要优于 @import。

常见兼容性问题?


  • 浏览器默认的 margin 和 padding 不同。解决方案是加一个全局的 *{margin: 0; padding: 0;} 来统一。
  • IE下 event 对象有 event.x,event.y 属性,而 Firefox 下没有。Firefox 下有 event.pageX,event.PageY 属性,而 IE 下没有。

解决办法:var mx = event.x ? event.x : event.pageX;

  • Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示, 可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决.
  • 超链接访问过后 hover 样式就不出现了,被点击访问过的超链接样式不在具有 hover 和 active 了,解决方法是改变 CSS 属性的排列顺序:


L-V-H-A : a:link {} a:visited {} a:hover {} a:active {}


清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法 ?


一个块级元素如果没有设置 height,那么其高度就是由里面的子元素撑开,如果子元素使用浮动,脱离了标准的文档流,那么父元素的高度会将其忽略,如果不清除浮动,父元素会出现高度不够,那样如果设置 border 或者 background 都得不到正确的解析。

正是因为浮动的这种特性,导致本属于普通流中的元素浮动之后,包含框内部由于不存在其他普通流元素了,也就表现出高度为 0(高度塌陷)。在实际布局中,往往这并不是我们所希望的,所以需要闭合浮动元素,使其包含框表现出正常的高度。


清除浮动的方式


  • 父级 div 定义 height,原理:父级 div 手动定义 height,就解决了父级 div 无法自动获取到高度的问题。
  • 结尾处加空 div 标签 clear: both,原理:添加一个空 div,利用 css 提高的 clear: both 清除浮动,让父级 div 能自动获取到高度。
  • 父级 div 定义 overflow: hidden,  原理:必须定义 width 或 zoom: 1,同时不能定义 height,使用 overflow: hidden 时,浏览器会自动检查浮动区域的高度
  • 父级 div 也一起浮动 。
  • 父级 div 定义 display: table 。
  • 父级 div 定义 伪类 :after 和 zoom 。
  • 结尾处加 br 标签 clear: both, 原理:父级 div 定义 zoom: 1 来解决 IE 浮动问题,结尾处加 br 标签 clear: both。


总结:比较好的是倒数第 2 种方式,简洁方便。


如何保持浮层水平垂直居中 ?


一、水平居中

(1)行内元素解决方案

只需要把行内元素包裹在一个属性 display 为 block 的父层元素中,并且把父层元素添加如下属性即可。


.parent {
    text-align: center;
}


(2)块状元素解决方案

 

.item {
    /* 这里可以设置顶端外边距 */
    margin: 10px auto;
}


(3)多个块状元素解决方案将元素的 display 属性设置为 inline-block,并且把父元素的 text-align 属性设置为 center 即可:


.parent {
    text-align:center;
}


(4)多个块状元素解决方案


使用 flexbox 布局,只需要把待处理的块状元素的父元素添加属性 display: flex 及 justify-content: center 即可。


.parent {
    display: flex;
    justify-content: center;
}


二、垂直居中


(1)单行的行内元素解决方案


.parent {
    background: #222;
    height: 200px;
}
/* 以下代码中,将 a 元素的 height 和 line-height 设置的和父元素一样高度即可实现垂直居中 */
a {
    height: 200px;
    line-height:200px; 
    color: #FFF;
}


(2)多行的行内元素解决方案组合


使用 display: table-cell 和 vertical-align: middle 属性来定义需要居中的元素的父容器元素生成效果,如下:


.parent {
    background: #222;
    width: 300px;
    height: 300px;
    /* 以下属性垂直居中 */
    display: table-cell;
    vertical-align: middle;
}


(3)已知高度的块状元素解决方案


.item{
    position: absolute;
    top: 50%;
    margin-top: -50px;  /* margin-top值为自身高度的一半 */
    padding:0;
}


三、水平垂直居中


(1)已知高度和宽度的元素解决方案 1

这是一种不常见的居中方法,可自适应,比方案 2 更智能,如下:


.item{
    position: absolute;
    margin:auto;
    left:0;
    top:0;
    right:0;
    bottom:0;
}


(2)已知高度和宽度的元素解决方案 2


.item{
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -75px;  /* 设置margin-left / margin-top 为自身高度的一半 */
    margin-left: -75px;
}


(3)未知高度和宽度元素解决方案


.item{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);  /* 使用 css3 的 transform 来实现 */
}


(4)使用 flex 布局实现


.parent{
    display: flex;
    justify-content: center;
    align-items: center;
    /* 注意这里需要设置高度来查看垂直居中效果 */
    background: #AAA;
    height: 300px;
}

position 、float 和 display 的取值和各自的意思和用法


position


  • position 属性取值:static(默认)、relative、absolute、fixed、inherit、sticky。
  • postision:static;始终处于文档流给予的位置。看起来好像没有用,但它可以快速取消定位,让 top,right,bottom,left 的值失效。在切换的时候可以尝试这个方法。
  • 除了 static 值,在其他三个值的设置下,z-index 才会起作用。确切地说 z-index 只在定位元素上有效。
  • position:relative 和 absolute 都可以用于定位,区别在于前者的 div 还属于正常的文档流,后者已经是脱离了正常文档流,不占据空间位置,不会将父类撑开。


定位原点 relative 是相对于它在正常流中的默认位置偏移,它原本占据的空间任然保留;absolute 相对于第一个 position 属性值不为 static 的父类。所以设置了 position:absolute,其父类的该属性值要注意,而且 overflow:hidden 也不能乱设置,因为不属于正常文档流,不会占据父类的高度,也就不会有滚动条。


  • fixed 旧版本 IE 不支持,却是很有用,定位原点相对于浏览器窗口,而且不能变。

常用于 header,footer 或者一些固定的悬浮 div,随滚动条滚动又稳定又流畅,比 JS 好多了。fixed 可以有很多创造性的布局和作用,兼容性是问题。


  • position:inherit。

规定从父类继承 position 属性的值,所以这个属性也是有继承性的,但需要注意的是 IE8 以及往前的版本都不支持 inherit 属性。


  • sticky :设置了sticky 的元素,在屏幕范围(viewport)时该元素的位置并不受到定位影响(设置是 top、left 等属性无效),当该元素的位置将要移出偏移范围时,定位又会变成 fixed,根据设置的 left、top 等属性成固定位置的效果。


float


  • float:left (或 right),向左(或右)浮动,直到它的边缘碰到包含框或另一个浮动框为止。


且脱离普通的文档流,会被正常文档流内的块框忽略。不占据空间,无法将父类元素撑开。


  • 任何元素都可以浮动,浮动元素会生成一个块级框,不论它本身是何种元素。因此,没有必要为浮动元素设置 display:block。


  • 如果浮动非替换元素,则要指定一个明确的 width,否则它们会尽可能的窄。

什么叫替换元素 ?根据元素本身的特点定义的, (X)HTML中的 img、input、textarea、select、object 都是替换元素,这些元素都没有实际的内容。 (X)HTML 的大多数元素是不可替换元素,他们将内容直接告诉浏览器,将其显示出来。


display


  • display 属性取值:none、inline、inline-block、block、table 相关属性值、inherit。
  • display 属性规定元素应该生成的框的类型。文档内任何元素都是框,块框或行内框。
  • display:none 和 visiability:hidden 都可以隐藏 div,区别有点像 absolute 和 relative,前者不占据文档的空间,后者还是占据文档的位置。
  • display:inline 和 block,又叫行内元素和块级元素。


表现出来的区别就是 block 独占一行,在浏览器中通常垂直布局,可以用 margin 来控制块级元素之间的间距(存在 margin 合并的问题,只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。);


而 inline 以水平方式布局,垂直方向的 margin 和 padding 都是无效的,大小跟内容一样,且无法设置宽高。


inline 就像塑料袋,内容怎么样,就长得怎么样;block 就像盒子,有固定的宽和高。


  • inline-block 就介于两者之间。
  • table 相关的属性值可以用来垂直居中,效果一般。
  • flex


定位机制


上面三个属性都属于 CSS 定位属性。CSS 三种基本的定位机制:普通流、浮动、绝对定位。


css3 动画效果属性有哪些 ?


  • animation-name:规定需要绑定到选择器的 keyframe 名称。。
  • animation-duration:规定完成动画所花费的时间,以秒或毫秒计。
  • animation-timing-function:规定动画的速度曲线。
  • animation-delay:规定在动画开始之前的延迟。
  • animation-iteration-count:规定动画应该播放的次数。
  • animation-direction:规定是否应该轮流反向播放动画。

canvas 与 svg 的区别 ?


  • Canvas 是基于像素的即时模式图形系统,最适合较小的表面或较大数量的对象,Canvas 不支持鼠标键盘等事件。
  • SVG 是基于形状的保留模式图形系统,更加适合较大的表面或较小数量的对象。
  • Canvas 和 SVG 在修改方式上还存在着不同。绘制 Canvas 对象后,不能使用脚本和 CSS 对它进行修改。因为 SVG 对象是文档对象模型的一部分,所以可以随时使用脚本和 CSS 修改它们。


现在对两种技术做对比归纳如下:


Canvas


1) 依赖分辨率

2) 不支持事件处理器

3) 弱的文本渲染能力

4) 能够以 .png 或 .jpg 格式保存结果图像

5) 最适合图像密集型的游戏,其中的许多对象会被频繁重绘

SVG

1) 不依赖分辨率

2) 支持事件处理器

3) 最适合带有大型渲染区域的应用程序(比如谷歌地图)

4) 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)

5) 不适合游戏应用


px 和 em 的区别 ?


  • px 像素(Pixel)。相对长度单位。像素 px 是相对于显示器屏幕分辨率而言的。(引自CSS2.0手册)
  • em 是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。(引自CSS2.0手册)
  • 任意浏览器的默认字体高都是 16px。所有未经调整的浏览器都符合:1em = 16px。

那么12px = 0.75em,10px = 0.625em。为了简化 font-size 的换算,需要在 css 中的 body 选择器中声明 Font-size = 62.5%,这就使 em 值变为 16px*62.5% = 10px, 这样 12px = 1.2em, 10px = 1em, 也就是说只需要将你的原来的 px 数值除以 10,然后换上 em 作为单位就行了。


会不会用 ps 扣图,png、jpg、gif 这些图片格式解释一下,分别什么时候用。如何优化图像、图像格式的区别 ?


JPG 的特性


  • 支持摄影图像或写实图像的高级压缩,并且可利用压缩比例控制图像文件大小。
  • 有损压缩会使图像数据质量下降,并且在编辑和重新保存 JPG 格式图像时,这种下降损失会累积。
  • JPG 不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。


PNG 的特性


  • 能在保证最不失真的情况下尽可能压缩图像文件的大小。
  • PNG 用来存储灰度图像时,灰度图像的深度可多到 16 位,存储彩色图像时,彩色图像的深度可多到 48 位,并且还可存储多到 16 位的 α 通道数据。
  • 对于需要高保真的较复杂的图像,PNG 虽然能无损压缩,但图片文件较大,不适合应用在 Web 页面上。
  • 另外还有一个原则就是用于页面结构的基本视觉元素,如容器的背景、按钮、导航的背景等应该尽量用 PNG 格式进行存储,这样才能更好的保证设计品质。而其他一些内容元素,如广告 Banner、商品图片 等对质量要求不是特别苛刻的,则可以用 JPG 去进行存储从而降低文件大小。


GIF格式特点


 

  • 透明性: Gif 是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha 透明)。
  • 动画:Gif 这种格式支持动画。
  • 无损耗性:Gif 是一种无损耗的图像格式,这也意味着你可以对 gif 图片做任何操作也不会使得图像质量产生损耗。
  • 水平扫描:Gif 是使用了一种叫作 LZW 的算法进行压缩的,当压缩 gif 的过程中,像素是由上到下水平压缩的,这也意味着同等条件下,横向的 gif 图片比竖向的 gif 图片更加小。


例如 50010 的图片比 10500 的图片更加小。

间隔渐进显示:Gif 支持可选择性的间隔渐进显示

由以上特点看出只有 256 种颜色的 gif 图片不适合作为照片,它适合做对颜色要求不高的图形。


我们知道可以以外链的方式引入 CSS 文件,请谈谈外链引入 CSS 有哪些方式,这些方式的性能有区别吗 ?


CSS 的引入方式最常用的有三种


第一:外链式

这种方法可以说是现在占统治地位的引入方法。

如同 IE 与浏览器。这也是最能体现 CSS 特点的方法;

最能体现 DIV + CSS 中的内容离的思想,也最易改版维护,代码看起来也是最美观的一种。


第二:内部样式表

这种方法的使用情况要少的多,最长见得就是访问量大的门户网站。或者访问量较大的企业网站的首页。


与第一种方法比起来,优弊端也明显。

优点:速度快,所有的 CSS 控制都是针对本页面标签的,没有多余的 CSS 命令;再者不用外链 CSS 文件。直接在文档中读取样式。


缺点:就是改版麻烦些,单个页面显得臃肿,CSS 不能被其他 HTML 引用造成代码量相对较多,维护也麻烦些采用这种方法的公司大多有钱,对他们来说用户量是关键,他们不缺人进行复杂的维护工作。


第三:行内样式

认为 HTML 里不能出现 CSS 命令。其实有时候没有什么大不了。比如通用性差,效果特殊,使用 CSS 命令较少,并且不常改动的地方,使用这种方法反而是很好的选择。


第四、@import 引入方式


<style type="text/css">
@import url(my.css);
</style>
相关文章
|
9月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
transition过渡属性 早期在Web中要实现动画效果,都是依赖于JavaScript或Flash来完成。 但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化, 让效果显得更加细腻。简单点说,就是通过鼠标经过、获得焦点,被点击或对元素任何改变中触发, 并平滑地以动画效果改变CSS的属性值。 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 在默认样式中声明元素的初始状态样式; 声明过渡元素最终状态样式,比如悬浮状态; 在默认样式中通过添加
422 1
|
9月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
transform变形 css3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的 功能。 CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件 呈现出丰富的外观。 借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了transition动画。 transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画时间,就可保证动画播放。 比transitio
416 1
|
9月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
532 0
|
9月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
盒模型 盒模型: 所谓盒模型,就是浏览器为页面中的每个HTML元素生成的矩形盒子。 这些盒子们都要按照可见板式模型在页面上排布。 可见的板式模型主要由三个属性控制:position 属性、display 属性和 float属性。 position属性控制页面上元素间的位置关系。 display属性控制元素是堆叠、并排或者不在页面上显示。 float属性提供控制的方法,以便于把元素组成成多栏布局。 盒模型讲解: 在默认的情况下,每个盒子的边框是不可见的,背景也是透明的。 所以我们 不能直接的看到页面中的盒
1346 1
|
9月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
545 3
|
9月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
711 0
|
9月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
继承 我们的CSS中很多的属性也是可以继承的,其中相当一部分是跟文字的相关的,比如说颜色、字体、字号。 当然还有一部分是不能继承的。 例如边框、内外边距。 层叠 层叠是CSS的核心机制。 层叠的工作机制: 当元素的同一个样式属性有多种样式值的时候,CSS就是靠层叠机制来决定最终应用哪种样式。 层叠规则: 层叠规则一:找到应用给每个元素和属性的声明。 说明:浏览器在加载每个页面时,都会据此查找到每条CSS规则, 并标识出所有受到影响的HTML元素。
305 1
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
1630 14
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
1044 0
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    545
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    422
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    416
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    274
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    532
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    711
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1346
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    305
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1122
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    493