Konata9

Results 44 comments of Konata9

标签语义化的初衷是让正确的标签做正确的事情,但对于人来说,标签的语义除了在 `tag` 上体现,还可以从 `id`, `class` 上体现出来。 而每个人对于标签的理解都会存在不同,因此强制规定哪个标签怎么用就不是很好。我的理解标签语义化更多的是为 SEO 进行服务。让爬虫更方便地找到想要的信息。

内核主要分为渲染引擎和 JS 引擎。前者负责页面的渲染,后者负责执行解析 JavaScript。 之后,由于 JS 引擎越来越独立,现在所说的浏览器内核大都指渲染引擎。 目前主流的内核有以下 4 个: - Trident: 由微软开发,即我们熟知的 IE 内核 - Gecko: 使用 C++ 开发的渲染引擎,包括了 SpiderMonkey 即我们熟悉的 FireFox - Presto: Opera 使用的内核 - Webkit: 前端使用最多的...

#### 优点: - 可以实现异步刷新,单个 `iframe` 刷新不影响整体窗口的刷新(可以实现无刷新上传,在 `FormData` 无法使用时) - 可以实现跨域,每个 `iframe` 的源都可以不相同(方便引入第三方内容) - 多页面应用时,对于共同的 `header`, `footer` 可以使用 `iframe` 加载,拆分代码(导航栏的应用) #### 缺点: - 每一个 `iframe` 都对应着一个页面,也就意味着多余的 `css`, `js` 文件的载入,会增加请求的开销 - 如果...

- px: 绝对固定的值,无论页面放大或者缩小都不会改变。 - em: 相对父元素字体大小的倍数。如果父元素的字体为 `12px`,那么子元素 `1em` 就是 `24px`。由于是相对父级的倍数,所以多层嵌套时,倍数关系的计算会很头痛。 - rem: 相对根元素字体大小的倍数。相对于 `html` 的字体大小,如果不做任何修改,浏览器默认字体大小为 `16px`。 #### 小技巧 如果为了方便计算 `rem`,可以设置 `font-size= 62.5%` 这样一来默认的字体就变成 `10px` 了。之后的 `rem` 就是以 `10` 为基准了。

闭包是可以访问另一个函数作用域的函数。由于 `javascript` 的特性,外层的函数无法访问内部函数的变量;而内部函数可以访问外部函数的变量(即作用域链)。 ```javascript function a(){ var b = 1; var c = 2; // 这个函数就是个闭包,可以访问外层 a 函数的变量 return function(){ var d = 3; return b + c + d;...

总结了一下前面老哥的回答。 渐进增强和优雅降级这两个概念是在 CSS3 出现之后火起来的。由于低级浏览器不支持 CSS3,但是 CSS3 特效太优秀不忍放弃,所以在高级浏览器中使用 CSS3,而在低级浏览器只保证最基本的功能。 #### 优雅降级 先不考虑兼容,优先最新版本浏览器效果,之后再逐渐兼容低版本浏览器。 #### 渐进增强 考虑兼容,以较低(多)浏览器效果为主,之后再逐渐增加对新版本浏览器的支持,以内容为主。也是多数公司所采用的方法。 参考文章:[前端面试题-渐进增强和优雅降级](https://segmentfault.com/a/1190000013818745)

BFC 全称“块级格式化上下文”(Block Formatting Context),对应的还有 IFC。BFC 类似一个“结界”,如果一个 DOM 元素具有 BFC,那么它内部的子元素不会影响外面的元素;外面的元素也不会影响到其内部元素。 最常见的例子就是清除 `float` 的 `overflow: hidden;` 属性。`overflow: hidden;` 会触发元素的 BFC,因此其内部的 `float` 元素不会影响到外部元素的布局。 触发 BFC 的条件: - `` 根元素 - `float` 不为 `none`...

在 ES5 之前,javascript 只有函数作用域而没有块级作用域的。即,在 `if` 或者 `for` 花括号中的变量实际在外层是可以被访问的。 ```javascript for(var i = 0; i < 10; i++){var j=123} console.log(j) // 123; ``` 不过使用 ES6 的 `let` 和 `const` 之后,就可以实现块级作用域了。 而函数作用域通过其作用域链的关系,可以实现变量的封装防止污染。子层的函数可以访问父级以及全局的的变量,但反过来则不行。这样子层函数中的变量就与外层隔绝开了。...

在 HTML4 的时候,不应该把 `style` 放到 `body` 中间。 浏览器在渲染页面时 DOM 和 CSSOM 是并行的,然后两者结合形成 Render Tree 显示页面。从直觉上来说,`style` 写在 `body` 前不会对 DOM 的渲染进行阻塞;而写在 `body` 内会对 DOM 渲染进行阻塞。会产生 FOUC(Flash of Unstyled Content) 的现象,既一瞬间的白屏或者样式的突然变化(原因是 Render...

- 借助 `cookie`, `localStorage`(`sessionStorage` 在某些场景下并不能跨标签,必须要原页面的 `a` 标签的 `target=_blank` 才行)。这些只要在同一个域名下就可以进行通信和数据的共享 - 借助 `window.postMessage` API 来进行消息的传递