特点:一行显示多个 之间有空白缝隙 高宽内边距外边距都可以控制
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,前端框架)
- Long类型前后端数据不一致
igotyback
前端
响应给前端的数据浏览器控制台中response中看到的Long类型的数据是正常的到前端数据不一致前后端数据类型不匹配是一个常见问题,尤其是当后端使用Java的Long类型(64位)与前端JavaScript的Number类型(最大安全整数为2^53-1,即16位)进行数据交互时,很容易出现精度丢失的问题。这是因为JavaScript中的Number类型无法安全地表示超过16位的整数。为了解决这个问
- python os.environ_python os.environ 读取和设置环境变量
weixin_39605414
pythonos.environ
>>>importos>>>os.environ.keys()['LC_NUMERIC','GOPATH','GOROOT','GOBIN','LESSOPEN','SSH_CLIENT','LOGNAME','USER','HOME','LC_PAPER','PATH','DISPLAY','LANG','TERM','SHELL','J2REDIR','LC_MONETARY','QT_QPA
- DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理
STU学生网页设计
网页设计期末网页作业html静态网页html5期末大作业网页设计web大作业
️精彩专栏推荐作者主页:【进入主页—获取更多源码】web前端期末大作业:【HTML5网页期末作业(1000套)】程序员有趣的告白方式:【HTML七夕情人节表白网页制作(110套)】文章目录二、网站介绍三、网站效果▶️1.视频演示2.图片演示四、网站代码HTML结构代码CSS样式代码五、更多源码二、网站介绍网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。网站程
- 【加密社】Solidity 中的事件机制及其应用
加密社
闲侃区块链智能合约区块链
加密社引言在Solidity合约开发过程中,事件(Events)是一种非常重要的机制。它们不仅能够让开发者记录智能合约的重要状态变更,还能够让外部系统(如前端应用)监听这些状态的变化。本文将详细介绍Solidity中的事件机制以及如何利用不同的手段来触发、监听和获取这些事件。事件存储的地方当我们在Solidity合约中使用emit关键字触发事件时,该事件会被记录在区块链的交易收据中。具体而言,事件
- 关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript
二挡起步
web前端期末大作业javascripthtmlcss旅游风景
⛵源码获取文末联系✈Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业|游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作|HTML期末大学生网页设计作业,Web大学生网页HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScrip
- HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动
二挡起步
web前端期末大作业web设计网页规划与设计htmlcssjavascriptdreamweaver前端
Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作HTML期末大学生网页设计作业HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScript:做与用户的交互行为文章目录前端学习路线
- webpack图片等资源的处理
dmengmeng
需要的loaderfile-loader(让我们可以引入这些资源文件)url-loader(其实是file-loader的二次封装)img-loader(处理图片所需要的)在没有使用任何处理图片的loader之前,比如说css中用到了背景图片,那么最后打包会报错的,因为他没办法处理图片。其实你只想能够使用图片的话。只加一个file-loader就可以,打开网页能准确看到图片。{test:/\.(p
- Python入门之Lesson2:Python基础语法
小熊同学哦
Python入门课程python开发语言算法数据结构青少年编程
目录前言一.介绍1.变量和数据类型2.常见运算符3.输入输出4.条件语句5.循环结构二.练习三.总结前言欢迎来到《Python入门》系列博客的第二课。在上一课中,我们了解了Python的安装及运行环境的配置。在这一课中,我们将深入学习Python的基础语法,这是编写Python代码的根基。通过本节内容的学习,你将掌握变量、数据类型、运算符、输入输出、条件语句等Python编程的基础知识。一.介绍1
- springboot+vue项目实战一-创建SpringBoot简单项目
苹果酱0567
面试题汇总与解析springboot后端java中间件开发语言
这段时间抽空给女朋友搭建一个个人博客,想着记录一下建站的过程,就当做笔记吧。虽然复制zjblog只要一个小时就可以搞定一个网站,或者用cms系统,三四个小时就可以做出一个前后台都有的网站,而且想做成啥样也都行。但是就是要从新做,自己做的意义不一样,更何况,俺就是专门干这个的,嘿嘿嘿要做一个网站,而且从零开始,首先呢就是技术选型了,经过一番思量决定选择-SpringBoot做后端,前端使用Vue做一
- 博客网站制作教程
2401_85194651
javamaven
首先就是技术框架:后端:Java+SpringBoot数据库:MySQL前端:Vue.js数据库连接:JPA(JavaPersistenceAPI)1.项目结构blog-app/├──backend/│├──src/main/java/com/example/blogapp/││├──BlogApplication.java││├──config/│││└──DatabaseConfig.java
- 最简单将静态网页挂载到服务器上(不用nginx)
全能全知者
服务器nginx运维前端html笔记
最简单将静态网页挂载到服务器上(不用nginx)如果随便弄个静态网页挂在服务器都要用nignx就太麻烦了,所以直接使用Apache来搭建一些简单前端静态网页会相对方便很多检查Web服务器服务状态:sudosystemctlstatushttpd#ApacheWeb服务器如果发现没有安装web服务器:安装Apache:sudoyuminstallhttpd启动Apache:sudosystemctl
- 补充元象二面
Redstone Monstrosity
前端面试
1.请尽可能详细地说明,防抖和节流的区别,应用场景?你的回答中不要写出示例代码。防抖(Debounce)和节流(Throttle)是两种常用的前端性能优化技术,它们的主要区别在于如何处理高频事件的触发。以下是防抖和节流的区别和应用场景的详细说明:防抖和节流的定义防抖:在一段时间内,多次执行变为只执行最后一次。防抖的原理是,当事件被触发后,设置一个延迟定时器。如果在这个延迟时间内事件再次被触发,则重
- 100天持续行动—Day01
Richard_DL
今天开始站着学习,发现效率大幅提升。把fast.ai的Lesson1的后半部分和Lesson2看完了。由于Keras版本和视频中的不一致,运行notebook时经常出现莫名其妙的错误,导致自己只动手实践了视频中的一小部分内容。为了赶时间,我打算先把与CNN相关的视频过一遍。然后尽快开始做自己的项目。明天继续加油,争取把Lesson3和Lesson4看完。
- 微信小程序开发注意事项
jun778895
微信小程序小程序
微信小程序开发是一个融合了前端开发、用户体验设计、后端服务(可选)以及微信小程序平台特性的综合性项目。这里,我将详细介绍一个典型的小程序开发项目的全过程,包括项目规划、设计、开发、测试及部署上线等各个环节,并尽量使内容达到或超过2000字的要求。一、项目规划1.1项目背景与目标假设我们要开发一个名为“智慧校园助手”的微信小程序,旨在为学生提供一站式校园生活服务,包括课程表查询、图书馆座位预约、食堂
- 字节二面
Redstone Monstrosity
前端面试
1.假设你是正在面试前端开发工程师的候选人,面试官让你详细说出你上一段实习过程的收获和感悟。在上一段实习过程中,我获得了宝贵的实践经验和深刻的行业洞察,以下是我的主要收获和感悟:一、专业技能提升框架应用熟练度:通过实际项目,我深入掌握了React、Vue等前端框架的使用,不仅提升了编码效率,还学会了如何根据项目需求选择合适的框架。问题解决能力:在实习期间,我遇到了许多预料之外的技术难题。通过查阅文
- 前端代码上传文件
余生逆风飞翔
前端javascript开发语言
点击上传文件import{ElNotification}from'element-plus'import{API_CONFIG}from'../config/index.js'import{UploadFilled}from'@element-plus/icons-vue'import{reactive}from'vue'import{BASE_URL}from'../config/index'i
- 《HTML 与 CSS—— 响应式设计》
陈在天box
htmlcss前端
一、引言在当今数字化时代,人们使用各种不同的设备访问互联网,包括智能手机、平板电脑、笔记本电脑和台式机等。为了确保网站在不同设备上都能提供良好的用户体验,响应式设计成为了网页开发的关键。HTML和CSS作为网页开发的基础技术,在实现响应式设计方面发挥着重要作用。本文将深入探讨HTML与CSS中的响应式设计原理、方法和最佳实践。二、响应式设计的概念与重要性(一)概念响应式设计是一种网页设计方法,旨在
- uniapp实现动态标记效果详细步骤【前端开发】
2401_85123349
uni-app
第二个点在于实现将已经被用户标记的内容在下一次获取后刷新它的状态为已标记。这是什么意思呢?比如说上面gif图中的这些人物对象,有一些已被该用户添加为关心,那么当用户下一次进入该页面时,这些已经被添加关心的对象需要以“红心”状态显现出来。这个点的难度还不算大,只需要在每一次获取后端的内容后对标记对象进行状态更新即可。II.动态标记效果实现思路和步骤首先,整体的思路是利用动态类名对不同的元素进行选择。
- html+css网页设计 旅游网站首页1个页面
html+css+js网页设计
htmlcss旅游
html+css网页设计旅游网站首页1个页面网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode、Sublime、Webstorm、Text、Notepad++等任意html编辑软件进行运行及修改编辑等操作)。获取源码1,访问该网站https://download.csdn.net/download/qq_42431718/897527112,点击
- ansible的安装、使用
ytym00
简介高度模块化,调用特定的模块,完成特定的任务,基于Yaml,来完成批量任务的模板化,来支持playbook。基于Python语言实现,主要使用Paramiko、PyYAML和JinJa2三个关键模块,部署简单(agentless),主从模式,支持自定义模块,支持playbook,幂等性:允许重复执行N次,没有变化时,只会执行第一次。特点:1、Configuration(cfengine,chef
- css设置当字数超过限制后以省略号(...)显示
周bro
css前端vuecss3html经验分享
1、文字超出一行,省略超出部分,显示’…’用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览。overflow:hidden;text-overflow:ellipsis;white-space:nowrap;2、多行文本溢出显示省略号display:-webkit-box;-webkit-box-orient:vertical;-webkit-lin
- 360前端星计划-动画可以这么玩
马小蜗
动画的基本原理定时器改变对象的属性根据新的属性重新渲染动画functionupdate(context){//更新属性}constticker=newTicker();ticker.tick(update,context);动画的种类1、JavaScript动画操作DOMCanvas2、CSS动画transitionanimation3、SVG动画SMILJS动画的优缺点优点:灵活度、可控性、性能
- h5小游戏定制开发
红匣子实力推荐
随着科技的不断发展,移动互联网已经成为人们生活中不可或缺的一部分。在这个背景下,H5小游戏应运而生,为人们带来了丰富的娱乐体验。H5小游戏定制开发作为一种新兴的游戏开发方式,正逐渐受到市场的关注和青睐。那么,什么是H5小游戏定制开发呢?它又具有哪些特点和优势呢?让我们一起来深入了解一下。首先,我们来了解一下H5小游戏的基本概念。H5小游戏是一种基于HTML5技术的游戏,可以在移动端、PC端等多平台
- Vue + Express实现一个表单提交
九旬大爷的梦
最近在折腾一个cms系统,用的vue+express,但是就一个表单提交就弄了好久,记录一下。环境:Node10+前端:Vue服务端:Express依赖包:vueexpressaxiosexpress-formidableelement-ui(可选)前言:axiosget请求参数是:paramsaxiospost请求参数是:dataexpressget接受参数是req.queryexpresspo
- css2中的透明
琪33
.out{width:400px;height:400px;background-color:blue;margin:100pxauto;border:1pxsolid#000;opacity:0.6;}.in{width:200px;height:200px;background-color:red;margin:100pxauto;}
- Nginx从入门到实践(三)
听你讲故事啊
动静分离动静分离是将网站静态资源(JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。动静分离的一种做法是将静态资源部署在nginx上,后台项目部署到应用服务器上,根据一定规则静态资源的请求全部请求nginx服务器,达到动静分离的目标。rewrite规则Rewrite规则常见正则表达式Rewrite主要的功能就是实现URL的重写,Ngin
- Nginx的使用场景:构建高效、可扩展的Web架构
张某布响丸辣
nginx前端架构
Nginx,作为当今最流行的Web服务器和反向代理软件之一,凭借其高性能、稳定性和灵活性,在众多Web项目中扮演着核心角色。无论是个人博客、中小型网站,还是大型企业级应用,Nginx都能提供强大的支持。本文将探讨Nginx的几个主要使用场景,帮助读者理解如何在实际项目中充分利用Nginx的优势。1.静态文件服务对于包含大量静态文件(如HTML、CSS、JavaScript、图片等)的网站,Ngin
- 前端知识点
ZhangTao_zata
前端javascriptcss
下面是一个最基本的html代码body{font-family:Arial,sans-serif;margin:20px;}//JavaScriptfunctionthatdisplaysanalertwhencalledfunctionshowMessage(){alert("Hello!Youclickedthebutton.");}MyFirstHTMLPageWelcometoMyPage
- ElasticSearch查询超过10000条(1000页)时出现Result window is too large的问题
王月亮17
问题当ES数据量较大,使用分页查询超过10000条(1000页)时,出现如下错误:Cannotexecutejestaction,responsecode:500,error:{"root_cause":[{"type":"query_phase_execution_exception","reason":"Resultwindowistoolarge,from+sizemustbelesstha
- 第三十一节:Vue路由:前端路由vs后端路由的了解
曹老师
1.认识前端路由和后端路由前端路由相对于后端路由而言的,在理解前端路由之前先对于路由有一个基本的了解路由:简而言之,就是把信息从原地址传输到目的地的活动对于我们来说路由就是:根据不同的url地址展示不同的页面内容1.1后端路由以前咱们接触比较多的后端路由,当改变url地址时,浏览器会向服务器发送请求,服务器根据这个url,返回不同的资源内容后端路由的特点就是前端每次跳转到不同url地址,都会重新访
- 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
|