当前位置: 首页 > news >正文

东莞市建设网站盐城企业网站制作

东莞市建设网站,盐城企业网站制作,直播网站建设,qq网页版一键登录1.移动端基础 1.1 浏览器现状 PC端浏览器 360浏览器、谷歌浏览器、火狐浏览器、QQ浏览器、百度浏览器#xff08;停止服务#xff09;、搜狗浏览器、IE浏览器 移动端浏览器 UC、QQ浏览器、欧朋浏览器、百度手机浏览器、360、搜狗、猎豹、谷歌等其他手机自带的浏览器 国…1.移动端基础 1.1 浏览器现状 PC端浏览器 360浏览器、谷歌浏览器、火狐浏览器、QQ浏览器、百度浏览器停止服务、搜狗浏览器、IE浏览器 移动端浏览器 UC、QQ浏览器、欧朋浏览器、百度手机浏览器、360、搜狗、猎豹、谷歌等其他手机自带的浏览器 国内尚无自主研发的浏览器内核就像国内的手机操作系统都是基于android 修改开发一样 总结兼容移动端主流浏览器处理webkit 内核浏览器即可 1.2 手机屏幕现状 移动端屏幕尺寸非常多、碎片化严重Android设备有多种分辨率480X800、480X854、540X960、720x1280、1080x1920还有2K、4K屏近年来 iphone 的碎片化也加剧了其设备主要分辨率有 640x960、640x1136、750x1334、1242x2208作为前端开发人员无需关注这些分辨率因为我们常用尺寸为 px逻辑像素 1.3 常见移动端屏幕尺寸 参考 https://www.material.io/resources/devices/ 作为前端开发不要去纠结 dp、dpi、pt、ppi 等单位因为我们不是做原生开发的 1.4 调试方法 chrome DevTools 模拟手机搭建本地web服务手机和服务器在一个局域网内通过手机访问服务器使用外网服务器直接IP或者域名访问 2. 视口 布局视口 视觉视口 理想视口 2.1 为什么使用视口 移动开发兴起后出现的概念 也就是说如果我们开发的页面只需要适应PC端则不用考虑视口的概念 看下面的代码并没有对视口进行配置 !DOCTYPE html html langenheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentieedgetitleDocument/titlestyle.box{width: 300px;}/style /headbody img classbox src./3.jpg alt /body/html在PC端的表现和在手机端的表现分别如下 原因在于我们在手机端浏览中渲染此页面时手机设置了视口为980而我们手机屏幕的宽度为 375默认情况下PC上的内容是无法在手机端显示完整的会出现横向滚动条 手机上的浏览器一般不会允许出现这个横向滚动条所以都会对内容进行缩放也就是原来需要在980px 上显示的内容缩放到375px 上就能够展示你们页面中的所有元素就都要进行等比例的缩放 所以在我们看来图片变小了 2.2 设置视口宽度 解决方法设置视口 设置固定宽度 作用是覆盖默认980的设置而是自己设置 meta nameviewport contentwidth375再看一下手机端的表现 此时图片大小与PC端就一致了 原因在于设置了视口宽度与设备宽度一致也就是1:1 的关系则页面内容不会缩放图片也就按照原来设置的尺寸展示 试实设置视口为750px 看看什么效果说说为什么 使用设备宽度 不同设备的宽度不一样为了更好的适配不同的设备可以使用下面的设置 meta nameviewport contentwidthdevice-width2.3 设置缩放比 删除上面的代码实时下面的代码 meta nameviewport contentinitial-scale1效果相当于 meta nameviewport contentwidthdevice-widthinitial-scale 的值也可以设置为其他倍数 2.4 用户缩放 上面的 initial-scale 和 width 都是开发人员设置的页面初始化的缩放设置 下面是对用户对页面缩放的控制 很多时候我们不希望用户缩放页面进而导致将我们的布局搞乱可以使用下面的配置 user-scalableno 完整配置 meta nameviewport contentinitial-scale1,user-scalableno此时用户就无法在浏览中进行页面的缩放 当然也可以使用下面的配置替代 user-scalabel meta nameviewport contentinitial-scale1,minimum-scale1, maximum-scale1为了兼容性规范的写法是都写上 2.5 完整写法 结合前面所讲的所有只是viewport 的完整写法如下 meta nameviewport contentwidthdevice-width,initial-scale1,user-scalableno,minimum-scale1, maximum-scale12.6 通过 js 获取视口尺寸 可以通过下面的几种方法获取视口的宽度注意这里获取的是逻辑像素 console.log(window.innerWidth) console.log(document.documentElement.clientWidth) console.log(document.documentElement.getBoundingClientRect().width)为了更好的兼容性更推荐下面的写法 var clientWidthwindow.innerWidth||document.documentElement.clientWidth||document.documentElement.getBoundingClientRect().width可以通过下面的代码获取物理像素 console.log(screen.width)可以通过如下方法获取像素比dpr console.log(window.devicePixelRatio)可以通过开发者工具显示出dpr 3. 像素 本节涉及的知识点 分辨率、物理像素、CSS 像素、设备像素比(dpr)、标清屏和高清屏、缩放、PPI/DPI 3.1 物理像素 手机屏幕横向有828个点 手机屏幕纵向上有1792个点 同等大小屏幕下点越多、图像显示越精细 上面所说屏幕上一个个点就是物理像素physical pixel 物理像素也叫设备像素dp:device pixel 可见每个像素就是一个点每个点由红绿蓝三原色组成只需要控制每个点每种颜色的明暗就可以显示不同的颜色 实际开发中使用物理像素吗 看下面的例子 同等屏幕大小的两个手机 一个横向有2个物理像素一个有4个物理像素 如果使用物理像素则很明显展示的效果不一样在高清屏幕下可能图片会显示的很小设置都会看看不清楚 也就是说在实际开发中我们使用设备的物理像素 3.2 CSS 像素 CSS 像素也叫逻辑像素logical pixel 也成为 设备独立像素dip:divice independent pixel 我们在开发当中使用的就是CSS像素 .box { width: 1000px; height: 500px; } CSS像素与物理像素的关系 mark 在标清屏下1个css像素使用1个物理像素展示 在高清屏下1个css像素使用4个物理像素表示 注意高清屏下4个点相当于标清屏下1个点的大小所以说在高清屏下1个css像素使用4个物理像素表示 点越多展示的越精细想想灯带。。。。 浏览器会根据当前设备屏幕自动换算出1个CSS像素使用多少个物理像素表示 3.3 设备像素比 设备像素比dpr:device pixel ratio dpr设备像素/CSS 像素缩放比是1的情况下 所以上面两种屏幕下的 dpr 分别为 mark dpr2 表示的1个css 像素使用 2X2 个设备像素绘制 注意计算时指的是1个方向上横向或者纵向 所以 dpr1 的我们都可以认为是高清屏 3.3.1 二倍图 对于一张50px * 50pxcss像素的图片在手机 Retina 屏中打开按照上面介绍的物理像素比会放大倍数这样会造成图片模糊 在标准的viewport 设置中使用倍图来提高图片质量解决在高清屏设备中的模糊问题 通常使用二倍图因为在 iphone6\7\8 的影响但是现在还存在3倍图、4倍图的情况这个看实际开发公司需求 背景图片注意缩放问题 具体解决方案 准备一张100 * 100 的图片但是通过css 将其设置成50 * 50在高清屏上会将其放大2被变成 100 * 100因为图片背身就是100 * 100所以不会失真 需要注意的是一定将其设置成50 * 50否则会将其放大成200 * 200仍然会失真 Document 背景图片也采用同样的方式准备的应该是北京尺寸2倍的图片然后通过 background-size 将其设计成1倍 如何快速起初2倍图、3倍图别忘了我们PS中的切图神器 Document 总结 准备的图片是开发尺寸的2倍或者其他倍数 3.4 缩放 缩放改变的是CSS像素毕竟我们没有法力 放大 mark 缩小 3.5 PPI 每英寸的物理像素点见图1 ppi:pixels per inch可以根据勾股定律进行英寸 注意因为手机不是正方形的所以 6.1英寸只是大约值实际计算时可以使用 6.06 dpi:dots per inch 移动端开发选择 4.1 主流方案 单独制作移动端页面主流一般在域名前面加上 m可以打开移动端如果是移动设备能够自动判断也就是说同各国检测时PC设备还是移动设备响应不同的页面 响应式页面兼容移动端其次根据屏幕的宽度来改变样式。缺点制作麻烦、需要花很大精力去调兼容性问题移动端技术解决方案 5.1 移动端浏览器 移动端浏览器基本以 webkit 内核为主因此只需要考虑 webkit 兼容性即可 可以放心使用 H5 和 CSS3 的新特性 同时浏览器的私有前缀只需要添加 webkit 即可 mark 5.2 CSS 初始化 normalize.css 保护了有价值的默认样式 修复了浏览器的bug 模块化的 拥有详细的文档 http://necolas.github.io/normalize.css/ 5.3 CSS3 盒子模型 box-sizing 设置盒子的尺寸以内容为准还是边框为准 传统模式宽度计算盒子宽度 CSS 中设置的 borderwidthpadding CSS3 盒子模型盒子宽度CSS 中设置的width 里面包含了 border 和 padding 也即是说 CSS3 盒子模型中padding 和 border 的设置不会撑大盒子了 注意移动端可以全部使用CSS3盒子模型PC端如果需要兼容使用传统模式不考虑兼容使用CSS3 盒子模型 Document 5.4 特殊样式 有些元素到了移动端会有一些默认的特殊样式我们建议将这些样式去除 点击超链接时会有背景高亮效果建议去除 按钮会有默认样式建议去除 图片、超链接等长按会弹出菜单建议去除兼容性很不好 a { /* 去除超链接点击时的背景高亮效果 / -webkit-tap-highlight-color: transparent; } / 禁用长按显示菜单 */ img, a { -webkit-touch-callout: none; } /去除按钮的默认样式然后才可以为按钮自定义样式/ button, input { -webkit-appearance: none; } 6. 移动端常见布局 6.1 移动端技术选型 首先从下面两种方案中选择一种 单独制作移动端页面主流 流式布局百分比布局 flex弹性布局强烈推荐 lessrem媒体查询布局 混合布局 响应式页面兼容移动端 媒体查询 bootstrap 6.2 流式布局 流式布局就是百分比布局也称作非固定像素布局 通过盒子的宽度设置城百分比来根据屏幕的宽度进行伸缩不受固定像素的限制内容向两侧填充 流式布局时移动web开发使用的比较常见的布局方式 Document 6.3 流式布局项目 6.3.1 创建项目结构 mark 6.3.2 初始化主页 引入 normalize.css 引入 index.css 编写视口 淘淘首页 6.3.3 初始化body 在 index.css 中编写代码 参考京东移动端代码 mark 6.3.4 头部布局 mark 京东头部可以分为4个部分 通过查看京东官网发现百分比分别为 8%、10%、57%、25% 第4部分的颜色与其他部分的背景颜色不一致 html中添加头部 8105725 编写css样式 在 index.css 中编写样式 /* 头部样式 */ .app{ width: 100%; height: 45px; } .app ul{ margin: 0; padding: 0; list-style-type: none; } .app li{ float: left; height: 45px; background-color: #333333; } .app li:nth-child(1){ width: 8%; } .app li:nth-child(2){ width: 10%; } .app li:nth-child(3){ width: 57%; } .app li:nth-child(4){ width: 25%; background-color: #f63515; } 填充内容 第一部分是一个关闭图标尺寸为1010 第二部分为网站Logo尺寸为3030 第三部分和第四部分文字为白色 头部所有文字和图片都是水平居中且垂直居中对齐 注意图片无法通过设置行高等于高度的方式居中对齐 修改 index.html 中的 header 中的代码 mark 修改 index.css 中的代码 mark mark 6.3.5 搜索制作 通过观察京东发现如下几点 搜索分为三部分 左侧展开折叠按钮尺寸固定不要使用百分比 右侧登录按钮尺寸固定不要使用百分比 中间搜索框会随着屏幕大小的调节而进行缩放 技术实现 搜索区域高度为44px 左右两侧按钮宽高都为40*44且分别做固定在左边和固定在右边需要使用绝对定位 中间搜索区域白色背景圆角高度为30pxmargin-left 和 margin-right 分别为50px 布局 在 index.html 中加入如下代码 在 index.css 中加入如下代码 mark 制作左侧和右侧 左侧和右侧相对简单所以先制作这两部分 html 代码 mark css 代码 mark 制作放大镜 京东上使用的是二倍精灵图所以使用起来要遵循下面步骤 将精灵图等比例缩小一半 之后根据大小测量坐标 注意代码里面background-size也要写成精灵图原来的一半 html 代码 mark css 代码 mark 制作输入框 html 代码 mark css 代码 mark 6.3.6 焦点图 html 代码 mark css 代码 mark 不要忘了将 search-box 盒子的定位修改为 固定定位且 宽度设置为 100% mark 6.3.7 活动区域 html 代码 mark css 代码 mark 6.6.8 类别区域 html 代码 京东超市 数码家电 京东服饰 京东生鲜 京东到家 京东超市 数码家电 京东服饰 京东生鲜 京东到家 css 代码 mark flex 布局 7.1 传统布局与flex布局 传统布局 兼容性好 布局繁琐 局限性对移动端的支持不好 flex 唐兴布局 操作方便布局极为简单移动端应用广泛 PC段浏览器支持情况较差 IE11或更低版本不支持或仅部分支持 建议 PC端页面使用传统布局 移动端页面或者不考虑兼容性问题的PC段页面布局使用flex 弹性布局 7.2 爱的初体验 html 代码 10 20 30 css 代码 mark 加入flex 为 div 加入如下 css 样式 mark 运行结果 mark 总结 在为div设置 display:flex 之前span元素的 displayinline 在为div设置 display:flex 之后span 元素的displayblock所以高度生效但是因为宽度没有设置故为内容宽度 可见通过为父元素设置 display:flex 子元素无论原来是什么元素都会变成 block但是宽度并不会占据父元素的100%而且也不会独占1行 设置固定宽度 可以为span元素设置宽度 span{ width: 100px; height: 100px; background-color: #fff; } 设置后宽度会生效但是当调整浏览器宽度默认情况下span的宽度仍然会压缩 设置对齐方式 在 div 中加入如下代码 mark 运行结果 mark 设置平分 也可以不设置固定宽度而是使用如下代码 span { /* width: 100px; */ flex: 1; height: 100px; background-color: #fff; } 此种设置三个span元素将会评分父元素的宽度 mark 7.3 布局原理 flexflex box 的缩写 意为 弹性布局用来为盒状模型提供最大的灵活性任何一个容器都可以指定为 flex但是我们不会变态到将 i 标签指定为 flex 当我们将父盒子设置为flex后子元素的float、clear、vertical-align 属性失效 采用Flex布局的元素成为Flex容器(flex container)简称“容器”它的所有子元素自动成为容器成员成为Flex项目(flex item)简称“项目” 子元素可以横向排列也可以纵向排列 mark 布局原理总结 通过给父盒子添加flex属性来控制子盒子的位置和排列方式 7.4 容器常用属性 一下属性用于设置容器也就是父盒子 felx-direction设置主轴的方向也就是项目横向排列还是纵向排列 justify-content设置主轴上的子元素的排列方式 flex-wrap设置子元素是否换行 align-content设置侧轴上子元素的排列方式多行 align-items设置侧轴上的子元素排列方式单行 flex-flow复合属性相当于同时设置了flex-directon 和 flex-wrap 7.4.1 flex-direction 在flex布局中分为主轴和侧轴 默认情况下水平方向为主轴水平向右垂直方向为侧轴垂直向下 mark flex-direction 属性可以改变默认的主轴设置 设置行为主轴 设置水平方向为主轴项目从左向右排列 body { background-color: #ccc; } div { display:flex; /设置容器的主轴为X轴也就是行为主轴此值为默认值/ flex-direction: row; width: 800px; height: 400px; background-color: #000; } span { width: 100px; height: 100px; background-color: #fff; border: 1px solid black; } 设置主轴反转 反转主轴 设置水平方向为主轴项目从右向左排列 只需要将如下代码 flex-direction: row; 修改为 flex-direction: row-reverse; 设置列为主轴 设置主轴为垂直方向项目从上到下排列 设置 flex-direction 的值 column flex-direction: column; 将上面的代码改为 flex-direction: column-reverse; 项目从下到上排列 总结 主轴不是固定的 项目永远沿主轴排列所以设置主轴为水平方向项目1行排列设置主轴为垂直方向项目1列排 7.4.2 justify-content 设置主轴上项目的排列方式 使用此属性之前要确定主轴是哪一个主轴不一样设置的值也不一样 flex-start 默认值从头部开始如果主轴是x轴则从左到右 flex-end 从尾部开始排列如果主轴是y轴则从又到左 center 在主轴居中对齐如果主轴是x轴则水平居中 spance-around 评分剩余空间 spance-between 先两边贴边再评分剩余空间 7.4.2.1 X轴为主轴时 flex-start body { background-color: #ccc; } div { display:flex; /设置容器的主轴为X轴也就是行为主轴此值为默认值/ flex-direction: row; /* 设置项目从左到右排列 */ justify-content: flex-start; width: 800px; height: 400px; background-color: #000; } span { width: 100px; height: 100px; background-color: #fff; border: 1px solid black; } mark 这与没设置 justify-content:flex-start 没有区别 修改 justiry-content 的值为 flex-end flex-end /* 设置项目从左到右排列 */ justify-content: flex-end; mark 注意这里仅仅是改变了项目的起始方向并没有改变项目的排列顺序而我们上面说的 flex-direction 的翻转会改变项目的排列顺序 将 justify-content 的值设置为 center所有元素居中显示两边编剧一致 center justify-content:center; mark spance-around justify-content:space-around; 问题为什么明明是评分剩余空间项目的中间距离看起来是左侧两侧边距的2倍 mark 注意 容器-所有项目宽度之和就是主轴上剩余的空间这里的平分是指项目之间的距离平分这些空间 如果设置项目的flex:1而不是设置项目的固定宽度那么无论 justify-content 的值设置为什么都没有效果因为项目会自动占满整个容器宽度 space-between justify-content:space-between; mark 7.4.2.2 Y 轴为主轴 省略 7.4.3 flex-wrap 传统布局中设置子盒子浮动后如果1行占不下会自动另起一行 但是在 flex 布局中则不然 html 代码 10 20 30 40 css 代码 body { background-color: #ccc; } div { display:flex; /设置容器的主轴为X轴也就是行为主轴此值为默认值/ flex-direction: row; /* 设置项目从左到右排列 */ justify-content:flex-start; width: 500px; height: 400px; background-color: #000; } span { width: 150px; height: 100px; background-color: #fff; border: 1px solid black; } 我们发现当1行站不下所有项目时会自动缩小项目的宽度 如果不希望改变宽度而是另起一行只需要在容器中据加入如下设置即可 flex-wrap: wrap; mark 问题为什么两行之间的垂直间距这么大 扩展 如果主轴为Y轴则效果如下 mark 7.4.4 align-items 设置项目在侧轴上的排列方式 但是此属性适合项目为单行时 侧轴默认是Y轴当然可以改变 flex-start 默认值从上到下 flex-end 从下到上 center 挤在一起居中 stretch 拉伸 7.4.4.1 解决的问题 当前只能通过 justify-content 设置项目在主轴上的位置 div { display:flex; /设置容器的主轴为X轴也就是行为主轴此值为默认值/ flex-direction: row; /* 设置项目从左到右排列 */ justify-content:center; width: 500px; height: 400px; background-color: #000; } mark 无法设置项目在侧轴上居中对于当前来说侧轴是y轴那么也就是设置垂直居中 有人可能想到做如下修改 flex-direction: column; 但这样只是修改了主轴为y轴 mark 当前属性就是用来解决这个问题的 7.4.4.2 设置侧轴居中 只需要在容器中加入 mark 效果 mark 问题如果主轴为y轴呢 mark 效果 mark 当然此属性的只也可以设置为其他几个 其他几个值都比较简单稍微需要注意的是 stretch 意思是拉伸如果主轴是x轴那么就会拉伸项目的高度与父元素一样高但是项目不能设置固定高度否则无效 7.4.5 align-content 设置侧轴上的子元素的排列方式 这与 align-items 相似区别在于此属性用来设置多行项目也就是项目换行时的排列方式在单行项目下时没有效果的 flex-start 默认值在侧轴的头部开始排列 flex-end 在侧轴的尾部开始排列 center 在侧轴的中间显示 space-around 子项在侧轴评分剩余空间 spacebetween 子项在侧轴先分布在两头再平分剩余空间 stretch 设置子项元素高度平分父元素 flex-start mark 思考主轴为y轴时如何排列 flex-end mark center mark space-around mark space-between mark **align-items 和 align-content 对比 align-items 适用于单行情况下只有上对齐下对齐居中和拉伸 align-content 适用于多行单行下无效可以设置对上对齐、下对齐、居中、拉伸一级平分剩余空间等 7.4.6 flex-flow flex-direction 和 flex-wrap 的复合属性 flex-flow: column nowrap; 7.5 项目常见属性 flex 项目占的份数 align-self 控制子项自己在侧轴的排列方式前面的align-items 和 align-content 是对所有子项应用相同的排列方式而这个属性是对单个子项应用个性化的排列方式 order 定义项目的排列顺序前后顺序 7.5.1 flex 定义子项目分配剩余空间用 flex 属性表示占多少分 分配的容器的剩余空间会增加到元素的宽度上 项目一旦设置固定宽度就不会参与分配剩余空间 flex 的默认值为00就表示不参与分配剩余空间 项目一旦设置了flex就不能再设置固定宽度 如果flex 的值为其他数字则表示在分配剩余空间时所占的分数 圣杯效果 Document 10 20 30 按比例分配 Document 10 20 30 7.5.2 align-self Document 10 20 30 7.6 flex 布局项目 7.6.1 创建项目结构 mark 7.6.2 初始化主页 mark 7.6.3 编写body样式 body { max-width: 540px; min-width: 320px; margin: 0 auto; background: #fafafc; /* 去除横向滚动条 / overflow-x: hidden; / 去除移动端中超链接点击时的背景高亮效果 */ -webkit-tap-highlight-color: transparent; } 7.6.4 布局分析 很多元素的高度都是固定的不会随着窗口的变化而变化 7.6.5 搜索区域 固定定位 宽度设置为100%因为设置为固定定位后盒子成为inline-block 设置最大宽度、最小宽度因为固定定位的元素的父元素是窗口不是body所以在body中设置的最大宽度、最小宽度、以及宽度搜索盒子都不会继承必须单独设置 水平居中的两种方式 CSS3属性的兼容性写法 html 代码 我的 index.css 中设置搜索框样式 mark index.css 中设置搜索框内部元素样式 mark
http://www.zqtcl.cn/news/597433/

相关文章:

  • 网站404 模板wordpress 文字插件下载
  • 河南民基建设工程有限公司网站齐齐哈尔建设局网站首页
  • 响应式网站建设推荐乐云践新三丰云免费云服务器
  • 长沙网站建设模板uc浏览器访问网站
  • 擼擼擼做最好的导航网站陕西政务服务网注册公司流程
  • 怎样做商城网站的推广wordpress用php哪个版本好
  • 网站功能模块建设建设网站考证
  • 网站代码结构成都住建局官网报名入口
  • 吴桥县网站建设房产门户网站模板
  • 标签化网站网络服务类型及其所采用的网络协议
  • 做网站服务器应该怎么配置网页美工设计实践性教案
  • 响应式网站导航栏内容泰安网站营销推广
  • 南通营销网站开发软件开发工具名词解释
  • 吉林企业网站模板建站哪个好wordpress后台新建慢
  • 整合营销的成功案例肇庆seo优化
  • 网站关键字标签合肥高端网站建设设计公司哪家好
  • 大型企业网站设计案例免费在线看片
  • 云南网站开发公司找哪家网站弹出式链接后台怎么做
  • 电商网站的支付模块怎么做企业网站建设招标文件
  • 旅游在线网站开发十八个免费的舆情网站
  • 网站怎么申请百度小程序火车头采集发布wordpress
  • 外贸网站的推广技巧有哪些莱芜网吧
  • 溧阳城乡建设局网站ps中网站页面做多大的
  • sns社交网站 有哪些wordpress开发分类筛选
  • 黄石网站建设教程网上怎样查询企业资质
  • 国内设计师交流网站怎样做自己的网站钻钱
  • 无锡专业网站推广网络营销组合策略
  • 网站建设的安全威胁中国建设银行的网站色彩
  • 中小型企业网站建设与管理潍坊做网站哪家公司最好
  • 广州白云机场网站建设免费的网站模版