Skip to content
Updated:

大宝典-Html

Table of contents

Open Table of contents

1. 回流?重绘?如何避免

2. margin 塌陷,BFC? 如何触发 BFC

3. 隐藏元素

4. overflow 各值的区别

5. 圣杯模型

左右固定宽度,中间自适应

6. calc

7. 固定大小的 div 在屏幕上垂直居中

.centered-div {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

8. 渐进增强(progressive enhancement)和优雅降级(graceful degradation)

都是前端开发中的 策略,旨在处理不同浏览器和设备的兼容性问题。

9. iframe 优缺点以及使用场景

优点

缺点

使用场景

10. CSS 盒子模型

HTML 元素看作盒子,包括 内容 内边距 border 外边距

11. html5 特性

12. css3

13. CSS 中选择器的优先级,权重计算方式

  1. !important:具备最高优先级
  2. 特定性:
  3. 内联:1000
  4. ID 选择器:100
  5. 类选择器/属性选择器/伪类选择器:10
  6. 元素选择器/伪元素选择器:1

案例

  1. 覆盖规则:后面定义的将覆盖前面定义的

14. HTML5 input type

15. CSS 继承性

属性
有继承性的color, font, line-height, text-align, text-indent, text-transform, visibility
无继承性的border, margin, padding, background, width, height, position, top, right, left, bottom, display, float

16. 画一条 0.5px 的线

<html>
  <head>
    <style type="text/css">
      .line {
        height: 1px;
        background: white;
        transform: scaleY(0.5);
        transform-origin: 0 0;
        margin: 0;
      }
    </style>
  </head>
  <body>
    <div class="line"></div>
  </body>
</html>

17. position

18. 什么是浮动,会引起什么问题,有何方案

float 是 css 中的一种布局属性,用于控制元素在其父元素的位置,可以浮动到其父元素的左侧或者右侧。常用于实现文本环绕图片,创建多列布局等。

导致问题

解决方案

19. line-height vs height

20. 设置一个元素的背景颜色会填充的区域

background-color 默认填充区域为 content/padding/border,该行为由 background-clip 决定,默认为 border-box

border-boxpadding-boxcontext-boxtext
margin×xxx
border×xx
padding×x
context×
text×

21. inline-block vs inline vs block

类型是否独占一行是否可设置宽高
block块级元素独占一行,由上到下垂直排列可以设置宽高,内外边距
inline内联元素不独占一行,行内水平排列不可以设置宽高,内外边距
inline-block内联块级元素同一行内水平排列可以设置宽高,内外边距,通常用于创建水平排列的块状元素,如按钮或者导航链接

22. 为什么 img 是 inline 却可以设置宽高

html 规范对 img 元素的默认样式有特殊的定义,因为 img 需要具体的宽高以确保图像以正确的尺寸显示,而不会引起页面重新布局。

23. box-sizing 的作用,如何使用

用于控制元素的盒模型如何计算尺寸。

.element {
  box-sizing: border-box;
  width: 100px;
  /* 总宽度还是 100px */
  padding: 10px;
  border: 2px solid black;
}

.element {
  box-sizing: context-box;
  width: 100px;
  /* 总宽高是 100 + 10 + 2  */
  pading: 10px;
  border: 2px solid black;
}

注意box-sizing 通常在全局样式中设置,以确保整个页面使用一致的盒模型

24. CSS 实现动画

通过 @keyframesanimation 来实现。

  1. 定义 keyframes
@keyframes scale {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.5);
  }
  100% {
    transform: scale(1);
  }
}
  1. 应用动画
.animation-element {
  animatiin-name: scale;
  animation-duration: 2s;
  animation-time-function: ease-in-out;
  animation-delay: 0.5s;
  animation-interation-count: infinite;
}
  1. 触发动画
<div class="animation-element">animation element</div>

25. transition vs animation

总结

26. 如何实现在某个容器中居中

<html>
  <head>
    <style type="text/css">
      .container {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 100vh;
        width: 100vw;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div>居中的元素</div>
    </div>
  </body>
</html>

27. 如何改变一个 dom 的字体颜色…

这问题太抽象了,不回答

28. 相对布局和绝对布局

很少用到了吧,不回答

29. flex 布局

30. Less(Lener Style Sheets) vs Scss(Sassy Css)

todo,原文总结不到位

31. 伪类,伪元素

伪类

伪元素

32. ::before::after 中双冒号的区别

CSS 中用双冒号表示伪元素,单冒号表示伪类,虽然实际应用中都两种写法浏览器都支持,但规范来说还是建议双冒号表示伪元素,单冒号表示伪类

33. 响应式布局的方案 — 不到位,待补充

响应式布局是一种适应不同屏幕尺寸和设备的设计方法,以确保网站在各个设备上都能提供良好的用户体验

二者都应用于引入外部 css 文件,区别如下

语法和用法加载方式兼容性维护和管理
<link />用在 <head />,并且有自己的属性, 比如 rel, href 等在页面加载过程中并行加载,不会阻止页面渲染广泛支持更易维护,它与 html 分开,并可以快速在 head 中找到
@import用在 css 文件中,用以导入其他样式文件只会在当前 css 文件加载完成后才会加载引用的外部 css,一定程度上会导致页面渲染的延迟CSS2 引入的,较旧的浏览器不一定支持,现代浏览器中通常都可正确使用css 与外部 css 文件混在一起,可能导致维护成本的增加

35. 块元素 vs 行内元素 vs 置换元素

块元素

行内元素

置换元素

36. 当行元素的文本省略号样式

<html>
  <head>
    <style>
      .ellipsis {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        width: 200px;
      }
    </style>
  </head>
  <body>
    <p class="ellipsis">ha, hello, hi, ha, bi li ba la biu biu biu</p>
  </body>
</html>

37. 语义化标签

38. px vs rpx vs vw vs vh vs rem vs em

单位
px像素,相对单位,逻辑像素不会根据屏幕尺寸或分辨率自动调整大小高分辨率的屏幕上可能显得很小
rpx微信小程序单位,相对单位基于屏幕宽度进行缩放可以在不同设备上保持一致的布局
vw视窗宽度单位,相对单位,表视窗宽度的百分比1vw 等于视窗宽度的 1%用于创建适应不同屏幕宽度的布局
vh视窗高度单位,相对单位,表视窗高度的百分比1vw 等于视窗高度的 1%用于创建适应不同屏幕高度的布局
rem根元素单位,相对单位,基于根元素的字体大小1rem 等于根元素字体大小可用于实现相对大小的字体和元素,响应式设计
em字体相对单位,相对单位,基于当前元素的字体大小1em 等于当前元素的字体大小通常用于设置相对于父元素的字体大小