您好,登录后才能下订单哦!
HTML5 引入了许多新特性,主要包括:
<header>
、<footer>
、<article>
、<section>
等,使得页面结构更加清晰。<input>
类型如 email
、url
、date
等,以及 placeholder
、required
等属性。<audio>
和 <video>
标签,使得在网页中嵌入音频和视频更加方便。<canvas>
标签用于绘制图形,以及 <svg>
标签用于矢量图形。localStorage
和 sessionStorage
,用于在客户端存储数据。语义化标签是指使用具有明确含义的 HTML 标签来描述页面内容的结构。例如,使用 <header>
表示页面的头部,使用 <footer>
表示页面的底部。
为什么要使用语义化标签?
<meta>
标签有哪些常见用途?<meta>
标签用于提供页面的元数据,常见的用途包括:
<meta charset="UTF-8">
指定页面的字符编码。<meta name="viewport" content="width=device-width, initial-scale=1.0">
用于移动端页面适配。<meta name="description" content="页面描述">
提供页面的简短描述。<meta name="keywords" content="关键词1, 关键词2">
提供页面的关键词,有助于 SEO。<meta name="author" content="作者名">
提供页面的作者信息。<script>
标签的 async
和 defer
属性有什么区别?<script>
标签的 async
和 defer
属性都用于控制脚本的加载和执行顺序,但它们的行为有所不同:
async
:脚本会异步加载,加载完成后立即执行。多个 async
脚本的执行顺序不确定。defer
:脚本会异步加载,但会在文档解析完成后按照顺序执行。使用场景:
async
:适用于不依赖其他脚本的独立脚本,如广告、统计代码等。defer
:适用于需要按顺序执行的脚本,如依赖其他脚本的库。<iframe>
标签有什么作用?如何使用?<iframe>
标签用于在页面中嵌入另一个 HTML 页面。常见的用途包括嵌入地图、视频、广告等。
基本用法:
<iframe src="https://www.example.com" width="600" height="400"></iframe>
常用属性:
src
:指定嵌入页面的 URL。width
和 height
:指定嵌入页面的宽度和高度。frameborder
:指定是否显示边框,通常设置为 0
以去除边框。sandbox
:用于限制嵌入页面的行为,如禁止脚本执行、表单提交等。<canvas>
和 <svg>
有什么区别?<canvas>
和 <svg>
都用于在网页中绘制图形,但它们的工作原理和适用场景有所不同:
<canvas>
:
<svg>
:
<form>
标签有哪些常用属性?<form>
标签用于创建表单,常见的属性包括:
action
:指定表单提交的 URL。method
:指定表单提交的 HTTP 方法,如 GET
或 POST
。enctype
:指定表单数据的编码类型,如 application/x-www-form-urlencoded
(默认)、multipart/form-data
(文件上传)等。target
:指定表单提交后响应的显示位置,如 _blank
(新窗口)、_self
(当前窗口)等。autocomplete
:指定是否启用表单的自动填充功能。<input>
标签有哪些常用类型?<input>
标签用于创建各种输入控件,常见的类型包括:
text
:单行文本输入框。password
:密码输入框。email
:电子邮件输入框。url
:URL 输入框。number
:数字输入框。date
:日期选择器。checkbox
:复选框。radio
:单选框。file
:文件上传控件。submit
:提交按钮。reset
:重置按钮。button
:普通按钮。<label>
标签有什么作用?<label>
标签用于为表单控件添加标签,提升用户体验和可访问性。通过 for
属性将 <label>
与对应的表单控件关联起来,点击标签时可以聚焦到对应的控件。
示例:
<label for="username">用户名:</label>
<input type="text" id="username" name="username">
<table>
标签有哪些常用子标签?<table>
标签用于创建表格,常见的子标签包括:
<thead>
:表头部分。<tbody>
:表体部分。<tfoot>
:表尾部分。<tr>
:表格行。<th>
:表头单元格。<td>
:表格单元格。示例:
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>25</td>
</tr>
<tr>
<td>李四</td>
<td>30</td>
</tr>
</tbody>
</table>
CSS 盒模型是用于描述元素在页面中占据空间的模型,包括内容区域、内边距、边框和外边距。
标准盒模型(W3C 盒模型):
- 元素的宽度和高度只包括内容区域,不包括内边距、边框和外边距。
- 计算公式:width = content width
IE 盒模型(怪异盒模型):
- 元素的宽度和高度包括内容区域、内边距和边框,但不包括外边距。
- 计算公式:width = content width + padding + border
如何切换盒模型:
/* 标准盒模型 */
box-sizing: content-box;
/* IE 盒模型 */
box-sizing: border-box;
position
属性有哪些值?它们有什么区别?position
属性用于指定元素的定位方式,常见的值包括:
static
:默认值,元素按照正常的文档流进行布局。relative
:相对定位,元素相对于其正常位置进行偏移。absolute
:绝对定位,元素相对于最近的已定位祖先元素进行定位。fixed
:固定定位,元素相对于浏览器窗口进行定位,不随页面滚动而移动。sticky
:粘性定位,元素在滚动到特定位置时变为固定定位。display
属性有哪些常用值?它们有什么区别?display
属性用于指定元素的显示方式,常见的值包括:
block
:块级元素,独占一行,可以设置宽度和高度。inline
:行内元素,不独占一行,不能设置宽度和高度。inline-block
:行内块元素,不独占一行,但可以设置宽度和高度。none
:元素不显示,且不占据空间。flex
:弹性盒子布局,用于创建灵活的布局。grid
:网格布局,用于创建复杂的网格布局。float
属性有什么作用?如何清除浮动?float
属性用于使元素浮动在页面的左侧或右侧,常用于实现文字环绕图片的效果。
清除浮动的方法:
clear
属性:在浮动元素后面添加一个空元素,并设置 clear: both;
。overflow
属性:在父元素上设置 overflow: hidden;
或 overflow: auto;
。::after
伪元素清除浮动。.clearfix::after {
content: "";
display: block;
clear: both;
}
flexbox
布局有哪些常用属性?flexbox
是一种弹性盒子布局模型,常用的属性包括:
display: flex;
:将容器设置为弹性盒子布局。flex-direction
:指定主轴的方向,如 row
(水平)、column
(垂直)。justify-content
:指定主轴上的对齐方式,如 flex-start
、center
、space-between
。align-items
:指定交叉轴上的对齐方式,如 flex-start
、center
、stretch
。flex-wrap
:指定是否换行,如 nowrap
(不换行)、wrap
(换行)。align-content
:指定多行内容在交叉轴上的对齐方式。grid
布局有哪些常用属性?grid
是一种网格布局模型,常用的属性包括:
display: grid;
:将容器设置为网格布局。grid-template-columns
:指定列的宽度。grid-template-rows
:指定行的高度。grid-gap
:指定网格之间的间距。grid-column
和 grid-row
:指定元素在网格中的位置。justify-items
和 align-items
:指定网格项在单元格内的对齐方式。justify-content
和 align-content
:指定网格在容器内的对齐方式。BEM
命名规范是什么?BEM
是一种 CSS 命名规范,全称为 Block Element Modifier,用于提高 CSS 代码的可维护性和可读性。
.header
、.menu
。.header__logo
、.menu__item
。.header--fixed
、.menu__item--active
。示例:
<div class="header">
<div class="header__logo"></div>
<div class="header__menu">
<div class="header__menu__item header__menu__item--active"></div>
</div>
</div>
伪类
和 伪元素
有什么区别?:hover
、:focus
、:nth-child()
。::before
、::after
、::first-line
。示例:
/* 伪类 */
a:hover {
color: red;
}
/* 伪元素 */
p::before {
content: "前缀";
}
媒体查询
是什么?如何使用?媒体查询用于根据设备的特性(如屏幕宽度、分辨率)应用不同的样式,常用于响应式设计。
示例:
/* 当屏幕宽度小于 600px 时应用此样式 */
@media (max-width: 600px) {
body {
background-color: lightblue;
}
}
动画
和 过渡
有什么区别?@keyframes
定义动画的关键帧,可以控制动画的每一帧。transition
定义元素在状态变化时的过渡效果,如颜色、大小等。示例:
/* 动画 */
@keyframes slide {
from { transform: translateX(0); }
to { transform: translateX(100px); }
}
.element {
animation: slide 2s infinite;
}
/* 过渡 */
.element {
transition: background-color 0.5s ease;
}
.element:hover {
background-color: red;
}
JavaScript 中的数据类型分为两大类:原始类型 和 引用类型。
原始类型:
number
:数字,包括整数和浮点数。string
:字符串。boolean
:布尔值,true
或 false
。null
:表示空值。undefined
:表示未定义的值。symbol
:表示唯一的标识符(ES6 新增)。引用类型:
object
:对象,包括数组、函数、日期等。==
和 ===
有什么区别?==
:宽松相等,会进行类型转换后再比较。===
:严格相等,不会进行类型转换,只有类型和值都相同时才返回 true
。示例:
1 == '1'; // true
1 === '1'; // false
闭包
是什么?有什么作用?闭包是指函数能够访问其词法作用域中的变量,即使函数在其词法作用域之外执行。
作用:
示例:
function createCounter() {
let count = 0;
return function() {
count++;
return count;
};
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
原型链
是什么?原型链是 JavaScript 中实现继承的机制。每个对象都有一个原型对象,通过 __proto__
属性指向其原型对象。当访问对象的属性或方法时,如果对象本身没有该属性或方法,JavaScript 会沿着原型链向上查找,直到找到该属性或方法或到达原型链的顶端(null
)。
示例:
function Person(name) {
this.name = name;
}
Person.prototype.sayHello = function() {
console.log(`Hello, ${this.name}`);
};
const person = new Person('Alice');
person.sayHello(); // Hello, Alice
this
指向什么?this
的指向取决于函数的调用方式:
this
指向 window
(浏览器)或 global
(Node.js)。this
指向 window
(非严格模式)或 undefined
(严格模式)。this
指向调用该方法的对象。this
指向新创建的对象。this
,this
指向外层作用域的 this
。示例:
const obj = {
name: 'Alice',
sayHello: function() {
console.log(`Hello, ${this.name}`);
}
};
obj.sayHello(); // Hello, Alice
事件循环
是什么?事件循环是 JavaScript 处理异步操作的机制。JavaScript 是单线程的,但通过事件循环可以实现非阻塞的异步操作。
事件循环的工作流程:
Promise
的 then
回调)。setTimeout
回调)。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。