HTML+CSS面试题集锦:从基础到高级知识梳理

需积分: 16 18 下载量 201 浏览量 更新于2024-08-09 收藏 1.01MB PDF 举报
"这篇资源主要关注前端开发中的HTML、CSS相关知识,以及JavaScript和DOM的局部刷新技术。它提到了使用Swoole+WebSocket和Redis实现Web一对一聊天中获取异步调用返回数据的场景,并涉及到前端面试常见问题的解答。" 在前端开发中,HTML和CSS是构建网页的基础。DOCTYPE声明用于指定文档类型,它决定了浏览器应以哪种模式来渲染页面,标准模式和兼容模式主要在于对CSS和JavaScript的解析方式不同。行内元素如span、a,块级元素如div、p,以及空元素如img、br是HTML结构的重要组成部分。link用于外部样式表,@import则用于内部或外部样式表的导入,两者加载时机和位置有所不同。 HTML语义化是指使用恰当的标签来表达页面内容的结构,有助于搜索引擎优化和无障碍访问。Label元素用于与表单控件关联,增强交互性。CSS盒子模型包括content、padding、border和margin,不同浏览器的实现可能略有差异,特别是IE低版本。CSS选择符包括类选择器、ID选择器、标签选择器等,属性如颜色、字体等可以被继承。CSS优先级计算涉及行内样式、ID、类和元素等。 关于布局和定位,div的居中可以通过设置margin: auto实现,relative和absolute定位的原点分别是相对自身和最近的position非static祖先。满屏“品”字布局通常通过CSS Flexbox或Grid实现。等高多列布局可使用瀑布流或Flexbox。浏览器兼容性问题,如IE的盒模型,通常需要使用条件注释、Hack或前缀解决。清除浮动是为了防止父元素因浮动子元素而高度塌陷,方法有clearfix、overflow或设置height。 CSS预处理器如Sass、Less能提高CSS编写效率,优化性能的方式包括减少HTTP请求、压缩CSS、使用CSS变量和模块化。CSS选择器解析遵循从右到左的原则,margin更适合分隔元素,而padding则用于元素内部的空间。伪元素如::before和::after用于在元素前后添加内容,双冒号表示CSS3标准,单冒号为老版本浏览器兼容语法。 在JavaScript和DOM方面,局部刷新通常是通过AJAX实现的,它允许在不刷新整个页面的情况下更新部分DOM结构。在异步调用中,获取返回数据是关键,Swoole+WebSocket结合Redis可以创建高效实时的通信机制,实现一对一聊天功能。