**本篇文章食用的简单说明**
本篇文章为复习CSS与CSS3进行了知识点梳理,其中标题十部分在文章《HTML与HTML5知识点复习整理 》中已经包括 (有标注),加粗 部分为重点!!!加粗加红 为重重点!!!
由于CSS涉及过多 ,本篇文章只是大概部分 ,一些技巧和移动端知识在后续过程中会继续更新 ,欢迎小伙伴在评论区补充~
推荐大家按记忆梳理部分的内容自行回忆知识点,如有遗忘部分在左下方目录处点击相应部分可以进行跳转。
又是努力学习前端的一天,希望大家共同进步~~~(QAQ我只是一个表情)❤
***记忆梳理***
一、CSS是什么,用来做什么
二、CSS引入方式
三、CSS基础选择器
包括几种,它们的作用
区别
四、CSS复合选择器
包括几种,它们的作用
五、CSS新增选择器
包括几种,它们的作用
选择器权重
三大特性
六、字体属性
字体
字号
字体粗细
字体样式
字体连写
七、文本属性
文本颜色
文本对齐
文本缩进
文本修饰
行高 :单行文字垂直居中的代码*
八、背景属性
背景颜色
背景图像
背景平铺
背景图片位置
背景附着
背景色半透明
背景复合写法
九、注释
十、HTML元素分类与元素转换/CSS元素显示模式(《HTML与HTML5知识点复习整理 》 中已经包括 )
元素分类
元素转换
十一、网页布局
盒子模型
外边距应用、块级行内行内块的居中方式
标准流
浮动
定位
十一、CSS3新特性
图片模糊
函数自动计算
过渡
十二、元素的显示与隐藏
包括几种,它们的作用,区别
一、CSS指层叠样式表(C ascading S tyle S heets),美化HTML,解决布局问题 。解释:以多种方式 规定样式信息,样式表定义如何显示 HTML 元素。
二、CSS引入方式---"多种方式"
2.1 外部方式
优先级 : > @import
(1)链接 :一边加载数据,一边优化,视觉效果好。
(2)导入:@import :先加载数据,再加载样式,可能造成数据先显示,样式还在加载。
2.2 内部方式
2.3 行内方式/内联方式:直接在HTML元素内使用style,优先级最大,不推荐
我是h1标题,还记得我吗QAQ
优先级:行内样式 >外部样式=内部样式(后两者“就近原则”,以最后出现的为准 )
三、CSS基础选择器
3.1 标签选择器:用 HTML 标签名称作为选择器,选出所有相同的标签,权重为1
3.2 class类选择器:可以选出1个或多个标签, 权重为10
.box { /* .class {属性1...} */
width: 200px;
height: 100px;
background-color: pink;
}
class="box" >我是一个盒子
多类名 :多个类名中间必须用空格分开 ,这个标签就可以分别具有这些类名的样式,较多使用
class=" 类名1 类名2" >我是一个盒子
3.3 id选择器:一次只能选择一个标签 ,id 属性在每个 HTML 文档中只能出现一次
#box { /* .id {属性1...} */
width: 200px;
height: 100px;
background-color: pink;
}
id="box" >我是一个盒子
3.4 * 通配符选择器:选择所有标签
* { /* * {属性1...} */
margin:0'
padding:0; /* 常用来清除内外边距 */
}
3.5 类选择器与id选择器的区别
类选择器一个标签可以起多个 名字,一个名字可以多个标签使用,修改样式中使用多。
id选择器唯一 不得重复,经常与JavaScript搭配使用。
四、CSS复合选择器
4.1 派生选择器:根据上下文关系来确定某个标签的样式
(1)后代选择器 :元素2 可以是儿子,也可以是孙子等,只要是元素1 的后代即可
strong { /* 被h2 strong覆盖*/
color: blue;
}
h2 {
color: #000;
}
h2 strong { /* 元素1 元素2 { 样式声明 } 元素1 和 元素2 中间用空格隔开*/
color: pink;
}
我是一个正常的h2标题
我是一个粉色的h2标题
(2)>子元素选择器 :选择它下一级全部的亲儿子 ,元素2 必须是亲儿子,其孙子、重孙之类都不归他管. 你也可以叫他 亲儿子选择器
我是 h1 标签! 变为粉色 我是 h1 标签! 不变色
(3)+相邻兄弟选择器:选择紧接在另一个元素后的元素,而且二者有相同的父元素。
4.2 , 并集选择器:选择某些相同样式的元素,集体声明
4.3 : 伪类选择器
4.3.1 链接 伪类选择器 :请按照 LVHA 的循顺序声明 :link-:visited-:hover-:active
4.3.2 :focus 伪类选择器:用于选取获得焦点(光标)的表单 元素
五、CSS3新增选择器
5.1 属性选择器:根据元素特定属性选择元素,权重为10
E[att]:选择具有 att属性的E元素
E[att = "val"]:选择具有att属性且值等于 val的E元素
E[att^ = "val"]:选择具有att属性且值等于val开头 的E元素
E[att$ = "val"]:选择具有att属性且值等于val结尾 的E元素
E[att* = "val"]:选择具有att属性且值中含 有等于val的E元素
5.2 结构伪类选择器:根据文档结构来选择元素,权重为10
E:first-child 匹配父元素第一个子元素E
E:last-child 匹配父元素最后一个子元素E
E:nth-child(n) 匹配父元素第n个子元素E
E:first-of-type(n) 指定类型E的第一个元素
E:last-of-type(n) 指定类型E的最后个元素
E:nth-of-type(n) 指定类型E的第n个元素
5.2.1 E:nth-child(n) 匹配父元素第n个子元素E
(1)n可以是数字,关键字和公式
(2)n里面数字从1开始
(3) 关键字:even偶数,odd奇数
(4) 常见公式:从0开始,但是第0个元素或超出个数会忽略
2n 偶数,2n+1 奇数, 5n 5的倍数,n+5 从第五个(包含第5个)到最后, -n+5 前五个 (包含第5个)...
5.3 nth-child和nth-of-type区别
nth-child对父元素里面所有孩子 排序选择(序号固定),先找到第n个孩子,查看是否匹配
nth-of-type对父元素里面指定子元素 排序选择,先匹配,后找第n个孩子
5.4 ::伪元素选择器:新创建的元素在文档树中找不到,称为伪元素
5.4.1 ::before和::after:创建一个元素,但属于行内元素,必须有content属性,权重为1
::before在元素内部的前面 插入内容,但属于行内元素
::after在元素内部的后面 插入内容,但属于行内元素
5.4.1 清除浮动的方法
(1)额外标签法/隔墙法:在最后一个浮动的子元素后面添加一个额外/空标签。
(2)父级添加overflow属性:overflow:hidden/auto/scroll.但无法显示溢出部分。
**伪元素清除浮动算是第一种额外标签法的一个升级和优化**
(3)父级添加after属性
.clearfix:after {
content:""; /* 伪元素必须写的属性*/
display:block; /* 插入的元素必须是块级*/
height:0; /* 不要看见这个元素*/
clear:both; /* 核心代码清除浮动*/
visibility:hidden; /* 不要看见这个元素*/
}
(4)父级添加双伪元素
.clearfix:before,.clearfix:after {
content:""; /* 伪元素必须写的属性*/
display:table; /* 转换为块级元素并且一行显示*/
}
.clearfix:after {
clear:both; /* 核心代码清除浮动*/
}
5.5 *选择器权重*---三大特性1. 优先级:同一个元素指定多个选择器产生优先级;选择器相同,则执行层叠性,选择器不同,则根据选择器权重执行。
*选择器权重*
继承或*通配符 0,0,0,0
标签/元素选择器 0,0,0,1
类,属性,伪类选择器 0,0,1,0
id选择器 0,1,0,0
行内样式style="" 1,0,0,0
!important重要的 无穷大
**权重叠加**:如果是复合选择器,则会权重叠加,需计算权重
div ul li 0,0,0 ,3
.nav ul li 0,0,1,2
a:hover 0,0,1,1
.nav a 0,0,1,1
注意:权重是4组数字组成,但不会进位
通配符*和继承权重0;标签/元素选择器1;类,伪类选择器10;id选择器100;行内样式表1000;!important无穷大
继承权重0,如果元素未直接选中,不管父元素权重多高,子元素权重都为0
5.6 三大特性2.继承性 :子标签继承父标签的某些样式(以text-,font-,line- 开头,color)
5.7 三大特性3.层叠性 :相同选择器设置相同样式会覆盖/层叠 样式冲突:后来者居上
六、字体属性
6.1 font-family字体
p {font-family:"微软雅黑";}
div {font-family: Arial,"Microsoft Yahei","微软雅黑";}
6.2 font-size字号/字体大小:12px 16px(谷歌默认) 18px
6.3 font-weight字体粗细:normal默认值不加粗--400 ;bold加粗--700 ;100-900 数值不跟单位。
6.4 font-style字体样式:normal默认值;italic斜体 。
6.5 字体连写/字体复合(简写)属性:不能更换顺序;取默认值属性可以省略,但必须保留 font-size 和 font-family 属性
body {
font: font-style font-weight font-size/line-height font-family;
}
七、文本属性
7.1 color文本颜色 :常用十六进制 #FF0000;预定义颜色red;RGB代码rgb(255,0,0或100%,0%,0%)
7.2 text-align文本对齐:设置文字水平对齐
7.3 text-indent文本缩进:段落首行缩进2字符,text-indent:2em;
7.4 text-decoration文本修饰 none默认取消 ; underline下划线 ;overline上划线;line-trough删除线
7.5 line-height行高:行与行之间的距离
**单行文字垂直居中的代码**
解决方案: 文字的行高=盒子的高度 /* 文字在当前盒子内垂直居中*/
简单理解: 行高的上空隙和下空隙把文字挤到中间了. 是如果行高小于盒子高度,文字会偏上,如果行高大于盒子高度,则文字偏下
八、背景属性
8.1 background-color 背景颜色:默认值transparent(透明)
8.2 background-image 背景图像:url路径 ;none无背景图
8.3 background-repeat背景平铺:repeat默认纵向横向平铺;no-repeat不平铺;repeat-x/y 横/纵
8.4 background-position背景图片位置
(1)参数方位名词position:top|center|bottom|left|center|right
两个值无顺序 left top;top left一样
一个值,则第二个值默认居中对齐
(2)参数精确单位length:百分数%|浮动数和单位组成长度值
第一个x坐标,第二个y坐标
一个值就是x坐标,y默认垂直居中
(3)参数混合单位
第一个x坐标,第二个y坐标
8.5 background-attachment背景附着:scroll背景滚动;fixed背景固定
8.6 background: rgba(0, 0, 0, 0.3);背景色半透明(CSS3新增属性:最后一个参数是alpha透明度,取值范围0-1之间,0.x的0可以省略
8.7 背景复合写法:没有特定的书写顺序,一般习惯约定顺序
background: 背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置;
background:transparent url(image.jpg) repeat-y fixed top;
九、注释:/* 注释 */
十、HTML元素分类与元素转换/CSS元素显示模式
10.1 元素分类
(1)block块级 元素:独占一行 (一行只能放一个块级元素),可以设置宽度、高度以及边距等样式属性 , 宽度默认是容器(父级宽度)的100% 。
常见的块级 元素有:、
-、 、
、、、、 、 等。
(2)inline行内 元素/内联 元素:不会独占一行(一行可以放多个行内元素),宽度默认由其本身决定,直接设置宽度高度无效 , 默认宽度就是它本身内容的宽度 。
常见的行内 元素有: 、 、 、、
(3)inline-block行内块 元素/内联块元素:不会独占一行(一行可以放多个行内元素)默认宽度就是它本身内容的宽度,可以设置宽度、高度以及边距等样式属性 。(行内部分特点+块级部分特点 )
常见的行内块 元素有: 、 、
10.2 元素转换
10.2.1 display方法
转换为块元素:display:block; 转换为行内元素:display:inline; 转换为行内块元素:display: inline-block;
10.2.2 float浮动
行内元素设置浮动后 ,该元素的display属性会被赋予block,转换为块级元素 。
10.2.3 position定位
行内元素添加 定位后,绝对定位 position:absolute;与固定定位 position:fixed ;,转换为块级元素 。
十一、网页布局!!!超级重要!!!
10.1 盒子模型:把网页布局元素看作盒子,包括:外边距margin、边框border、内边距padding、实际内容content。
外边距应用: **盒子水平居中**---块级元素
.box {
width:960px; /* 给盒子指定宽度width */
margin:0 auto ; /* 盒子左右外边距设置auto */
}
行内元素 或者行内块元素水平居中给父元素添加text-align:center ;
CSS3新特性:box-sizing 来指定盒模型解决撑大盒子 问题
值有两个context-box默认会撑大,border-box不会撑大
box-sizing:content-box; 盒子大小计算方式width+padding+border
box-sizing:border-box; 盒子大小计算方式width ,因此padding和border不超过windth宽则不会撑大盒子
10.2 标准流(普通流/文档流): 标签按照规定好默认方式排列。
10.3 float浮动:让多个块级元素一行内排列显示。
选择器{
float: 属性值; /* none默认不浮动;left左浮动;right右浮动; */
}
10.3.1 !!!浮动特性!!!
1. 浮动元素会脱离标准流 ,脱离标准普通流的控制(浮) 移动到指定位置(动),俗称脱标
浮动的盒子不再保留原先的位置
2. 多个盒子都设置了浮动,浮动的元素会一行内显示并且元素顶部对齐
浮动的元素是互相贴靠在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子, 多出的盒子 会另起一行对齐 。
3. 浮动的元素会具有行内块元素 的特性.
10.3.2 清除浮动:由于父级盒子有时不给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为 0 时,就会影响下面的标准流盒子,影响排版布局,所以清除浮动。
***清除浮动的方法在目录五、5.4的5.4.1中***
注意:
(1)清除浮动的本质是清除浮动元素造成的影响
(2)如果父盒子本身有高度,则不需要清除浮动
(3)清除浮动之后,父级就会根据浮动的子盒子自动检测高度。父级有了高度,就不会影响下面的标准流了
网页布局准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动
10.4 position定位:定位模式 + 边偏移
定位的使用场景:
某个元素可以自由的在一个盒子内移动位置,并且压住其他盒子。
当我们滚动窗口的时候,盒子是固定屏幕某个位置的。
10.4.1 定位模式
position:static;静态定位,默认无边偏移
position:relative;相对定位, 相对于它原来的位置 移动,标准流
position:absolute;绝对定位, 是相对于它祖先元素 来移动,脱离标准流 不再占有原先的位置
position:fixed;固定定位 ,元素固定于浏览器可视区 的位置,以浏览器的可视窗口为参照点 移动元素,脱离标准流 不再占有原先的位置
position:sticky;粘性定位,是相对定位和固定定位的混合。以浏览器的可视窗口为参照点 移动元素,标准流
**子绝父相**: 子级是绝 对定位的话,父级要加上相对定位。
**绝对定位的盒子居中**: 加了绝对定位 的盒子不能通过 margin:0 auto 水平居中 ,但是可以通过以下计算方法实现水平和垂直居中。
left: 50%; 让盒子的左侧移动到父级元素的水平中心位置。
margin-left: -100px; 让盒子向左移动自身宽度的一半。
**固定在版心右侧位置**
1.让固定定位的盒子 left: 50%.。走到浏览器可视区(也可以看做版心) 的一半位置。
2.让固定定位的盒子 margin-left: 版心宽度的一半距离。 多走 版心宽度的一半位置
3.就可以让固定定位的盒子贴着版心右侧对齐了。
10.4.2 边偏移
top顶端偏移量;bottom底部偏移量;left左侧偏移量;right右侧偏移量;
10.4.3 定位叠放次序 z-index:控制盒子的前后次序,只有定位才有该属性。
选择器 {
z-index: 1; /* 数值可以是正整数、负整数或 0, 默认是 auto */
}
数值越大 ,盒子越靠上 ;如果属性值相同,则按照书写顺序,后来居上 ;数字后面不能加单位
10.4.4 定位导致的元素转换
(1)行内元素 添加绝对 或者固定 定位,可以直接设置高度和宽度 。
(2)块级 元素添加绝对 或者固定 定位,如果不给宽度或者高度,默认大小是内容的大小 。
10.4.5 拓展
(1)脱标的盒子不会触发外边距塌陷
浮动元素、绝对定位(固定定位)元素的都不会触发外边距合并的问题。
(2)绝对定位(固定定位) 会完全压住 下面标准流所有 的内容,浮动 只会压住下面标准流的盒子,但是不会压住 下面标准流盒子里面的文字(图片 ) 。
浮动之所以不会压住文字,因为浮动产生的目的最初是为了做文字环绕效果的。 文字会围绕浮动元素
10.5 网页布局使用原则
先用标准流的父元素 排列上下位置, 之后内部子元素采取浮动 排列左右位置. 符合网页布局第一准侧。浮动的盒子只会影响浮动盒子后面的标准流 ,不会影响前面的标准流 。
1. 标准流:可以让盒子上下排列或者左右排列,垂直的块级盒子显示就用标准流布局。
2. 浮动:可以让多个块级元素一行显示或者左右对齐盒子,多个块级盒子水平显示就用浮动布局。
3. 定位:定位最大的特点是有层叠的概念,就是可以让多个盒子前后叠压来显示。如果元素自由在某个盒子内移动就 用定位布局。
十一、CSS3 的新特性
11.1 filter图片变模糊:filter:函数();---filter:blur(5px);blur模糊处理,数值越大越模糊
11.2 calc 函数自动计算:width:calc(100%-80px);
11.3 transition过渡
经常和 :hover 一起 搭配使用;
transition: 要过渡的属性(css属性,全部all) 花费时间0.5s(必须写单位) 运动曲线(ease默认可省略) 何时开始0s延迟时间必须写单位可省略;
*记住过渡的使用口诀: 谁做过渡给谁加*
十二、 元素的显示与隐藏
12.1 display 显示隐藏:设置一个元素应如何显示
display: none ;隐藏元素,不再占有原来的位置
display:block ;除了转换为块级元素之外,同时还有显示元素 的意思
12.2 visibility 显示隐藏:指定一个元素应可见还是隐藏
visibility:hidden; 元素隐藏,继续占有 原来的位置
visibility:visible ; 元素可视
12.3 overflow 溢出显示隐藏:如果内容溢出 一个元素的框(超过其指定高度及宽度) 时,会发生什么
overflow:visible;不剪切内容也不加滚动条
overflow:hidden;不显示超过对象尺寸的内容,超出部分隐藏
overflow:scroll;不管超出与否,总显示滚动条
overflow:auto;超出自动显示滚动条,不超出不显示
注意:有定位的盒子, 请慎用overflow:hidden 因为它会隐藏多余的部分。
你可能感兴趣的:(css,css3,前端)
移动端城市区县二级联动选择功能实现包
good2know
本文还有配套的精品资源,点击获取简介:本项目是一套为移动端设计的jQuery实现方案,用于简化用户在选择城市和区县时的流程。它包括所有必需文件:HTML、JavaScript、CSS及图片资源。通过动态更新下拉菜单选项,实现城市到区县的联动效果,支持数据异步加载。开发者可以轻松集成此功能到移动网站或应用,并可基于需求进行扩展和优化。1.jQuery移动端解决方案概述jQuery技术简介jQuery
day15|前端框架学习和算法
universe_01
前端 算法 笔记
T22括号生成先把所有情况都画出来,然后(在满足什么情况下)把不符合条件的删除。T78子集要画树状图,把思路清晰。可以用暴力法、回溯法和DFS做这个题DFS深度搜索:每个边都走完,再回溯应用:二叉树搜索,图搜索回溯算法=DFS+剪枝T200岛屿数量(非常经典BFS宽度把树状转化成队列形式,lambda匿名函数“一次性的小函数,没有名字”setup语法糖:让代码更简洁好写的语法ref创建:基本类型的
js操作样式
郝加升
DOM样式属性和方法:指定的元素,它的style有这么几个属性和方法:cssText:通过这个属性可以访问到元素的特性style设置的属性,并且可以直接赋值设置。removeProperty(属性名称):从样式中删除给定属性。setProperty(属性名称,值,权重):可以通过这个方法设置给定样式的同时设置其权重,可以传入”important”或者一个空字符串。获取计算后样式:window.ge
用代码生成艺术字:设计个性化海报的秘密
本文围绕“用代码生成艺术字:设计个性化海报的秘密”展开,先概述代码生成艺术字在海报设计中的独特价值,接着介绍常用的代码工具(如HTML、CSS、JavaScript等),详细阐述从构思到实现的完整流程,包括字体样式设计、动态效果添加等,还分享了提升艺术字质感的技巧及实际案例。最后总结代码生成艺术字的优势,为设计师提供打造个性化海报的实用指南,助力提升海报设计的独特性与吸引力,符合搜索引擎SEO标准
vue element 封装表单
影子信息
vue vue.js javascript 前端
背景:在前端系统开发中,系统页面涉及到的表单组件比较多,所以进行了简单的封装。封装的包括一些Form表单组件,如下:input输入框、select下拉框、等实现效果:理论知识:表单组件官方链接:点击跳转封装组件:封装组件的思路:不封装element组件,每一个input组件绑定一个form对象,例如官网。简单封装element组件,利用for循环生成form表单的每一项el-form-item。进
前端面试每日 3+1 —— 第39天
浪子神剑
今天的面试题(2019.05.25)——第39天[html]title与h1、b与strong、i与em的区别分别是什么?[css]写出你知道的CSS水平和垂直居中的方法[js]说说你对模块化的理解[软技能]公钥加密和私钥加密是什么?《论语》,曾子曰:“吾日三省吾身”(我每天多次反省自己)。前端面试每日3+1题,以面试题来驱动学习,每天进步一点!让努力成为一种习惯,让奋斗成为一种享受!欢迎在Iss
前端数据库:IndexedDB从基础到高级使用指南
文章目录前端数据库:IndexedDB从基础到高级使用指南引言一、IndexedDB概述1.1什么是IndexedDB1.2与其他存储方案的比较二、基础使用2.1打开/创建数据库2.2基本CRUD操作添加数据读取数据更新数据删除数据三、高级特性3.1复杂查询与游标3.2事务高级用法3.3性能优化技巧四、实战案例:构建离线优先的待办事项应用4.1数据库设计4.2同步策略实现五、常见问题与解决方案5.
【Java Web实战】从零到一打造企业级网上购书网站系统 | 完整开发实录(三)
笙囧同学
java 前端 状态模式
核心功能设计用户管理系统用户管理是整个系统的基础,我设计了完整的用户生命周期管理:用户注册流程验证失败验证通过验证失败验证通过用户名已存在用户名可用失败成功用户访问注册页面填写注册信息前端表单验证显示错误提示提交到后端后端数据验证返回错误信息用户名唯一性检查提示用户名重复密码加密处理保存用户信息保存成功?显示系统错误注册成功跳转登录页面登录认证机制深度解析我实现了一套企业级的多层次安全认证机制:认
从零到一:打造基于GigaChat AI的艺术创作平台 | 笙囧同学的全栈开发实战
作者简介:笙囧同学,中科院计算机大模型方向硕士,全栈开发爱好者联系方式:3251736703@qq.com各大平台账号:笙囧同学座右铭:偷懒是人生进步的阶梯前言在AI技术飞速发展的今天,如何将前沿的大模型技术与实际应用相结合,一直是我们开发者关注的焦点。今天,笙囧同学将带大家从零开始,构建一个基于GigaChatAI的艺术创作平台,实现React前端+Django后端的完整全栈解决方案。这不仅仅是
14.tornado操作之应用Websocket协议实现聊天室功能
孤寒者
Tornado框架从入门到实战 websocket tornado 聊天室功能实现 python
目录:每篇前言:1.什么是WebSocket(1)定义(2)优点(3)和HTTP对比(4)适用场景2.WebSocket关键方法3.本tornado项目中使用WebSocket(1)准备一个聊天室的页面:第一步:编写视图:第二步:编写接口:(app.py中加入以下接口!)第三步:编写前端页面:测试接口——响应OK!(2)使用WebSocket:(3)聊天室的聊天功能的最终实现:第一步:战前准备第二
为什么学习Web前端一定要掌握JavaScript?
web前端学习指南
为什么学习Web前端一定要掌握JavaScript?在前端的世界里,没有什么是JavaScript实现不了的,关于JS有一句话:凡是可以用JavaScript来写的应用,最终都会用JavaScript,JavaScript可运行在所有主要平台的所有主流浏览器上,也可运行在每一个主流操作系统的服务器端上。现如今我们在为网站写任何一个主要功能的时候都需要有懂能够用JavaScript写前端的开发人员。
小架构step系列25:错误码
秋千码途
架构 java
1概述一个系统中,可能产生各种各样的错误,对这些错误进行编码。当错误发生时,通过这个错误码就有可能快速判断是什么错误,不一定需要查看代码就可以进行处理,提高问题处理效率。有了统一的错误码,还可以标准化错误信息,方便把错误信息纳入文档管理和对错误信息进行国际化等。没有错误码的管理,开发人员就会按自己的理解处理这些错误。有些直接把堆栈直接反馈到前端页面上,使用看不懂这些信息体验很差,也暴露了堆栈信息有
Java朴实无华按天计划从入门到实战(强化速战版-66天)
岫珩
Java 后端 java 开发语言 学习 Java 时间安排 学习计划
致敬读者感谢阅读笑口常开生日快乐⬛早点睡觉博主相关博主信息博客首页专栏推荐活动信息文章目录Java朴实无华按天计划从入门到实战(强化速战版-66天)1.基础(18)1.1JavaSE核心(5天)1.2数据库与SQL(5天)1.3前端基础(8天)2.进阶(17天)2.1JavaWeb核心(5天)2.2Mybatis与Spring全家桶(6天)2.3中间件入门(4天)2.4实践项目(2天)3.高阶(1
《跨域资源共享CORS的深层逻辑与前端实践精要》
不同源头的资源交互已成为常态,而跨域资源共享(CORS)正是支撑这种交互的隐形架构。现代Web安全体系中平衡开放与防护的精妙设计。理解CORS的深层逻辑,不仅能解决实际开发中的跨域难题,更能触及网络安全与资源流通的核心矛盾,为前端工程师构建稳健的应用提供底层认知支撑。跨域资源共享的诞生,源于网络安全与应用发展的必然冲突。浏览器的同源策略,作为早期网络安全的基石,通过限制不同源文档的交互,有效阻挡了
深入了解 Kubernetes(k8s):从概念到实践
目录一、k8s核心概念二、k8s的优势三、k8s架构组件控制平面组件节点组件四、k8s+docker运行前后端分离项目的例子1.准备前端项目2.准备后端项目3.创建k8s部署配置文件4.部署应用到k8s集群在当今云计算和容器化技术飞速发展的时代,Kubernetes(简称k8s)已成为容器编排领域的事实标准。无论是互联网巨头、传统企业还是初创公司,都在广泛采用k8s来管理和部署容器化应用。本文将带
大厂都在用的前端缓存策略,你掌握了吗?
AI架构全栈开发实战笔记
前端 缓存 ai
大厂都在用的前端缓存策略,你掌握了吗?关键词:前端缓存、HTTP缓存、ServiceWorker、CDN缓存、缓存策略、性能优化、浏览器缓存摘要:本文将深入探讨前端开发中常用的缓存策略,从浏览器缓存到ServiceWorker,从HTTP缓存头到CDN缓存,全面解析大厂都在使用的高效缓存技术。通过生动的比喻和实际代码示例,帮助开发者理解并掌握这些提升Web应用性能的关键技术。背景介绍目的和范围本文
26. 什么是雪碧图,作用和原理了解吗
yqcoder
前端面试-CSS css 前端 html
总结小图合成一张,使用background来使用,减少资源请求一、什么是雪碧图?雪碧图(CSSSprite)是一种前端优化技术,指的是将多个小图标合并成一张大图,通过CSS控制显示其中的某一部分。它常用于网站中图标、按钮等小图较多的场景。二、雪碧图的作用作用说明✅减少HTTP请求次数合并多个图片为一张图,减少请求资源数✅提升页面加载速度尤其在图片较多时效果明显✅避免图片加载闪烁鼠标悬停切换图片时不
H5UI微信小程序前端框架实战指南
ai
本文还有配套的精品资源,点击获取简介:H5UI是一个为微信小程序开发设计的前端框架,基于H5技术,提供简洁高效的组件库。框架集成了丰富的UI元素,如按钮、表格、导航栏等,简化了界面布局和交互的实现。通过安装、引入、使用组件和事件绑定四个步骤,开发者可以轻松构建功能齐全的应用。了解性能优化等注意事项对于高效开发同样重要。1.微信小程序前端开发框架介绍微信小程序概述微信小程序是微信官方推出的一种无需下
Ubuntu安装LAMP
L_h1
测试 ubuntu linux
在安装vim时遇到了一个问题:E:无法获得锁/var/lib/dpkg/lock-frontend-open(11:资源暂时不可用)E:无法获取dpkg前端锁(/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?解决办法:强制解锁sudorm/var/lib/dpkg/lock-frontendsudorm/var/cache/apt/archives/locksud
震惊!DOM变化监控神器MutationObserver,前端开发必知的隐藏武器!
coding随想
JavaScript 前端 javascript html5
一、什么是MutationObserver?如果你是一个前端开发者,一定会遇到这样的场景:页面动态加载内容后,某些操作失效了。比如,你写了一个监听按钮点击的代码,但按钮是通过AJAX动态加载的,你的代码根本无法触发。这个时候,你就需要一个“监控哨兵”——MutationObserver,它能实时监听DOM树的变化,帮你捕获那些“暗中作祟”的节点变动。MutationObserver是HTML5引入
Coze Studio 架构拆解:AI Agent 开发平台项目结构全分析
代码简单说
2025开发必备(限时特惠) 架构 人工智能 Coze Studio 架构 AI Agent 开发平台 全栈 AI 工程化 图解架构
CozeStudio架构拆解:AIAgent开发平台项目结构全分析标签:CozeStudio项目架构、领域驱动设计DDD、全栈开发规范、Hertz框架、前后端协作、云原生容器、前端测试、IDL接口设计、微服务解耦、AI开发平台源码分析在最近研究AIAgent开发平台的过程中,我深入分析了刚刚开源的CozeStudio项目。这套系统是国内少有的开源全栈AI工程化项目,代码整洁、架构先进,特别是它基于
关于前端的性能优化
性能优化主要涵盖了以下四个方面:(tip:仅代表个人总结,如有不当,还希望看到的大佬多多指示)减少网络请求:合并文件、使用CDN、启用缓存。优化资源加载:代码分割、懒加载、图片压缩。提升渲染性能:减少重绘回流、防抖节流、使用WebWorker。监控和迭代:定期使用工具检测性能,持续优化。一、网络层面优化减少HTTP请求合并文件:将多个CSS或JavaScript文件合并成一个,减少请求次数。使用C
Grid布局参考资料
kiterumer
Grid布局张鑫旭-写给自己看的display:grid布局教程阮一峰-CSSGrid网格布局教程在Grid布局中,float,display:inline-block,display:table-cell,vertical-align以及column-*这些属性和声明对grid子项是没有任何作用的。这个可以说是Grid布局中的常识,面试经常会问的,一定要记得。Grid布局则适用于更大规模的布局(
linux网卡显示未知未托管,linux有线网络显示设备未托管
NetworkManagerNetworkManager是为了使网络配置尽可能简单而开发的网络管理软件包,如果使用DHCP,NetworkManager会替换默认的路由表、从DHCP服务器获取IP地址并根据情况设置域名服务器,NetworkManager的目标是使网络能够开箱即用。NetworkManager由两部分组成:一个以超级用户运行的守护进程(network-manager);一个前端管理
页面开发样式和布局入门:Vite + Vue 3 + Less
页面开发样式和布局入门:Vite+Vue3+Less引言在现代前端开发中,样式和布局是页面开发的核心部分。随着技术的不断发展,Vite、Vue3和Less等工具和框架的出现,使得前端开发变得更加高效和灵活。然而,尽管这些工具和框架提供了强大的功能,但在实际开发中仍然会遇到各种样式和布局的问题。本文将结合Vite、Vue3和Less,详细介绍在页面开发中常见的样式和布局问题,并提供解决方案和最佳实践
推客系统小程序机构版开发上线全攻略(2025年最新版)
vx_qutudy
推客小程序 推客系统开发 推客系统源码
一、开发前准备:筑牢基础,合规先行1.1注册与认证账号注册:登录微信公众平台注册小程序账号,选择“机构版”类型,获取唯一AppID。资质认证:基础资质:企业营业执照、法人身份证、对公账户信息。特殊资质:涉及支付功能:需办理《增值电信业务经营许可证》(ICP证)。涉及教育/医疗内容:需《互联网信息服务许可证》或相关行业资质。1.2技术选型:高效与扩展并重模块推荐方案前端框架微信原生框架(WXML+W
网络安全第14集
不灭锦鲤
web安全 安全
前言:小迪安全14集,这集重点内容:0、什么是js渗透测试?在javascript中也存在变量和函数,存在可控变量和函数就有可能存在在漏洞,js开发的web应用和php、java开发的区别是,js能看得到的源代码,php看不到,但是风险就是未授权访问、配置信息泄露(加密算法、key秘钥等),源代码看得到,存在更多的url泄露,从而可能会出现未授权访问,从url,前提:web应用可以采用前端语言或后
解决 Webpack 报错 “No module factory available for dependency type: CssDependency“ 的方法
cmmav33990
webpack rust 前端
这个错误表明Webpack在处理CSS依赖时找不到合适的模块工厂,通常发生在配置不完整或依赖冲突的情况下。以下是详细的解决方案:核心解决方案方案1:安装并配置正确的CSS处理器(最推荐)bashnpminstall--save-devcss-loaderstyle-loader#或使用mini-css-extract-plugin替代style-loadernpminstall--save-dev
怎么判断一个DAPP是否真正去中心化
判断一个DAPP(去中心化应用)是否真正去中心化,需要从多个维度进行考察。以下是关键评估标准:1.区块链依赖程度✅真正去中心化:核心逻辑和数据处理完全依赖智能合约,运行在区块链上(如以太坊、Solana等)。❌伪去中心化:依赖中心化服务器处理关键数据或业务逻辑,仅前端去中心化。2.智能合约控制权✅去中心化:合约代码开源,无管理员密钥(adminkey)或可升级后门,治理由DAO(去中心化自治组织)
Web前端交互利用Python跟大模型操作
哥本哈士奇
前端 交互 python
Web前端交互利用Python跟大模型操作一个简单的演示,如何把大模型应用集成到自己的应用场景当中。这里的场景我们模拟的是在吃鸡游戏中,一个作战计划,是否符合老六的行为规范。吃鸡游戏已经风靡很多年,游戏里每个人的游戏风格都不一样,有喜欢钢枪的,有喜欢随机应变的,也有喜欢当老六苟分的。每种风格的游戏方式以及游戏里的行为都不同,所以这里将演示如何应用大模型,去判断一个人的游戏方式,是否符合一个老六的行
Java序列化进阶篇
g21121
java序列化
1.transient
类一旦实现了Serializable 接口即被声明为可序列化,然而某些情况下并不是所有的属性都需要序列化,想要人为的去阻止这些属性被序列化,就需要用到transient 关键字。
escape()、encodeURI()、encodeURIComponent()区别详解
aigo
JavaScript Web
原文:http://blog.sina.com.cn/s/blog_4586764e0101khi0.html
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:,decodeURI,decodeURIComponent 。
下面简单介绍一下它们的区别
1 escape()函
ArcgisEngine实现对地图的放大、缩小和平移
Cb123456
添加矢量数据 对地图的放大、缩小和平移 Engine
ArcgisEngine实现对地图的放大、缩小和平移:
个人觉得是平移,不过网上的都是漫游,通俗的说就是把一个地图对象从一边拉到另一边而已。就看人说话吧.
具体实现:
一、引入命名空间
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Controls;
二、代码实现.
Java集合框架概述
天子之骄
Java集合框架概述
集合框架
集合框架可以理解为一个容器,该容器主要指映射(map)、集合(set)、数组(array)和列表(list)等抽象数据结构。
从本质上来说,Java集合框架的主要组成是用来操作对象的接口。不同接口描述不同的数据类型。
简单介绍:
Collection接口是最基本的接口,它定义了List和Set,List又定义了LinkLi
旗正4.0页面跳转传值问题
何必如此
java jsp
跳转和成功提示
a) 成功字段非空forward
成功字段非空forward,不会弹出成功字段,为jsp转发,页面能超链接传值,传输变量时需要拼接。接拼接方式list.jsp?test="+strweightUnit+"或list.jsp?test="+weightUnit+&qu
全网唯一:移动互联网服务器端开发课程
cocos2d-x小菜
web开发 移动开发 移动端开发 移动互联 程序员
移动互联网时代来了! App市场爆发式增长为Web开发程序员带来新一轮机遇,近两年新增创业者,几乎全部选择了移动互联网项目!传统互联网企业中超过98%的门户网站已经或者正在从单一的网站入口转向PC、手机、Pad、智能电视等多端全平台兼容体系。据统计,AppStore中超过85%的App项目都选择了PHP作为后端程
Log4J通用配置|注意问题 笔记
7454103
DAO apache tomcat log4j Web
关于日志的等级 那些去 百度就知道了!
这几天 要搭个新框架 配置了 日志 记下来 !做个备忘!
#这里定义能显示到的最低级别,若定义到INFO级别,则看不到DEBUG级别的信息了~!
log4j.rootLogger=INFO,allLog
# DAO层 log记录到dao.log 控制台 和 总日志文件
log4j.logger.DAO=INFO,dao,C
SQLServer TCP/IP 连接失败问题 ---SQL Server Configuration Manager
darkranger
sql c windows SQL Server XP
当你安装完之后,连接数据库的时候可能会发现你的TCP/IP 没有启动..
发现需要启动客户端协议 : TCP/IP
需要打开 SQL Server Configuration Manager...
却发现无法打开 SQL Server Configuration Manager..??
解决方法: C:\WINDOWS\system32目录搜索framedyn.
[置顶] 做有中国特色的程序员
aijuans
程序员
从出版业说起 网络作品排到靠前的,都不会太难看,一般人不爱看某部作品也是因为不喜欢这个类型,而此人也不会全不喜欢这些网络作品。究其原因,是因为网络作品都是让人先白看的,看的好了才出了头。而纸质作品就不一定了,排行榜靠前的,有好作品,也有垃圾。 许多大牛都是写了博客,后来出了书。这些书也都不次,可能有人让为不好,是因为技术书不像小说,小说在读故事,技术书是在学知识或温习知识,有些技术书读得可
document.domain 跨域问题
avords
document
document.domain用来得到当前网页的域名。比如在地址栏里输入:javascript:alert(document.domain); //www.315ta.com我们也可以给document.domain属性赋值,不过是有限制的,你只能赋成当前的域名或者基础域名。比如:javascript:alert(document.domain = "315ta.com");
关于管理软件的一些思考
houxinyou
管理
工作好多看年了,一直在做管理软件,不知道是我最开始做的时候产生了一些惯性的思维,还是现在接触的管理软件水平有所下降.换过好多年公司,越来越感觉现在的管理软件做的越来越乱.
在我看来,管理软件不论是以前的结构化编程,还是现在的面向对象编程,不管是CS模式,还是BS模式.模块的划分是很重要的.当然,模块的划分有很多种方式.我只是以我自己的划分方式来说一下.
做为管理软件,就像现在讲究MVC这
NoSQL数据库之Redis数据库管理(String类型和hash类型)
bijian1013
redis 数据库 NoSQL
一.Redis的数据类型
1.String类型及操作
String是最简单的类型,一个key对应一个value,string类型是二进制安全的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。
Set方法:设置key对应的值为string类型的value
Tomcat 一些技巧
征客丶
java tomcat dos
以下操作都是在windows 环境下
一、Tomcat 启动时配置 JAVA_HOME
在 tomcat 安装目录,bin 文件夹下的 catalina.bat 或 setclasspath.bat 中添加
set JAVA_HOME=JAVA 安装目录
set JRE_HOME=JAVA 安装目录/jre
即可;
二、查看Tomcat 版本
在 tomcat 安装目
【Spark七十二】Spark的日志配置
bit1129
spark
在测试Spark Streaming时,大量的日志显示到控制台,影响了Spark Streaming程序代码的输出结果的查看(代码中通过println将输出打印到控制台上),可以通过修改Spark的日志配置的方式,不让Spark Streaming把它的日志显示在console
在Spark的conf目录下,把log4j.properties.template修改为log4j.p
Haskell版冒泡排序
bookjovi
冒泡排序 haskell
面试的时候问的比较多的算法题要么是binary search,要么是冒泡排序,真的不想用写C写冒泡排序了,贴上个Haskell版的,思维简单,代码简单,下次谁要是再要我用C写冒泡排序,直接上个haskell版的,让他自己去理解吧。
sort [] = []
sort [x] = [x]
sort (x:x1:xs)
| x>x1 = x1:so
java 路径 配置文件读取
bro_feng
java
这几天做一个项目,关于路径做如下笔记,有需要供参考。
取工程内的文件,一般都要用相对路径,这个自然不用多说。
在src统计目录建配置文件目录res,在res中放入配置文件。
读取文件使用方式:
1. MyTest.class.getResourceAsStream("/res/xx.properties")
2. properties.load(MyTest.
读《研磨设计模式》-代码笔记-简单工厂模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 个人理解:简单工厂模式就是IOC;
* 客户端要用到某一对象,本来是由客户创建的,现在改成由工厂创建,客户直接取就好了
*/
interface IProduct {
SVN与JIRA的关联
chenyu19891124
SVN
SVN与JIRA的关联一直都没能装成功,今天凝聚心思花了一天时间整合好了。下面是自己整理的步骤:
一、搭建好SVN环境,尤其是要把SVN的服务注册成系统服务
二、装好JIRA,自己用是jira-4.3.4破解版
三、下载SVN与JIRA的插件并解压,然后拷贝插件包下lib包里的三个jar,放到Atlassian\JIRA 4.3.4\atlassian-jira\WEB-INF\lib下,再
JWFDv0.96 最新设计思路
comsci
数据结构 算法 工作 企业应用 公告
随着工作流技术的发展,工作流产品的应用范围也不断的在扩展,开始进入了像金融行业(我已经看到国有四大商业银行的工作流产品招标公告了),实时生产控制和其它比较重要的工程领域,而
vi 保存复制内容格式粘贴
daizj
vi 粘贴 复制 保存原格式 不变形
vi是linux中非常好用的文本编辑工具,功能强大无比,但对于复制带有缩进格式的内容时,粘贴的时候内容错位很严重,不会按照复制时的格式排版,vi能不能在粘贴时,按复制进的格式进行粘贴呢? 答案是肯定的,vi有一个很强大的命令可以实现此功能 。
在命令模式输入:set paste,则进入paste模式,这样再进行粘贴时
shell脚本运行时报错误:/bin/bash^M: bad interpreter 的解决办法
dongwei_6688
shell脚本
出现原因:windows上写的脚本,直接拷贝到linux系统上运行由于格式不兼容导致
解决办法:
1. 比如文件名为myshell.sh,vim myshell.sh
2. 执行vim中的命令 : set ff?查看文件格式,如果显示fileformat=dos,证明文件格式有问题
3. 执行vim中的命令 :set fileformat=unix 将文件格式改过来就可以了,然后:w
高一上学期难记忆单词
dcj3sjt126com
word english
honest 诚实的;正直的
argue 争论
classical 古典的
hammer 锤子
share 分享;共有
sorrow 悲哀;悲痛
adventure 冒险
error 错误;差错
closet 壁橱;储藏室
pronounce 发音;宣告
repeat 重做;重复
majority 大多数;大半
native 本国的,本地的,本国
hibernate查询返回DTO对象,DTO封装了多个pojo对象的属性
frankco
POJO hibernate查询 DTO
DTO-数据传输对象;pojo-最纯粹的java对象与数据库中的表一一对应。
简单讲:DTO起到业务数据的传递作用,pojo则与持久层数据库打交道。
有时候我们需要查询返回DTO对象,因为DTO
Partition List
hcx2013
partition
Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.
You should preserve the original relative order of th
Spring MVC测试框架详解——客户端测试
jinnianshilongnian
上一篇《Spring MVC测试框架详解——服务端测试》已经介绍了服务端测试,接下来再看看如果测试Rest客户端,对于客户端测试以前经常使用的方法是启动一个内嵌的jetty/tomcat容器,然后发送真实的请求到相应的控制器;这种方式的缺点就是速度慢;自Spring 3.2开始提供了对RestTemplate的模拟服务器测试方式,也就是说使用RestTemplate测试时无须启动服务器,而是模拟一
关于推荐个人观点
liyonghui160com
推荐系统 关于推荐个人观点
回想起来,我也做推荐了3年多了,最近公司做了调整招聘了很多算法工程师,以为需要多么高大上的算法才能搭建起来的,从实践中走过来,我只想说【不是这样的】
第一次接触推荐系统是在四年前入职的时候,那时候,机器学习和大数据都是没有的概念,什么大数据处理开源软件根本不存在,我们用多台计算机web程序记录用户行为,用.net的w
不间断旋转的动画
pangyulei
动画
CABasicAnimation* rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumber numberWithFloat: M
自定义annotation
sha1064616837
java enum annotation reflect
对象有的属性在页面上可编辑,有的属性在页面只可读,以前都是我们在页面上写死的,时间一久有时候会混乱,此处通过自定义annotation在类属性中定义。越来越发现Java的Annotation真心很强大,可以帮我们省去很多代码,让代码看上去简洁。
下面这个例子 主要用到了
1.自定义annotation:@interface,以及几个配合着自定义注解使用的几个注解
2.简单的反射
3.枚举
Spring 源码
up2pu
spring
1.Spring源代码
https://github.com/SpringSource/spring-framework/branches/3.2.x
注:兼容svn检出
2.运行脚本
import-into-eclipse.bat
注:需要设置JAVA_HOME为jdk 1.7
build.gradle
compileJava {
sourceCompatibilit
利用word分词来计算文本相似度
yangshangchuan
word word分词 文本相似度 余弦相似度 简单共有词
word分词提供了多种文本相似度计算方式:
方式一:余弦相似度,通过计算两个向量的夹角余弦值来评估他们的相似度
实现类:org.apdplat.word.analysis.CosineTextSimilarity
用法如下:
String text1 = "我爱购物";
String text2 = "我爱读书";
String text3 =