项目实战记录
1.css选择器
1.CSS选择器用于选择HTML元素并将样式应用于它们。以下是一些常见的CSS选择器:
元素选择器:通过元素名称选择元素。例如,使用p选择器可以选择所有的
元素。
1
2
3p {
color: red;
}ID选择器:通过元素的ID属性选择元素。ID属性在HTML文档中应该是唯一的。例如,使用#myElement选择器可以选择具有ID为”myElement”的元素。
1
2
3#myElement {
font-size: 20px;
}类选择器:通过元素的类名选择元素。类名可以在HTML文档中多次使用。例如,使用.myClass选择器可以选择具有类名”myClass”的所有元素。
1
2
3.myClass {
background-color: yellow;
}属性选择器:通过元素的属性选择元素。例如,使用[type=”text”]选择器可以选择所有type属性为”text”的元素。
1
2
3input[type="text"] {
border: 1px solid black;
}后代选择器:通过元素的后代关系选择元素。例如,使用div p选择器可以选择所有在
元素内的元素。
1
2
3div p {
color: blue;
}伪类选择器:通过元素的特殊状态选择元素。例如,使用:hover选择器可以选择鼠标悬停在元素上的状态。
1
2
3a: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 pop4.项目信息 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是用来声明变量的关键字,它们有以下几点区别:
- 声明的方式:const用于声明一个常量,其值在声明后不能被修改;let用于声明一个块级作用域的变量,其值可以被修改。
- 作用域:const和let都是块级作用域,只在声明它们的块内部有效。在块外部无法访问到这些变量。
- 变量提升:const和let声明的变量不会被变量提升。这意味着在声明之前使用这些变量会导致引用错误。
- 重复声明:使用const声明的变量不能被重复声明,否则会抛出语法错误。而let声明的变量可以在相同的块内部被重复声明。
- 初始化:const声明的变量必须在声明时初始化,否则会抛出语法错误。而let声明的变量可以在稍后的任意时间点进行初始化。
const用于声明一个不能被修改的常量,而let用于声明一个可修改的块级作用域变量。
8. var
var
: 在ES5之前,var
是声明变量的唯一关键字。它具有函数作用域(function scope),这意味着变量的作用域是在声明它的函数内部。如果在函数外部声明变量,则该变量将成为全局变量,可以在整个程序中访问。var
声明的变量可以被重复声明,而且它们的值可以被修改。let
: 在ES6中引入了let
关键字。let
具有块级作用域(block scope),这意味着变量的作用域是在声明它的块(代码块,如 if 语句、循环等)内部。与var
不同,使用let
声明的变量在同一个作用域内不能被重复声明,但它们的值可以被修改。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.
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 FadeAway Space!评论