1.css选择器

1.CSS选择器用于选择HTML元素并将样式应用于它们。以下是一些常见的CSS选择器:

  1. 元素选择器:通过元素名称选择元素。例如,使用p选择器可以选择所有的

    元素。

    1
    2
    3
    p {
    color: red;
    }
  2. ID选择器:通过元素的ID属性选择元素。ID属性在HTML文档中应该是唯一的。例如,使用#myElement选择器可以选择具有ID为”myElement”的元素。

    1
    2
    3
    #myElement {
    font-size: 20px;
    }
  3. 类选择器:通过元素的类名选择元素。类名可以在HTML文档中多次使用。例如,使用.myClass选择器可以选择具有类名”myClass”的所有元素。

    1
    2
    3
    .myClass {
    background-color: yellow;
    }
  4. 属性选择器:通过元素的属性选择元素。例如,使用[type=”text”]选择器可以选择所有type属性为”text”的元素。

    1
    2
    3
    input[type="text"] {
    border: 1px solid black;
    }
  5. 后代选择器:通过元素的后代关系选择元素。例如,使用div p选择器可以选择所有在

    元素内的

    元素。

    1
    2
    3
    div p {
    color: blue;
    }
  6. 伪类选择器:通过元素的特殊状态选择元素。例如,使用:hover选择器可以选择鼠标悬停在元素上的状态。

    1
    2
    3
    a:hover {
    text-decoration: underline;
    }

这只是一些常见的CSS选择器,还有其他更复杂的选择器可以根据需要使用。选择器的组合和嵌套可以更精确地选择需要样式化的元素。

2.前后端分离–服务端渲染区别

前后端分离和服务端渲染是两种不同的开发架构方式。

前后端分离是一种架构模式,其中前端和后端是独立开发和部署的。前端负责处理用户界面和用户交互,而后端负责处理业务逻辑和数据存储。前后端通过API进行通信,前端通过AJAX或其他方式从后端获取数据并动态更新界面。这种架构使前后端开发团队能够独立工作,并且前端可以使用不同的技术栈,例如React、Angular或Vue。

服务端渲染是指在服务器端生成HTML内容,然后将其发送到客户端进行显示。传统的服务器端渲染方式是在后端生成完整的HTML页面,包含动态数据和样式,然后将其发送到客户端。客户端只需展示接收到的HTML内容,无需在浏览器中进行额外的渲染。这种方式可以提供更好的首次加载性能和SEO优化。

区别在于前后端分离可以将前端和后端的开发工作分离,使得团队可以独立开发和部署,前端可以使用不同的技术栈,并且通过API进行通信。而服务端渲染是一种在服务器端生成HTML内容的方式,可以提供更好的首次加载性能和SEO优化。在传统的服务器端渲染中,前后端通常是耦合的,但在现代的前后端分离架构中,可以结合服务端渲染来提供更好的用户体验和性能。

3.在签出前,请清理仓库工作树

因为本地代码和git远程库代码存在冲突,也就是你改的文件,别人也做了修改,并且别人先于你提交了,当你再去拉取时就会发现如上提示,导致拉取失败。

1
2
3
4
5
6
# 储藏
git stash
# 拉取
git pull
# 弹出储藏
git stash pop

4.项目信息 project-public,database.php

5. 视图输出字符串内容替换,留空则会自动进行计算(config.php)

1
2
3
4
5
6
7
8
9
'view_replace_str'    => [

'__PUBLIC__' => '',

'__ROOT__' => '',

'__CDN__' => '',

],

6.子绝父相

要求 1.2 覆盖 1.1

———————1 relative

—————–1.1 absolute

—————- 1.2 relative

F12 可以修改css实时查看效果 min-height ,max-height ,z-index

7.const和let区别

在JavaScript中,const和let是用来声明变量的关键字,它们有以下几点区别:

  1. 声明的方式:const用于声明一个常量,其值在声明后不能被修改;let用于声明一个块级作用域的变量,其值可以被修改。
  2. 作用域:const和let都是块级作用域,只在声明它们的块内部有效。在块外部无法访问到这些变量。
  3. 变量提升:const和let声明的变量不会被变量提升。这意味着在声明之前使用这些变量会导致引用错误。
  4. 重复声明:使用const声明的变量不能被重复声明,否则会抛出语法错误。而let声明的变量可以在相同的块内部被重复声明。
  5. 初始化:const声明的变量必须在声明时初始化,否则会抛出语法错误。而let声明的变量可以在稍后的任意时间点进行初始化。

const用于声明一个不能被修改的常量,而let用于声明一个可修改的块级作用域变量。

8. var

  1. var: 在ES5之前,var 是声明变量的唯一关键字。它具有函数作用域(function scope),这意味着变量的作用域是在声明它的函数内部。如果在函数外部声明变量,则该变量将成为全局变量,可以在整个程序中访问。var 声明的变量可以被重复声明,而且它们的值可以被修改。
  2. let: 在ES6中引入了 let 关键字。let 具有块级作用域(block scope),这意味着变量的作用域是在声明它的块(代码块,如 if 语句、循环等)内部。与 var 不同,使用 let 声明的变量在同一个作用域内不能被重复声明,但它们的值可以被修改。
  3. const: const 也是在ES6中引入的关键字。const 用于声明常量,它们的值在声明后不能被修改。与 let 类似,const 也具有块级作用域,而且不能被重复声明。

总结一下,var 具有函数作用域,可以被重复声明和修改值;let 具有块级作用域,不能被重复声明但可以修改值;const 也具有块级作用域,不能被重复声明且不能修改值。

9.全局变量

多个<script>标签中的全局变量可以相互访问。当浏览器解析HTML文件时,会按照顺序执行<script>标签中的代码,并将其中定义的全局变量添加到全局作用域中。因此,后面的<script>标签可以访问前面的全局变量。请注意,如果在后面的<script>标签中重新定义了前面已经定义的全局变量,那么后面的定义将会覆盖前面的定义。

let that = this

在一个函数中使用let that = this;,那么that将会是一个指向当前函数所属对象的引用。这种做法通常用于解决在回调函数中this指向的问题,因为在回调函数中,this的指向可能会发生改变。

10.truncate

1
TRUNCATE TABLE 表名;

TRUNCATE TABLE命令会立即删除表中的所有数据,并且无法恢复,从而清除默认id。

11.localStorage

Localstorage是一种在Web浏览器中存储数据的机制。它允许网站在用户的本地浏览器上存储和检索数据,以便在会话之间保持持久的状态。

要使用Localstorage,可以使用JavaScript的localStorage对象。以下是一些常见的操作:

设置数据:

1
localStorage.setItem('key', 'value');

获取数据:

1
var value = localStorage.getItem('key');

删除数据:

1
localStorage.removeItem('key');

清空所有数据:

1
localStorage.clear();
1
2
3
4
5
6
7
8
// 存储数组
var array = [1, 2, 3, 4, 5];
localStorage.setItem('myArray', JSON.stringify(array));

// 检索数组
var storedArray = JSON.parse(localStorage.getItem('myArray'));
console.log(storedArray); // 输出 [1, 2, 3, 4, 5]

12.onclick和@click的区别

onclick 是用于原生 HTML 元素的点击事件处理,而 @click 是用于 Vue 组件内部的点击事件处理。

13.