前端基础之CSS(二)

2023-12-05  本文已影响0人  若雨千寻

1.11 浏览器是怎样解析CSS选择器的?

CSS选择器的解析是从右向左解析的

原因:

从右向左的匹配在第一步就筛选掉了大量的不符合条件的最右节点(叶子节点),而从左向右的匹配规则的性能都浪

费在了失败的查找上面

1.12 width:auto 和 width:100%的区别

1.13 display、position和float的相互关系?

总的来说,可以把它看作是一个类似优先级的机制,"position:absolute"和"position:fixed"优先级最高,有它存在 的时候,浮动不起作用,'display'的值也需要调整;其次,元素的'float'特性的值不是"none"的时候或者它是根元素 的时候,调整'display'的值;最后,非根元素,并且非浮动元素,并且非绝对定位的元素,'display'特性值同设置值。

1.14 IFC 是什么?

IFC指的是行级格式化上下文,它有这样的一些布局规则:

1.15 为什么不建议使用统配符初始化 css 样式

1.16 CSS3 新特新

  1. 新增各种 CSS 选择器 :not(p) 选择每个非p的元素; p:empty 选择每个没有任何子级的p元素(包括文本节点)
  2. 边框(Borders)
  3. 背景 background-clip(规定背景图的绘制区域),background-origin,background-size
  4. 线性渐变 (Linear Gradients) 向下/向上/向左/向右/对角方向
  5. 文本效果 阴影text-shadow,textwrap,word-break,word-wrap
  6. 2D 转换 transform:scale(0.85,0.90) | translate(0px,-30px) | skew(-9deg,0deg) |rotate() 3D转换 perspective();transform是向元素应用 2D 或者 3D 转换
  7. 过渡 transition
  8. 动画
  9. 多列布局 (multi-column layout)
  10. 盒模型
  11. flex 布局
  12. 多媒体查询 **定义两套css,当浏览器的尺寸变化时会采用不同的属性

1.17 position 跟 display、float 这些特性相互叠加后会怎么样?

1.18 什么是CSS 预处理器?为什么使用?

为什么要使用?

1.19 浏览器是怎样解析的?

  1. HTML 被 HTML 解析器解析成 DOM 树;2. CSS 被 CSS 解析器解析成 CSSOM 树;
  2. 结合 DOM 树和 CSSOM 树,生成一棵渲染树(Render Tree),这一过程称为 Attachment;
  3. 生成布局(flow),浏览器在屏幕上“画”出渲染树中的所有节点;
  4. 将布局绘制(paint)在屏幕上,显示出整个页面。

1.20 在网页中的应该使用奇数还是偶数的字体?为什么呢?

1.21 元素竖向的百分比设定是相对于容器的高度吗?

当按百分比设定一个元素的宽度时,它是相对于父容器的宽度计算的,但是,对于一些表示竖向距离的属性,例如 padding-top , padding-bottom , margin-top , margin-bottom 等,当按百分比设定它们时,依据的也是父容器的宽度,而不是高度

1.22 怎么让谷歌支持小于12px的文字?

使用 scale

1.23 li 与 li 之间有看不见的空白间隔是什么原因引起的?有什么解决办法?

行框的排列会受到中间空白(回车空格)等的影响,因为空格也属于字符,这些空白也会被应用样式,占据空间,所以会有间隔,把字符大小设为0,就没有空格了

解决方法:

  1. 可以将代码全部写在一排
  2. 浮动li中float:left
  3. 在ul中用font-size:0(谷歌不支持);
  4. 可以将 ul{letter-spacing: -4px;};li{letter-spacing: normal;}

1.24 display:inline-block 什么时候会显示间隙?

  1. 有空格时候会有间隙 解决:s除空格
  2. margin正值的时候 解决:margin使用负值
  3. 使用font-size时候 解决:font-size:0、letter-spacing、word-spacing

1.25 png、jpg、gif 这些图片格式解释一下,分别什么时候用。有没有了解过webp?

1.26 style 标签写在 body 后与 body前有什么区别?

页面加载自上而下 当然是先加载样式。
写在 body 标签后由于浏览器以逐行方式对HTML文档进行解析,当解析到写在尾部的样式表(外联或写在 style 标签)会导致浏览器停止之前的渲染,等待加载且解析样式表完成之后重新渲染,在windows的IE下可能会出现 FOUC 现象(即样式失效导致的页面闪烁问题)

1.27 ::before 和::after 中双冒号和单冒号有什么区别、作用?

区别

在css中伪类一直用:表示,如 :hover:active

伪元素在CSS1中已存在,当时语法使用 : 表示 ,如::before:after

后来在CSS3中修订,伪元素用 ::表示,如 ::before::after,以此区分伪元素和伪类

由于低版本 IE 对双冒号不兼容,开发者为了兼容性各浏览器,继续使使用 :after 这种老语法表示伪元素

单冒号: CSS3表示伪类;双冒号::CSS3伪元素

作用:

::before 和::after 的主要作用是在元素内容前后加上指定内容

伪类与伪元素都是用于向选择器加特殊效果

伪类与伪元素的本质区别就是是否抽象创造了新元素

伪类只要不是互斥可以叠加使用

伪元素在一个选择器中只能出现一次,并且只能出现在末尾

伪类与伪元素优先级分别与类、标签优先级相同

1.28 CSS3新增伪类,以及伪元素?

CSS3 新增伪类

p:first-of-type 选择属于其父元素的首个<p>元素的每个<p>元素

p:last-of-type 选择属于其父元素的最后<p>元素的每个<p>元素

p:nth-child(n) 选择属于其父元素的第 n 个子元素的每个<p>元素

p:nth-last-child(n) 选择属于其父元素的倒数第 n 个子元素的每个<p>元素

p:nth-of-type(n) 选择属于其父元素第 n 个<p>元素的每个<p>元素

p:nth-last-of-type(n)

选择属于其父元素倒数第 n 个<p>元素的每个<p>元素

p:last-child 选择属于其父元素最后一个子元素的每个<p>元素

p:target

选择当前活动的<p>元素

:not(p) 选择非<p>元素的每个元素

:enabled 控制表单控件的可用状态

:disabled

控制表单控件的禁用状态

:checked

单选框或复选框被选中

伪元素

::first-letter 将样式添加到文本的首字母

::first-line 将样式添加到文本的首行

::before 在某元素之前插入某些内容

::after 在某元素之后插入某些内容

上一篇 下一篇

猜你喜欢

热点阅读