特点:一行显示多个 之间有空白缝隙 高宽内边距外边距都可以控制
7.css的元素显示模式的转换
a是个链接标签行内元素 但是没办法设置宽高,所以就需要转换为块级元素 怎么写呢,就是在style中 写 display:block; div是块级元素 一人独占一行,可以设置宽高,转换为行内元素 怎么写呢 一样在style中编写 display:inline;宽高无效了 转换为行内块元素 display:inline-block; 比如span行内元素转换为行内块元素
8.截图工具 snipaste
截图工具 snipaste截图工具,非常好用,可以取色,贴图,等
小技巧
单行文字垂直居中 line-height等于height 文字的行高等于盒子的高度,就可以让文字在当前盒子内垂直居中 line-height等于height就可以了
9.css背景属性
background-color:transparent;默认是这个,透明颜色 background-image:none|url(url); 背景图片,平铺满盒子 background-repeat:repeat|no-repeat|repeat-x|repeat-y; 平铺 不平铺 横向x轴平铺 纵向y轴平铺 background-position:x y;位置方位名词顺序无关center top 中上显示 如果只写一个方位名词 ,第二个参数省略y轴是居中显示的 水平或垂直 background-attachment :scroll|fixed;默认滚动,fixed固定 视差滚动效果 背景复合写法 background:背景颜色 图片地址 平铺 滚动 图片位置 背景色半透明 background:rgba(0,0,0,0.3)第四个参数透明度0.3
10.css三大特性
层叠性:就近原则 继承性:子元素可以继承父元素的样式 text- font- line-开头和color 行高的继承 子元素继承了父元素的1.5倍行高 优先级:当同一个元素指定多个选择器,就有了优先级 1-如果选择器相同,则执行层叠性,哪个近用哪个 2-选择器不同 有权重 继承或* 0,0,0,0 元素选择器 0,0,0,1 类选择器,class 伪类选择器 0,0,1,0 ID选择器 是# 0,1,0,0 行内样式style 1,0,0,0 !important 重要的 优先执行 最高级 无穷大 3-继承权中为0,标签单独拎出来写样式,执行标签 权重的叠加,复合选择器会有权重叠加的问题 例如 ul li和li的权重 0,0,0,1 + 0,0,0,1 = 0,0,0,2 2大于1所以执行ul li 权重虽然有叠加 以四组为一个单位,不会有进位的问题
三、css盒子模型
1.网页布局过程:
1先准备好相关网页元素box
2设置样式
3装内容
2.组成部分
border边框 content内容图片 padding 内边距 margin外边距 margin-top border-top padding-top -left -right padding-bottom border-bottom margin-bottom
3.属性
border:border-width border-style border-color; 没有顺序 border-width 边框粗细 px像素 border-style 边框样式 solid实线 dashed虚线 dotted点线 border-color 边框颜色 border-collapse:collapse; 合并相邻的边框 padding:5px; 上下左右都是5像素内边距 padding:5px 10px;上下5像素 左右10像素 padding:5px 10px 20px; 上5 左右10 下20 padding:5px 10px 20px 30px;上5 右10 下20 左30 顺时针 margin:外边距 简写方式与padding一样 margin:0 auto;或margin:auto;或margin-left:auto;或margin-right:auto; 上下0px 左右auto 水平居中
4.外边距合并,塌陷
对于两个嵌套的父子关系的块元素,想要修改margin-top时,子元素并没有改变,父元素会出现塌陷问题, 解决办法:可以为父元素定义上边框 可以为父元素定义上内边距 可以为父元素添加overflow:hidden 还有其他方法,比如浮动、固定,绝对定位的盒子不会有塌陷问题
5.css的第一行代码
css的第一行代码 清除内外边距 *通配符选择器 *{padding:0; margin:0;} 行内边距尽量只设置左右内外边距 要设置上下就转换为行内块元素再设置 *通配符选择器 *{padding:0; margin:0;}
6.总结
1.标签都是有语义的,合理的地方用合理的标签,比如产品标题就用h,大量文字段落就用p 2.类名就是给每个盒子起了一个名字,可以更好的找到这个盒子 3.margin和padding 上面的距离用margin,都差不多,怎么简单怎么来 4.布局有很多实现方法,要总结出自己的风格,慢慢摸索,先搞清楚结构 5.多利用辅助工具,去实现更好的效果
7.圆角边框
border-radius:length;length是像素px、百分比 数值越大,弧度越强 一个值,四个角全部改变 两个值,对角线关系 三个值 四个值 顺时针四个角 border-radius:10px 20px 30px 40px; 分开写:border-top-left-radius左上角,其他类推
8.盒子阴影
box-shadow:h-shadow v-shadow blur spread color inset; h-shadow必须有,水平阴影,可以有负 v-shadow必须 垂直阴影可以有负 可选:blur模糊距离,虚的还是实的 spread阴影尺寸 color阴影颜色 inset内部阴影 默认外阴影,默认outset 不用写 盒子阴影不占用空间,不影响其他盒子
9.文字阴影
text-shadow:h-shadow v-shadow blur color;
10.css浮动
1-传统网页布局的三种方式
普通流(标准流):默认排列,浮动,定位
2-浮动
选择器{float:属性值;} 属性值 none left right 行内块元素并列盒子时,中间会有缝隙,不好控制,所以就需要浮动 多个块级元素横向排列就找浮动
3-浮动特性:
浮动元素会脱离标准流(脱标)移动到指定位置,浮动的盒子不再保留原先的位置 浮动元素会一行内显示并且元素顶部对齐,如果浏览器页面缩小会自动换行,另起一行显示 浮动的元素会具有行内块元素的特性 先用标准流的父元素排列上下位置,之后内部元素采取浮动排列左右位置,符合网页布局第一准则
4-清除浮动:
1.额外标签法 会在浮动末尾添加一个空的标签 必须是块级元素 2.父元素overflow,属性值hidden、auto、scroll 3.父级:after伪元素法 clearfix
四、案例一总结知识点
1.css属性书写顺序(重点)
1.布局定位属性:display position float clear visibility overflow 2.自身属性:width height margin padding border background 3.文本属性:color font text-decoration text-align vertical-align white-space break-word
2.页面布局整体思路
1.必须确定页面的版心(可视区),我们测量可得知 2.分析页面中的行模块,以及每个行模块中的列模块,页面布局第一准则 3.一行中的列模块经常浮动布局,先确定每个列的大小,之后确定列的位置,第二准则 4.制作HTML结构,遵循先有结构,后有样式的原则,结构永远最重要 5.所以,先要理清布局结构,再写代码尤为重要,需要多积累
3.HTML
1.导航栏部分固定写法 给li加,都要浮动,就在同一行啦 .nav ul li{float:left;} 2.按钮有固定边框,手动去除 border:0;
五、CSS定位
relative相对定位 absolute绝对定位 子绝父相(轮播图、hot图标)
固定在屏幕某个位置,并且可以覆盖
1.定位组成
定位=定位模式+边偏移 表示定位方式和最终位置 -定位模式position:static;静态定位 relative相对 absolute绝对 fixed固定 -边偏移:top、bottom、left、right上下左右 例如top:80px;
2.relative相对定位
以自身原来的位置为准移动位置,移走之后位置还保留
3.absolute绝对定位
没有父元素或者父元素没有定位,以浏览器为准定位移动 如果有祖先元素,则以最近一级带有定位的为参考点定位移动 绝对定位不再占位原先的位置
4.子级是绝对定位,父亲用相对定位。子绝父相(轮播图、hot图标)
-子级绝对定位,不会占有位置,可以放到父盒子任意位置,不影响其他兄弟盒子 -父盒子需要加定位限制子盒子在父盒子内显示 -父盒子布局时,需要占有位置,因此父亲只能是相对定位
5.fixed固定定位
可视窗口 以浏览器的可视窗口为参照点移动位置 就是不管浏览器缩小放大 依然在可视区域原有的位置 左上角或哪里 跟父元素没有任何关系 不随滚动条滚动 固定定位不再占有原先的位置,脱离标准流的 -固定定位小技巧 固定在版心右侧位置 left:50% 先走浏览器宽度的一半 margin-left:再走版心宽 度的一半距离 就能贴住版心右侧了,想要空隙的话调整margin
6.粘性定位sticky
相对定位与绝对定位的一个混合 天猫最上方搜索条 特点:以可视窗口为参照 占有原先的位置 必须添加top、left、right、bottom其中一个才有效 top=0;距离顶部距离为0时就不动了 市面上很少用,一般用JavaScript实现这种效果
7.定位的叠放次序
z-index:9;控制盒子前后次序 (z轴) 默认auto 正数、复数、0 数值越大越靠上 值相同,后来者居上
8.绝对定位的盒子居中 轮播图小圆点
水平居中:position:absolute;left:50%;margin-left:负的盒子的一半 垂直居中:top:50%;margin-top:负的高度一半
9.定位拓展
浮动元素不同,只会压住它下面的标准流的盒子,但是不会 压住下面标准流盒子里面的文字(图片)最常见的 文字环绕 但是绝对定位和固定定位会压住下面标准流的所有的内容
10.元素的显示与隐藏
1.display:none;隐藏对象 display:block;除了转换块级元素外,同时还显示元素的意思 display隐藏元素后,不再占有原来的位置 2.visibility:visible;元素可见 visibility:hidden;元素隐藏 visibility隐藏后,继续占有原来位置,想要用hidden,不要用none 3.overflow:visible|auto|hidden|scroll 溢出 visible 溢出可见 auto 超出显示滚动条,没超出不显示 hidden 溢出的隐藏 (常用) scroll 不管溢出没溢出 都显示滚动条
六、CSS高级技巧
1.精灵图
精灵图 sprites 精灵技术主要用于背景图片的使用,就是把多个小背景图片整合在一张大图上 这个大图也称为sprites 精灵图或者雪碧图 移动背景图片位置,可以使用background-position 移动方式 按x轴和y轴 网页坐标,以左上角为0 往右越大 往下越大
2.字体图标
字体图标 展示的是图标 但是本质是文字 iconfont 字体图标推荐网站 icomoon字库 阿里iconfont字库
字体图标的引入 把下载包里面的font文件夹放到项目根目录下 css样式中全局声明字体 style中字体声明 style.css中复制一份到style 文件中 @font-face 复制src和url部分
使用字体图标 demo.html中 复制小框框到span中 style中 font-family:'iconmoon';
注意:要添加新的字体图标时 font文件夹要替换
3.小三角形的写法
css小三角,设定一个盒子,宽高都为0, 指定四个边框为透明色实线 只修改一侧边框颜色 例如 width:0; height:0; line-height:0;兼容 可以不写 font-size:0;照顾低版本 可以不写 border:50px solid transparent; border-left-color:pink; margin:100px auto; 只写一个三角 然后定位 子绝父相 position:absolute; 绝对定位 position:relative; 相对定位
4.css用户界面样式
1.鼠标样式cursor cursor:pointer; 小手 default 默认 move 移动 text 文本 not-allowed 禁止 2.去掉表单选中默认的蓝色边框 outline:none; 3.防止拖拽文本域 去掉文本域右下角随意拖动 resize:none;
5.图片与文字对齐方式
vertical-align:baseline|top|middle|bottom垂直对齐方式 行内元素 行内块元素 baseline默认 元素位置放置在父元素的基线上 基线对齐 top 把元素顶端与行中最高元素的顶端对齐 顶端对齐 middle 把此元素放置在父元素的中部对齐 居中对齐 bottom 底线对齐 最低的位置对齐 底线对齐
6.解决图片底部空白缝隙的方案
图片底侧会留有空白缝隙,原因是行内块元素会和文字的基线对齐 1.给图片添加vertical-align:top|middle|bottom (提倡使用) 2.把图片转换为块级元素 display:block; 块级元素没有vertical属性
7.溢出的文字省略号显示
1-单行文本溢出
先强制一行内显示文本 white-space:nowrap; (默认normal自动换行) overflow:hidden; 超出部分隐藏 text-overflow:ellipsis; 超出用省略号代替
2-多行文本溢出
有较大兼容问题 适合于webkit浏览器或移动端 移动端大多是webkit内核 overflow:hidden; 超出部分隐藏 text-overflow:ellipsis; 超出用省略号代替 display:-webkit-box; 弹性伸缩盒子模型显示 -webkit-line-clamp:2; 限制在一个块元素显示的文本的行数 -webkit-box-orient:vertical; 设置或检索伸缩盒对象的子元素的排列方式
8.常见布局技巧
1.margin负值巧妙运用
右侧盒子正好压住左侧边框 margin-left:-1px;
2.鼠标经过某个盒子时 四个边框变色
:hover{border:1px solid blue;} 如果盒子没有定位 添加相对定位(保留位置)position:relative; 如果盒子有定位 z-index:1;
3.文字围绕浮动元素
父盒子 把文字直接放进去 再放一个子盒子 左浮动 字体就自动围绕了 float:left;
4.行内块的巧妙运用
例子:页码 上一页 第1页2 3 4 下一页
代码:
Document

5.css三角强化
代码:
Document
¥1650
¥5088
 6.css初始化 京东 重设浏览器的样式 css reset
代码:
/* 把我们所有标签内外边距清零 */
* {
margin: 0;
padding: 0;
/* css3盒子模型 */
box-sizing: border-box;
}
/* em和i 斜体的文字不倾斜 */
em,
i {
font-style: normal
}
/* 去掉li的小圆点 */
li {
list-style: none
}
img {
/* border 0 照顾低版本浏览器 如果 图片外面包含了链接会有边框的问题 */
border: 0;
/* 取消图片底侧有空白缝隙的问题 */
vertical-align: middle
}
button {
/* 当我们鼠标经过按钮时,鼠标变成小手 */
cursor: pointer
}
a {
color: #666;
text-decoration: none
}
a:hover {
color: #c81623
}
button,
input {
/* \5B8B\4F53 Unicode编码 宋体,浏览器兼容较好 */
font-family: Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif
}
body {
/* 抗锯齿性,让文字显示的更加清晰 css3 */
-webkit-font-smoothing: antialiased;
background-color: #fff;
/* 1.5倍行高 */
font: 12px/1.5 Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif;
color: #666
}
.hide,
.none {
display: none
}
/* 清除浮动 */
.clearfix:after {
visibility: hidden;
clear: both;
display: block;
content: ".";
height: 0
}
.clearfix {
*zoom: 1
}
七、HTML5和CSS3提高
HTML5和css3提高 新特性 有兼容性问题
1.HTML5新增标签
1-语义化标签
:内容标签
2-多媒体标签
音频
3-音频 mp3格式 哪个浏览器都适用
2.HTML5新增表单
type="email" url date time month week number tel search color 用户只能填写email类型 点击提交就可以验证表单了 错误会有提示 必须在form表单中
2-表单属性
required="required" 拥有该内容属性不能为空 placeholder="提示文本" 提示文本 多用于输入框搜索框 input::placeholder{color="pink";}style改变提示文本颜色 autofocus="autofocus" 自动获得焦点 表单里输入框光标定过去 autocomplate="on" 默认on还有off on不安全 记录历史输入内容 multiple="multiple" 可以多选文件提交
3.CSS3的新特性 选择器
新特性有兼容性问题 新增选择器、盒子模型及其他 属性选择器 结构伪类选择器 伪元素选择器 权重都是10
1-属性选择器
不借助于类或者id 中括号 style中 input[value]{color:pink;}必须是input同时具有value属性 必须是input元素中的value属性 也可以通过属性等于值来进行选择 input[type=text]{ } div[class^=icon]{ } 选取div元素中的class属性的值中含有icon的 开头 section[class$="val"] $是最后的值 ""双引号可以有也可以没有 这时权重11 结尾 还有一个* 是任意
2-结构伪类选择器
根据文档结构来选择 冒号 常用于根据父级选择器厘米爱你的子元素 E:first-child 匹配父元素中的第一个子元素E ul li:first-child:background-color:pink; ul中的li第一个元素 E:last-child 匹配父元素中最后一个E元素
nth-child 先执行 找孩子 再看是否与E匹配 E:nth-child(n) 匹配父元素中的第n个子元素E 选择一个或多个 n可以是数字 关键字(even偶数 odd奇数) 公式 ul li:nth-child(2):background-color:blue; ul li:nth-child(even):background-color:gray; ol li:nth-child(n):background-color:gray; n是指从0开始 每次加1 往后计算 必须是n 表示全选孩子 公式 2n 偶数 2乘以n的意思 2n+1 奇数 5n 5 10 15... n+5 从第五个开始 包含第五个 到最后 -n+5 前五个 包含第五个 E:first-of-type 指定类型E的第一个 E:last-of-type 指定类型E的最后一个
nth-of-type(n) 执行过程是 先匹配E 再根据E找第几个孩子 E:nth-of-type(n)指定类型E的第n个 n可以是数字 关键字 公式
3-伪元素选择器
::before 在元素内部的前面插入内容 ::after 在元素的内部后面插入内容 都是盒子
before和after创建一个元素,但是属于行内元素 不能设置宽高 新创建的这个元素在文档树中是找不到的,所以我们称为伪元素 语法:element::before{} before和after必须有content属性 before在父元素内容前面创建元素,after在父元素内容的后面插入元素 伪元素选择器和标签选择器一样,权重为1 div::before{content:'要插入的内容';} 1.伪元素字体图标 > < 下拉按钮 复制@font-face fonts文件夹导入 font-family:'icomoon'; div::after{content:'引入字体图标小方块'} 或者反斜杠 \e91 position:absolute; 2.伪元素清除浮动 .clearfix::after{ content:""; 伪元素必须写的属性 display:block; 转换成块级元素 插入的必须是块级元素 height:0; 不要看见这个元素 clear:both; 核心代码清除浮动 visibility:hidden; 不要看见这个元素 隐藏 }
升级版写法 .clearfix:before,.clearfix:after{ content:""; display:table; 把before和after转换成块级元素并且一行显示 } .clearfix:after{ clear:both; }
4.CSS3盒子模型
1.box-sizing 来指定 有两个值content-box(以前默认) 、border-box 2.分成两种情况 box-sizing:content-box; 盒子大小是width+padding+border box-sizing:border-box; 盒子大小是width 不会撑大盒子 3.以后就变成了 *{ margin:0; padding:0; box-sizing:border-box; }
5.CSS3其他特性
1-图片变模糊 滤镜filter
filter:函数(); filter:blur(5px); blur模糊处理 数值越大越模糊 px单位要加
2-计算盒子宽度width:calc函数
width:calc(100%-80px); + - * / 比如 需求我们的子盒子宽度永远比父盒子小30像素 width:calc(100%-30px); 100%是子盒子和父盒子一样宽,但是减了30
3-过渡动画 动感 更好看 与hover搭配
transition:要过渡的属性 花费时间 运动曲线 何时开始
属性:想要变化的css属性,宽度高度 背景颜色 内外边距都可以 如果想要所有的属性都变化过度,写一个all就可以
花费时间:单位是秒,必须写单位 0.5s 运动曲线:默认是ease,可以省略 何时开始:单位秒,可以设置延迟触发时间 默认是0s(可以省略)
谁做过渡给谁加 就是谁想变化给谁加
transition:width .5s ease 1s; 后面俩可以省略
多属性变化用逗号分割 transition:width .5s ease 1s,transition:height .5s ease 1s;
所有属性用all transition:all .5s; div{ width:200px; height:100px; background-color:pink; transition:all .5s; } div:hover{ width:400px; height:200px; background-color:blue; }
八、案例二 流程和搭建笔记
1.网站制作流程
客户沟通制定方案 签订合同 预付定金 初稿审核(原型图 和 psd效果图) 前台页面设计 后台功能开发 测试验收 上线培训 后期维护
2.项目搭建
base.css CSS初始化样式文件 common.css 公共样式 网站的favicon图标 一般用于缩略的网站标志 浏览器的地址栏或标签上 用ps的cutterman把图片切出来 png格式 把png格式转换为ico格式 借助第三方网站 比特虫 bitbug.net 一定要放在根目录下 shopping下 引入 网站TDK三大标签SEO优化 SEO搜索引擎优化 帮助网站获取免费流量 在搜索引擎上提升网站的排名,提高网站的知名度 页面必须有三个标签来符合SEO优化 title description keyword title 网站标题 网站名-网站的介绍(30字之内) description 网站说明 我们网站主要是做什么的 keyword 关键字 页面关键字 搜索引擎的重点关注之一 6~8个
九、案例三 知识点总结
1.常用模块类名命名总结
快捷导航栏 shortcut 头部 header 标志 logo 购物车 shopcar 搜索 search 热点词 hotwords 导航 nav 导航左侧 dropdown包含.dd .dt 导航右侧 navitems 页面底部 footer 页面底部服务模块 mod_service 页面底部帮助模块 mod_help 页面底部版权模块 mod_copyright
2.logo SEO优化
1.首先放一个h1标签 告诉搜索引擎,这个地方很重要 2.h1里面放一个链接,可以返回首页的 把logo的背景图片给链接就可 3.链接里面要放文字(网站名称) 但是文字不要显示出来 法1:text-indent移到盒子外面(text-indent:-9999px),然后 overflow:hidden ,淘宝的做法。 法2:直接给font-size:0; 就看不到 文字了 京东的做法 4.最后给一个title属性,这样鼠标放到logo上就可以看到提示文字了
3.Web服务器
免费空间-free.3v.do 提供100M永久香港免费ASP空间申请
http://free.3v.do/ 免费的服务器 本质也是一台计算机 分为本地服务器和远程服务器 一般稳定的服务器是需要收费的 比如阿里云 域名也是需要花钱的
1.去免费空间网站注册账号 2.记录下主机名、用户名、密码、域名 3.利用cutftp软件上传到远程服务器 4.在浏览器输入域名就可以访问了 注意:第一次注册FTP必须开通
十、2D转换 动画 3D转换
1.2D转换
transform 实现元素位移、旋转、缩放等效果 可以简单理解为变形
移动 translate 旋转 rotate rotate(45deg) 缩放 scale scale(0.5) 小于1就是缩放 二维坐标系 transform:translate(x,y);或者分开写 单位px transform:translateX(n); transform:translateY(n); 对行内标签没有效果 transform-origin:x y; 设置元素转换中心点 默认是中心点 (50% 50%) 等价于(center center) 可以给像素,可以给deg,也可以给方位名词(top bottom right left) tansition:all 1s; 设置旋转时间1秒
2.动画
1-keyframes 关键帧
@keyframes 动画名称{ 0%{ width:100px; } 100%{ width:200px; } } 调用动画 animation-name:动画名称; animation-duration:持续时间;
2-动画序列
@keyframes 动画名称{ from{ transform:translate(0,0); } to{ transform:translate(1000px,0); } }
3-动画常用属性
@keyframes 规定动画 animation 所有动画属性的简写属性,除了animation-play-state animation-name 规定@keyframes动画的名称 必须的 animation-duration 规定动画完成一个周期所花费的秒或数秒 必须的 animation-timing-function 规定动画的速度曲线,默认是 ease animation-delay 规定动画何时开始 默认0 animation-iteration-count 规定动画被播放的重复次数 默认1 还有infinite 无限 animation-direction 规定动画是否在下个周期逆向播放 默认normal alternate 逆播放 animation-play-state 动画是否正在运行或暂停 默认running 还有pause animation-fill-mode 动画结束后状态 保持forwards回到起始backwards
4-动画简写
animation:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或结束的状态; animation:name duration timing-function delay iteration-count direction fill-mode;
例子:animation: myfirst 5s linear 2s infinite alternate; linear 指匀速 注意: 1.前俩名称和持续时间必须写 2.animation-play-state 简写中不包含这个属性 鼠标经过div 让这个div停止动画 鼠标离开继续动画 div:hover{ animation-play-state:paused;暂停动画 } 3.想要动画走回来,而不是直接跳回来:animation:alternate; 4.盒子动画结束后,停在结束位置:animation-fill-mode:forwards;
3.速度曲线调节
animation-timing-function linear 动画从头到尾都是相同的 匀速 ease 默认 动画从低速开始,然后加快,在结束前变慢 ease-in 动画以低速开始 ease-out 以低速结束 ease-in-out 以低速开始和结束 steps() 指定了时间函数中的间隔数量 (步长 分几步 12345等)
4.3D转换 近大远小
近大远小 物体后面遮挡看不见 transform:translateX(100px); transform:translateY(100px); transform:translateZ(100px); 单位只用px就行了 没人用%
简写: transform:translate3d(x,y,z); xyz不能省略 没有写0
也可以这么写: transform:translateX(100px) transform:translateY(100px) transform:translateZ(100px);
1-3D转换之透视
perspective透视 想要产生3D的立体效果需要用到透视 3D物品投影到2D平面内 模拟人类的视觉位置,可认为安排一直眼睛去看 也称为视距:就是人的眼睛到屏幕的距离 距离视觉点越近的电脑平面成像越大,越远成像越小 透视的单位是像素px
2-3D旋转 左手准则
transform:rotateX(45deg); 沿着x轴正方向旋转45度 transform:rotateY(45deg); 沿着y轴正方向旋转45度 transform:rotateZ(45deg); 沿着z轴正方向旋转45度
简写: transform:rotate3d(x,y,z,deg);
transform-style 控制子元素是否开启三维立体环境 transform-style:flat子元素不开启3d立体空间 默认的 transform-style:preserve-3d; 子元素开启立体空间 preserve保持 代码写给父级,但是影响的是子盒子 这个属性很重要,后面必用 先移动后旋转 先translate后rotate
5.浏览器私有前缀
-o-border-radius:10px; -moz- Firefox -ms- ie -webkit- safari chrome -o- opera 写法:-o-border-radius:10px;
十一、移动端布局
1.流式布局
1-基础
视口 viewport 布局视口 layout viewport 理想视口 ideal viewport 按照理想视口开发 乔布斯 meta视口标签 标准设置: width 宽度设置的是viewport宽度,可以设置device-width特殊值 initial-scale 初始缩放比,大于0的数字 maximum-scale 最大缩放比,大于0 minimum-scale 最小缩放比,大于0 user-scalable 用户是否可以缩放,yes或no (1或0)
2-物理像素&物理像素比
物理像素点指的是屏幕显示的最小颗粒,是物理真实存在的。出厂前设置好的 苹果 6、7、8 是750*1334 我们开发时候的1px不是一定等于1个物理像素的 PC端页面,1个px等于1个物理像素的,但移动端不尽相同 1个px的能显示的物理像素点的个数,称为物理像素比或屏幕像素比
3-二倍图
背景缩放 background-size:图片的宽度 图片的高度; 只写一个参数肯定是宽度 高度省略了 高度随着宽度等比拉伸了 背景缩放 background-size:背景图片的宽度 背景图片的高度;
4-流式布局 (百分比布局 非固定像素布局)
流式布局:也指百分比布局、非固定像素布局
通过盒子的宽度设置成百分比来根据屏幕的宽度来进行伸缩,不受固定像素的 限制,内容向两侧填充 流式布局方式时移动web开发使用的比较常见的布局方式
2.flex布局
1-属性 布局原理
flexible Box 弹性布局 display:flex; 当父盒子设置flex布局后 子元素的float、clear vertical-align属性将失效 伸缩布局=弹性布局=伸缩盒布局=弹性盒布局=flex布局 flex是父容器 孩子是子容器flex项目 子容器可以横向排列也可以纵向排列 布局原理:就是通过给父盒子添加flex属性,来控制子盒子的位置和排列方式
2-flex布局父项常见属性
flex-direction:row;设置主轴方向 主轴和侧轴 行和列 x轴和y轴 默认row(行) 从左到右 1234 row-reverse 从右到左 4321 翻转 column 主轴设置为y轴,从上到下 column-reverse 从下到上 justify-content:设置主轴上的子元素排列方式 flex-start 默认 从头部开始 如果主轴是x轴 则从左到右 flex-end 从尾部开始排列 贴合右边对其 顺序不变 1234 center 在主轴居中对齐 如果主轴是x轴则水平居中 space-around 平分剩余空间 space-between 先两边贴边 再平分剩余空间(重要) flex-wrap:设置子元素是否换行 默认不换行nowrap 父宽不够 子宽自动缩小 wrap 自动换行 align-content:设置侧轴上的子元素的排列方式(多行)适应于换行情况下 flex-start 默认在侧轴的头部开始排列 flex-end 在侧轴的尾部开始排列 center 在侧轴中间显示 space-around 子项在侧轴平分剩余空间 space-between 子项在侧轴先分布在两头 再平分剩余空间 stretch 设置子项元素高度平分父元素高度 align-items:设置侧轴上的子元素排列方式(单行) flex-start 从上到下 flex-end 从下到上 center 挤在一起居中 垂直居中 stretch 拉伸(默认值) flex-flow:复合属性,相当于同时设置了flex-direction和flex-wrap flex-flow:row wrap;
3-flex布局子项常见属性
flex子项目占的份数 flex属性定义子项目分配剩余空间,用flex来表示占多少份数 .item{ flex:; 默认0 } flex:1; align-self控制子项自己在侧轴的排列方式 在某一个子项里 侧轴 order属性定义子项的排列顺序(前后顺序) order:-1; 把2号盒子挪到1号盒子前面
3.rem适配布局
root em 相对单位 类似于em em是父元素字体大小
1-rem单位
em是相对于父元素的字体大小 不同的是rem的基准是相对于html元素的字体大小 rem的优点:可以通过修改html中的文字大小可以改变页面元素大小
2-媒体查询
媒体查询 Media Query 是css3的新语法
使用@media查询,可以针对不同的媒体类型定义不同的样式 @media可以针对不同的屏幕尺寸设置不同的样式 当重置浏览器大小的过程中 页面会根据浏览器的宽高重新渲染页面 语法规范 @media mediatype and|not|only (media feature){ CSS-Code; } 开头 媒体类型 关键字 媒体特性 必须有小括号包含 且 非 特定可省略 width min-width max-width
在我们的屏幕上 并且 最大的宽度是 800像素 小于800变pink 小于500变purple and连接前后属性 都执行 @media screen and(max-width:800px){ body{ background-color:pink; } } @media screen and(max-width:500px){ body{ background-color:purple; } } 范围写法 @media screen and(min-width:500px)and(max-width:700px)
3-引入资源
语法规范
4.less基础
Leaner Style Sheets的简写 是css扩展语言 css预处理器
1-运算函数
Less 中文网
官网 http://lesscss.cn/ 常见css预处理器 Sass Less Stylus less使用 新建 .less文件 在里面写less语句
2-less变量
变量是指没有固定的值,可以改变的 css中一些颜色和数值经常使用 @变量名:值; 不能包含特殊字符 大小写敏感 不能以数字开头 @color:pink; body{ background-color:@ color; }
3-less编译
vocode Less 插件 搜索easy less插件 安装 less文件在html中不能直接使用 这个插件 每一次在less文件中修改信息 css会自动修改 每保存 会把less文件自动编译成css文件 然后页面中直接引入css文件就可以了
4-less嵌套
.header{ a{ &:hover{ color:pink; } } } 儿子住在爸爸家里 保存后在css文件中 会把他俩拆开来 如果有伪类 伪元素选择器 交集选择器 我们内层选择器前要加&符号 例如 :hover ::before
5-less运算
加减乘除 + - * / less里面写 @ border: 5px + 5; 运算符左右两侧必须敲空格 不然很容易出问题 两个数参与运算 如果一个数有单位 则最后结果以有单位的那个为准 两个数参与运算 如果两个数都有单位 而且不一样 最后结果以第一个为准
5.rem适配方案
让一些不能等比适应的元素,达到当设备尺寸发生改变的时候,等比例适配当 前设备 使用媒体查询根据不同设备按比例设置html的字体大小,然后页面元素使用 rem做尺寸单位,当html字体大小变化元素尺寸也会发生变化,从而达到等比 缩放的适配
1-方案一
less 媒体查询 rem
公式:页面元素的rem值=页面元素值(px)/(屏幕宽度 / 划分的份数) 屏幕宽度 / 划分的份数 就是html font-size 的大小 或者 页面元素的rem值=页面元素值(px)/ html font-size 字体大小
苏宁网移动端首页
在index.less 导入 common.less文件 @ import "common";
2-方案二
推荐 简单 flexible.js rem
引入js文件 body{ min-width:320px; max-width:750px; width:10rem; margin:0 auto; line-height:1.5; font-family:Arial,Helvetica; background:#F2F2F2; } VSCode px转换rem插件 cssrem !important 提升权重
6-flexible.js下载地址
GitHub - amfe/lib-flexible: 可伸缩布局方案
7-慕客插件下载
先注册账号 ps安装慕客moke 插件
https://www.mockplus.cn/ 注册账号 慕客
8-swiper插件下载地址
Swiper中文网-轮播图幻灯片js插件,H5页面前端开发
下载需要的css和js文件 官网找到类似案例,复制html结构 css样式 js语法 根据需求定制修改模块 下载后在css中放入 swiper.min.csswenjian 在js中放入swiper.min.js文件 必须引入 在html中 一个link引css script引js文件 swiper官网首页有API文档 有一些操作提示文档 可以提供帮助 opacity:0.6; 盒子透明度
十二、Bootstrap
现有的功能 写代码时可以参考引用 网址如下 来自推特 Twitter,前端框架 基于HTML CSS JAVASCRIPT
1.官网
中文官网 http://www.bootcss.com/
Bootstrap中文网
官网 http://getbootstrap.com/ Bootstrap · The most popular HTML, CSS, and JS library in the world.
推荐使用 http://bootstrap.css88.com/
http://bootstrap.css88.com/
2.Bootstrap使用四部曲
下载解压复制粘贴到新建文件夹bootstrap
创建文件夹结构 css image bootstrap index.html 创建html骨架结构 推荐官网 入门 有代码 找到然后复制就行 引入相关样式文件 link引bootstrap.min.css文件 书写内容
十三、栅格系统
grid systems 将页面布局划分为列的等份 12列 分几列 一列占几份
1.基础
行row必须放到container布局容器里面 我们实现列的平均划分 需要给列添加类前缀 xs-extra:超小 sm-small:小 md-medium:中等 lg-large:大 列column大于12,多余的、列所辖元素将被作为一个整体另起一行排列 每一列默认有左右15像素的padding 可以同时为一列指定多个设备的类名,以便划分不同份数, 例如class="col-md-4 colsm-6"
2.类前缀
类前缀 .col-xs- .col-sm- .col-md- .col-lg- 依次表示 超小屏幕手机 小屏设备平板 中等屏幕桌面显示器 宽屏设备大桌面显示器 <768px >=768px >=992px >=1200px 最大宽度 自动100% 750px 970px 1170px 类前缀 .col-xs- .col-sm- .col-md- .col-lg-
列数 12 12 12 12
偏移 col-md-offset-4 偏移四份
3.列排序
若想要实现一种效果 本来左右各有一个盒子 现将右边的盒子和左边的调换
也就是右边的在左边 左边的在右边 中间的还在中间
左侧 中间 右侧 右侧 中间 左侧
怎么做呢? 右侧拉到左边 左侧推到右边 pull 拉 push 推 col-lg-pull-4 col-lg-push-4
4.响应式开发工具
隐藏 hidden 显示visible
.hidden-xs 在超小屏幕下隐藏 .hidden-sm 在小屏隐藏 .hidden-md 在中屏隐藏 .hidden-lg 在大屏隐藏
显示: .visible-xs .visible-sm .visible-md .visible-lg
十四、案例四 知识点总结
响应式页面开发 框架bootstrap 尺寸1280px 列定义为col-md- 12列
1.列的分布2 7 3 缩放小屏幕发生变化 改变布局 缩放超小屏幕发生变化 改变布局 特殊样式 2.文件结构 css images upload index.html bootstarp 中有三个文件 复制过来 3.index.html 框架 需要复制的复制过来 4.引入相关样式 bootstrap.min.css link引 5.引入自己的样式文件 index.css link引 6.1280px container宽度修改 在index.css中 @ media screen and(min-width:1280px){ .container{ width:1280px; } }
十五、vm、vh
相对单位 是相对单位总是相对于视口来说的 1vw就是当前视口的1/100
viewport width 视口宽度单位 viewport height 视口高度单位 vw和百分比的区别是什么? 百分比%相对于父元素的来说的 vm和vh 是相对于当前视口来说的
使用: 1vm是多少像素? 375px/100=3.75px 1vm是3.75像素 我们的目标是多少像素? 50px*50px 那么50*50是多少个vw? 50/3.75 = 13.3333vw
设计图 切成2x 转换单位vw vh的 就可以了
vh用的不多 vm就行 一起等比例变化了就 适合移动端布局
1.兼容性网站
兼容性网站 https://caniuse.com/ 直接搜索 如flex
Can I use... Support tables for HTML5, CSS3, etc
你可能感兴趣的:(前端必学,html5,css,css3,less,前端框架)
- 移动端城市区县二级联动选择功能实现包
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标准
- lesson20:Python函数的标注
你的电影很有趣
python开发语言
目录引言:为什么函数标注是现代Python开发的必备技能一、函数标注的基础语法1.1参数与返回值标注1.2支持的标注类型1.3Python3.9+的重大改进:标准集合泛型二、高级标注技巧与最佳实践2.1复杂参数结构标注2.2函数类型与回调标注2.3变量注解与类型别名三、静态类型检查工具应用3.1mypy:最流行的类型检查器3.2Pyright与IDE集成3.3运行时类型验证四、函数标注的工程价值与
- vue element 封装表单
影子信息
vuevue.jsjavascript前端
背景:在前端系统开发中,系统页面涉及到的表单组件比较多,所以进行了简单的封装。封装的包括一些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的艺术创作平台 | 笙囧同学的全栈开发实战
作者简介:笙囧同学,中科院计算机大模型方向硕士,全栈开发爱好者联系方式: [email protected]各大平台账号:笙囧同学座右铭:偷懒是人生进步的阶梯前言在AI技术飞速发展的今天,如何将前沿的大模型技术与实际应用相结合,一直是我们开发者关注的焦点。今天,笙囧同学将带大家从零开始,构建一个基于GigaChatAI的艺术创作平台,实现React前端+Django后端的完整全栈解决方案。这不仅仅是
- 14.tornado操作之应用Websocket协议实现聊天室功能
孤寒者
Tornado框架从入门到实战websockettornado聊天室功能实现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写前端的开发人员。
- Serverless架构下Spring Function的创新实践
tmjpz04412
serverless架构spring
引言:Serverless与Spring生态的交汇背景介绍:云计算与Serverless架构的兴起Spring生态的演进与云原生适配性核心问题:传统Spring应用如何融入Serverless范式Serverless架构的核心特征与挑战事件驱动、弹性伸缩与按需计费冷启动问题与性能优化需求Spring应用在Serverless环境中的典型瓶颈(如依赖注入、上下文初始化)SpringFunction的
- 小架构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
前端面试-CSScss前端html
总结小图合成一张,使用background来使用,减少资源请求一、什么是雪碧图?雪碧图(CSSSprite)是一种前端优化技术,指的是将多个小图标合并成一张大图,通过CSS控制显示其中的某一部分。它常用于网站中图标、按钮等小图较多的场景。二、雪碧图的作用作用说明✅减少HTTP请求次数合并多个图片为一张图,减少请求资源数✅提升页面加载速度尤其在图片较多时效果明显✅避免图片加载闪烁鼠标悬停切换图片时不
- H5UI微信小程序前端框架实战指南
ai
本文还有配套的精品资源,点击获取简介:H5UI是一个为微信小程序开发设计的前端框架,基于H5技术,提供简洁高效的组件库。框架集成了丰富的UI元素,如按钮、表格、导航栏等,简化了界面布局和交互的实现。通过安装、引入、使用组件和事件绑定四个步骤,开发者可以轻松构建功能齐全的应用。了解性能优化等注意事项对于高效开发同样重要。1.微信小程序前端开发框架介绍微信小程序概述微信小程序是微信官方推出的一种无需下
- 环境艺术设计必学的“3D建模与渲染软件”指南
在环境艺术设计领域,掌握高效的设计软件是学生入门阶段普遍关注的核心问题。优秀的软件如同设计师的得力助手,能够精准表达设计创意、显著提升工作效率,在设计流程的各个环节都发挥着不可或缺的作用。根据功能划分,环艺设计常用软件主要涵盖建模、渲染、后期处理及辅助工具四大类。本文将为您梳理环艺设计中必学的核心软件。一、核心建模软件建模是将设计构思转化为三维模型的关键步骤。以下两款软件在环艺设计中应用最为广泛:
- Ubuntu安装LAMP
L_h1
测试ubuntulinux
在安装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前端javascripthtml5
一、什么是MutationObserver?如果你是一个前端开发者,一定会遇到这样的场景:页面动态加载内容后,某些操作失效了。比如,你写了一个监听按钮点击的代码,但按钮是通过AJAX动态加载的,你的代码根本无法触发。这个时候,你就需要一个“监控哨兵”——MutationObserver,它能实时监听DOM树的变化,帮你捕获那些“暗中作祟”的节点变动。MutationObserver是HTML5引入
- 11. HTML 中 DOCTYPE 的作用
yqcoder
前端面试-CSShtml前端
总结H5的声明HTML5的DOCTYPE声明HTML5中的声明用于告诉浏览器当前文档使用的是HTML5的文档类型。它必须是文档中的第一行内容(在任何HTML标签之前),以确保浏览器能够正确地解析和渲染页面。DOCTYPE的作用触发标准模式:DOCTYPE声明的主要作用是让浏览器以标准模式(StandardsMode)来解析和渲染页面,而不是以兼容模式(QuirksMode)。兼容性:在没有DOCT
- Coze Studio 架构拆解:AI Agent 开发平台项目结构全分析
代码简单说
2025开发必备(限时特惠)架构人工智能CozeStudio架构AIAgent开发平台全栈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
- JAVA基础
灵静志远
位运算加载Date字符串池覆盖
一、类的初始化顺序
1 (静态变量,静态代码块)-->(变量,初始化块)--> 构造器
同一括号里的,根据它们在程序中的顺序来决定。上面所述是同一类中。如果是继承的情况,那就在父类到子类交替初始化。
二、String
1 String a = "abc";
JAVA虚拟机首先在字符串池中查找是否已经存在了值为"abc"的对象,根
- keepalived实现redis主从高可用
bylijinnan
redis
方案说明
两台机器(称为A和B),以统一的VIP对外提供服务
1.正常情况下,A和B都启动,B会把A的数据同步过来(B is slave of A)
2.当A挂了后,VIP漂移到B;B的keepalived 通知redis 执行:slaveof no one,由B提供服务
3.当A起来后,VIP不切换,仍在B上面;而A的keepalived 通知redis 执行slaveof B,开始
- java文件操作大全
0624chenhong
java
最近在博客园看到一篇比较全面的文件操作文章,转过来留着。
http://www.cnblogs.com/zhuocheng/archive/2011/12/12/2285290.html
转自http://blog.sina.com.cn/s/blog_4a9f789a0100ik3p.html
一.获得控制台用户输入的信息
&nbs
- android学习任务
不懂事的小屁孩
工作
任务
完成情况 搞清楚带箭头的pupupwindows和不带的使用 已完成 熟练使用pupupwindows和alertdialog,并搞清楚两者的区别 已完成 熟练使用android的线程handler,并敲示例代码 进行中 了解游戏2048的流程,并完成其代码工作 进行中-差几个actionbar 研究一下android的动画效果,写一个实例 已完成 复习fragem
- zoom.js
换个号韩国红果果
oom
它的基于bootstrap 的
https://raw.github.com/twbs/bootstrap/master/js/transition.js transition.js模块引用顺序
<link rel="stylesheet" href="style/zoom.css">
<script src=&q
- 详解Oracle云操作系统Solaris 11.2
蓝儿唯美
Solaris
当Oracle发布Solaris 11时,它将自己的操作系统称为第一个面向云的操作系统。Oracle在发布Solaris 11.2时继续它以云为中心的基调。但是,这些说法没有告诉我们为什么Solaris是配得上云的。幸好,我们不需要等太久。Solaris11.2有4个重要的技术可以在一个有效的云实现中发挥重要作用:OpenStack、内核域、统一存档(UA)和弹性虚拟交换(EVS)。
- spring学习——springmvc(一)
a-john
springMVC
Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)实现,能够帮助我们构建像Spring框架那样灵活和松耦合的Web应用程序。
1,跟踪Spring MVC的请求
请求的第一站是Spring的DispatcherServlet。与大多数基于Java的Web框架一样,Spring MVC所有的请求都会通过一个前端控制器Servlet。前
- hdu4342 History repeat itself-------多校联合五
aijuans
数论
水题就不多说什么了。
#include<iostream>#include<cstdlib>#include<stdio.h>#define ll __int64using namespace std;int main(){ int t; ll n; scanf("%d",&t); while(t--)
- EJB和javabean的区别
asia007
beanejb
EJB不是一般的JavaBean,EJB是企业级JavaBean,EJB一共分为3种,实体Bean,消息Bean,会话Bean,书写EJB是需要遵循一定的规范的,具体规范你可以参考相关的资料.另外,要运行EJB,你需要相应的EJB容器,比如Weblogic,Jboss等,而JavaBean不需要,只需要安装Tomcat就可以了
1.EJB用于服务端应用开发, 而JavaBeans
- Struts的action和Result总结
百合不是茶
strutsAction配置Result配置
一:Action的配置详解:
下面是一个Struts中一个空的Struts.xml的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
&quo
- 如何带好自已的团队
bijian1013
项目管理团队管理团队
在网上看到博客"
怎么才能让团队成员好好干活"的评论,觉得写的比较好。 原文如下: 我做团队管理有几年了吧,我和你分享一下我认为带好团队的几点:
1.诚信
对团队内成员,无论是技术研究、交流、问题探讨,要尽可能的保持一种诚信的态度,用心去做好,你的团队会感觉得到。 2.努力提
- Java代码混淆工具
sunjing
ProGuard
Open Source Obfuscators
ProGuard
http://java-source.net/open-source/obfuscators/proguardProGuard is a free Java class file shrinker and obfuscator. It can detect and remove unused classes, fields, m
- 【Redis三】基于Redis sentinel的自动failover主从复制
bit1129
redis
在第二篇中使用2.8.17搭建了主从复制,但是它存在Master单点问题,为了解决这个问题,Redis从2.6开始引入sentinel,用于监控和管理Redis的主从复制环境,进行自动failover,即Master挂了后,sentinel自动从从服务器选出一个Master使主从复制集群仍然可以工作,如果Master醒来再次加入集群,只能以从服务器的形式工作。
什么是Sentine
- 使用代理实现Hibernate Dao层自动事务
白糖_
DAOspringAOP框架Hibernate
都说spring利用AOP实现自动事务处理机制非常好,但在只有hibernate这个框架情况下,我们开启session、管理事务就往往很麻烦。
public void save(Object obj){
Session session = this.getSession();
Transaction tran = session.beginTransaction();
try
- maven3实战读书笔记
braveCS
maven3
Maven简介
是什么?
Is a software project management and comprehension tool.项目管理工具
是基于POM概念(工程对象模型)
[设计重复、编码重复、文档重复、构建重复,maven最大化消除了构建的重复]
[与XP:简单、交流与反馈;测试驱动开发、十分钟构建、持续集成、富有信息的工作区]
功能:
- 编程之美-子数组的最大乘积
bylijinnan
编程之美
public class MaxProduct {
/**
* 编程之美 子数组的最大乘积
* 题目: 给定一个长度为N的整数数组,只允许使用乘法,不能用除法,计算任意N-1个数的组合中乘积中最大的一组,并写出算法的时间复杂度。
* 以下程序对应书上两种方法,求得“乘积中最大的一组”的乘积——都是有溢出的可能的。
* 但按题目的意思,是要求得这个子数组,而不
- 读书笔记-2
chengxuyuancsdn
读书笔记
1、反射
2、oracle年-月-日 时-分-秒
3、oracle创建有参、无参函数
4、oracle行转列
5、Struts2拦截器
6、Filter过滤器(web.xml)
1、反射
(1)检查类的结构
在java.lang.reflect包里有3个类Field,Method,Constructor分别用于描述类的域、方法和构造器。
2、oracle年月日时分秒
s
- [求学与房地产]慎重选择IT培训学校
comsci
it
关于培训学校的教学和教师的问题,我们就不讨论了,我主要关心的是这个问题
培训学校的教学楼和宿舍的环境和稳定性问题
我们大家都知道,房子是一个比较昂贵的东西,特别是那种能够当教室的房子...
&nb
- RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系
daizj
oraclermanfilespersetPARALLELISM
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系 转
PARALLELISM ---
我们还可以通过parallelism参数来指定同时"自动"创建多少个通道:
RMAN > configure device type disk parallelism 3 ;
表示启动三个通道,可以加快备份恢复的速度。
- 简单排序:冒泡排序
dieslrae
冒泡排序
public void bubbleSort(int[] array){
for(int i=1;i<array.length;i++){
for(int k=0;k<array.length-i;k++){
if(array[k] > array[k+1]){
- 初二上学期难记单词三
dcj3sjt126com
sciet
concert 音乐会
tonight 今晚
famous 有名的;著名的
song 歌曲
thousand 千
accident 事故;灾难
careless 粗心的,大意的
break 折断;断裂;破碎
heart 心(脏)
happen 偶尔发生,碰巧
tourist 旅游者;观光者
science (自然)科学
marry 结婚
subject 题目;
- I.安装Memcahce 1. 安装依赖包libevent Memcache需要安装libevent,所以安装前可能需要执行 Shell代码 收藏代码
dcj3sjt126com
redis
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
前面3步应该没有问题,主要的问题是执行make的时候,出现了异常。
异常一:
make[2]: cc: Command not found
异常原因:没有安装g
- 并发容器
shuizhaosi888
并发容器
通过并发容器来改善同步容器的性能,同步容器将所有对容器状态的访问都串行化,来实现线程安全,这种方式严重降低并发性,当多个线程访问时,吞吐量严重降低。
并发容器ConcurrentHashMap
替代同步基于散列的Map,通过Lock控制。
&nb
- Spring Security(12)——Remember-Me功能
234390216
Spring SecurityRemember Me记住我
Remember-Me功能
目录
1.1 概述
1.2 基于简单加密token的方法
1.3 基于持久化token的方法
1.4 Remember-Me相关接口和实现
- 位运算
焦志广
位运算
一、位运算符C语言提供了六种位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
例如:9&am
- nodejs 数据库连接 mongodb mysql
liguangsong
mongodbmysqlnode数据库连接
1.mysql 连接
package.json中dependencies加入
"mysql":"~2.7.0"
执行 npm install
在config 下创建文件 database.js
- java动态编译
olive6615
javaHotSpotjvm动态编译
在HotSpot虚拟机中,有两个技术是至关重要的,即动态编译(Dynamic compilation)和Profiling。
HotSpot是如何动态编译Javad的bytecode呢?Java bytecode是以解释方式被load到虚拟机的。HotSpot里有一个运行监视器,即Profile Monitor,专门监视
- Storm0.9.5的集群部署配置优化
roadrunners
优化storm.yaml
nimbus结点配置(storm.yaml)信息:
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional inf
- 101个MySQL 的调节和优化的提示
tomcat_oracle
mysql
1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。 2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 3. 使用电池供电的RAM(注:RAM即随机存储器)。 4. 使用高级的RAID(注:Redundant Arrays of Inexpensive Disks,即磁盘阵列
- zoj 3829 Known Notation(贪心)
阿尔萨斯
ZOJ
题目链接:zoj 3829 Known Notation
题目大意:给定一个不完整的后缀表达式,要求有2种不同操作,用尽量少的操作使得表达式完整。
解题思路:贪心,数字的个数要要保证比∗的个数多1,不够的话优先补在开头是最优的。然后遍历一遍字符串,碰到数字+1,碰到∗-1,保证数字的个数大于等1,如果不够减的话,可以和最后面的一个数字交换位置(用栈维护十分方便),因为添加和交换代价都是1
|