新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
px像素。绝对单位,像素px是相对于显示器屏幕分辨率而言的,是一个虚拟单位。是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI。
目前成都创新互联公司已为数千家的企业提供了网站建设、域名、网站空间、绵阳服务器托管、企业网站设计、工农网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
2、em是相对长度单位,相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对浏览器的默认字体尺寸。它会继承父级元素的字体大小,因此并不是一个固定的值。
rem是CSS3新增的一个相对单位(root em,根em),使用rem为元素设定字体大小事,仍然是相对大小但相对的只是HTML根元素。
4、区别:IE无法调用那些使用px作为单位的字体大小,而em和rem可以缩放,rem相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器已支持rem。
1.定位
2.尺寸
3.浮动
4.最初的布局——table
5.两栏布局(浮动和定位)
6.三栏布局(flex,圣杯和双飞翼: )
7.移动端的布局(媒体查询,flex弹性盒子( ),rem适配( ))
8.grid布局
摘自:
1.flex方式(适用于居中元素元素宽高未知),但是这种方式仅限于body里面只有一个子元素,如果body里面有多个div不行
2.绝对定位和负边距(适用于居中元素的宽高是固定的)
3.CSS3的transform属性(适用于居中元素元素宽高未知)
4.margin:auto
1.transform
transform属性是静态属性。它其实只是一个静态属性,需要配合transition和animation才能展现出动画效果。你可以把它看成是跟left、top等属性一样,只是一个静态样式而已。它可以让元素偏移、伸缩、变形、旋转等。
2.transition,它属性是一个简单的动画属性,非常简单非常容易用。可以说它是animation的简化版本,是给普通做简单网页特效用的。
3.Animation
CSS 指层叠样式表 (Cascading Style Sheets),样式定义如何显示 HTML 元素。CSS样式表又分为三种方式,内联样式表、内联引用和外部样式表。下面具体介绍它们的写法:
1.内联样式表:在HTML文档头部 head 区域使用style 元素 来包含CSS。
2.内联引用: 在HTML元素中使用"style" 属性,直接对指定元素应用样式。
3.外部样式表:将样式单独写在CSS文件内,通过引入外部 CSS 文件来应用样式。这种方法常应用于大型开发中。
-webkit-box、-moz-box、-o-box、-ms-box、box这些都是指同一个属性即box,前面带有-号的是分别针对不同的浏览器的,其中
-webkit- 针对Chrome和Safari浏览器
-moz- 针对FireFox浏览器
-o- 针对Opera浏览器
-ms- 针对IE浏览器
也就是说凡是带有这样的前缀的都是这些浏览器的私有属性,只有各自的浏览器内部才有效。之所以这样,是因为有些css属性是带有实验性质的(尤其是css3),各主流浏览器尚未对它完全支持,这样就会使用私有属性来进行试验,而其他浏览器则会自动忽略该属性。因此,网页为了兼容各种不同的浏览器,就会把所有的私有属性都放上去,也包括不带前缀的标准属性。而浏览器的版本众多,很可能低版本的浏览器对某个属性处于试验性质,而高版本则已经完全支持了(也就是说可以不用前缀了),比如box属性就是如此,因此你把其他带有前缀的属性去掉不影响效果。但是,既然是网页,就不会是只有你一个人看的,要是其他用户用的是低版本的浏览器呢?所以,从兼容性角度出发,你最好不要删掉这些属性,除非你能保证其他用户用的浏览器与你的完全一样。
在视频中已经说过了,小程序的设计思想和原生app的设计思想颇为相似,基本的应用单元为页面。当然对于一个页面来说每一个元素的放置位置在哪儿以及显示成什么样子这个是由 样式来决定的 。我们知道在web开发中样式是在css文件中规定的,叫做层叠样式表 (Cascading Style Sheets)。其实在APP中样式的约束也是使用css,在支付宝小程序中也是使用css不过文件的后缀是.acss而且对css3进行了扩充而已。
那么在支付宝小程序中的.acss和微信小程序中的.wxcss没有什么两样。 上边已经说了.acss其实包含了css3那么它还有一些新的特性是css3中不具备的,让我们一一看看
第一次看到这个东西也能猜到他是干什么用的。在css中我们知道规定大小一般使用像素(px)这个单位。比如显示生活中我们说房子128㎡那这儿的单位是平方米,在开发中需要更加精准的大小就是px像素。像素就非常精细了因为在我们显示屏幕中像素是最小的显示单元。这个道理如果不懂的话就找个LED屏幕仔细看,LED屏幕上一个一个的发光二极管可以想象为像素。
我们知道手机屏幕有大有小,就拿iPhone来说,iPhone 6 plus比iPhone 5要大。那么就说明plus的像素比5要多。对比:
加入有一个160px宽度的红色矩形在这两种手机中的位置如下:
rpx(responsive pixel)可以根据屏幕宽度进行自适应。如何自适应呢?看下边的分析:
看下图:
在模块化开发中我们有时候不得不在页面中使用其他的第三方库的样式,而第三方库的样式是保存在第三方包中的,我们不可能全部复制到我们的.acss文件中,那最好的办法就是导入了。在样式表中导入其他外联样式表。
当然仍旧支持内联样式和class属性制定样式类,如
选择器和css3的保持一致。一般有class=”test”类选择器和id=”test”的id选择器。当然在支付宝小程序的样式中特殊的地方就是:
※ .a- 或者 .am-为前缀的选择器已经被系统占用所以不要使用;
※ 不能使用属性选择器,例如,以下写法不被支持:
我之前说过小程序开发的应用单元为页面。其实我们在.axml中写的页面并不包含页面容器,就相当于我们做一个页面但是body标签不用写那如果我们要改变整个页面的背景怎么办呢?其实有一个固定的选择器。例如:
可以通过 page 元素选择器来设置页面容器的样式,比如页面背景色:
在你想改变页面容器的页面中定义该样式也可以,全局定义也可以,例如我想将test这个页面的页面容器背景设置为蓝色,就可以再pages目录下的test目录下找到test.acss在其中定义page的样式
下节是视图层讲解,如果有任何问题可以再下方给我留言或者发邮件到 weiyongqiang@weiyongqiang.com 我在收到邮件后会回复。
akjs是一个基于jQuery的一套构建用户界面的前端框架,插件里包含着移动端常用的功能效果以及简单明了的CSS样式库,对IOS和安卓系统的兼容性很完美,并且支持前后端分离开发和路由模式跳页方式。
AKjs前端框架是Andrew.Kim和他的团队一起研发的基于jQuery的一个轻量级前端框架。它是只要懂jQuery的语法很容易上手的框架。该框架里面现在发布了很多移动端常用的功能效果;开发者们使用过程中功能插件也可以自己扩展增加。另一方面,它是相当于一个丰富的组件化UI框架,优点是开发要前后端分离,项目开发过程中后端通过ajax调用数据的机制。
AKjs是一个基于jQuery的一套构建用户界面的前端框架,插件里包含着移动端常用的功能效果以及简单明了的CSS样式库,对IOS和安卓系统的兼容性很完美。支持前后端分离开发和路由模式跳页方式。它与其他重量级框架不同的是AKjs采用了按需引入插件功能以及所有的UI布局中可以让用户自行发挥写页面,因为它提供的CSS库模块化的很细分,让开发者们可以轻松的解决前端的烦恼。
主要目录和主要文件说明:
index.html --- 走路由模式的DEMO页面 (可查看页面切换效果)
html/demo.html --- 未开启路由模式的DEMO页面
layout/main.html --- 路由模式中整个界面的布局;(该文件夹和文件名可以在路由管理器文件中配置)
router/ --- 通过路由访问的html界面,该文件夹也在路由管理器文件中配置(里面的所有html文件中最底部都调用功能插件的方法)
js/router.js --- 路由管理器(该功能切换页面时无刷新跳页的功能,不使用路由功能时可删除该文件。)
html/ --- 该目录是未开启路由模式的演示版文件;
html/js/common.js --- 未开启路由模式全局方法设置以及功能插件按需引入
js/plugin.js --- 走路由模式的全局方法设置以及功能插件按需引入
js/data.js --- Json数据文件
compress/ --- 功能插件目录,里面的css目录是相关功能插件的样式文件(该路径可在AKjs_Config方法中参数设置)
js/akjs.mobile.js --- AKjs手机端主插件(在项目中建议使用压缩版akjs.mobile.min.js)
css/iconfont --- 图标库 (AK图标库地址:)
css/akjs.mobile.css --- AKjs全局公共样式库(初始使用本插件的开发者们尽量都看看里面的class命名)
css/akjs.animate.css --- AKjs动画库(在animated.css基础上增加了更多的动画效果)
css/theme.default.css --- 所有颜色相关的样式文件
css/style.css --- 自定义样式文件(引入第三方插件时通过该css文件进行覆盖样式)
注:开发正式项目的时候不要用demo.html里的内容,该文件只是静态演示版用的文件。为了更好的体验效果开发项目的时候请使用index.html。
AKjs仅支持http或https协议访问!不支持直接打开本地文件的方式访问!通过本地配置服务器访问或者使用WebStorm软件打开访问即可!
1、直接更改,比如:
xID.style.display = "block"; // 更改display属性,会覆盖css中的定义。
xID.style.display = ""; // 取消js更改display属性,以css样式为准。
这里的xID,是通过id获取的标签。当然,也可能是通过tagName之类的获取的标签。
这种方式,简单直接。但是要修改大量的样式的时候,不适合。所以,我更推荐第二种方式。
2、更改类名
xID.className = "xx yy";
如果有多个类,就用空格隔开。前提,在样式中要有已有类的定义。比如这里的xx和yy类,在css中应该是写好的。
这种方式把所有的样式写在了css文件中,适合更改较多的样式以及炫酷的样式。js就只做一件事情:改类。至于这个类会把标签变成什么样子,交给css吧。
通过jquery也可以达到如上的效果:
$("#xID").css({
fontSize:"12px",
display:"block"
}); // 直接更改样式
$("#xID").addClass("xx"); // 增加删除类
$("#xID").removeClass("xx");