css3设计模式,常用布局

html-css08

css3设计模式,常用布局,第1张

1.css3常用的布局有多栏布局、多列布局、弹性布局、流式布局、瀑布流布局和响应式布局。

2.float浮动布局,absolute绝对定位,flex弹性盒子,table表格布局,grid网格布局 / 栅格化布局

3.移动端布局:流式布局(百分比布局)JD,flex弹性布局(强烈推荐)携程,less+rem+媒体查询布局 苏宁,

css设计模式

OOCSS——Object Oriented CSS

SMACSS——Scalable and Modular Architecture for CSS

垂直水平均分:

子元素纵向等距排列:

总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距

IE盒子模型width=width(margin+padding) 解决IE8及更早版本不兼容问题可以在HTML页面声明 <!DOCTYPE html>即可。

网页中HTML5与CSS3的应用

下面是我为大家搜索整理的关于网页中HTML5与CSS3的应用,欢迎参考阅读,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生培训网!

网页技术的发展和进步,使得网页的功能朝着越来越丰富的方向发展,网页计算机设计技术也在这样的情况下得以不断融合。比如HTML5与CSS3两者之间的融合,为网页设计打开了全新的局面,有利于提升网页设计的效益。因此,积极探究HTML5与CSS3的在网页设计中的应用,显得尤为必要。

1 HTML的发展,特性和应用

1.1 HTML的发展历程

HTML英文翻译全称为超文本标记语言,是用来描述网页文档的标记语言。1991年Tim Berners-Le编写了名称为HTML标签的文档,里面涉及到20多个标记网页的HTML标签,他在借用SGML标记格式之后,形成了HTML的标记格式,由此打开了HTML的发展历史:(1)从IETF到W3C的转变。实际上HTML的第一个官方版本是有IETF推出的HTML2.0。早在1994年的时候,有浏览器就在这样的超文本语言标准下实现了文档嵌入图片,并且以img的标签纳入到HTML2.0体系中去。随后W3C渐渐成为HTML的标准组织,在对于HTML多数的修改之后,终于在1999年的时候推出了HTML4.0。(2)XHTML1,具备XML风格的HTML。继HTML4.0之后,出现了第一次修订的版本,那就是XHTML1.0,其关注于其扩展方面的效能,因为其对于语法方面的严格要求,并没有在使用方面表现出随意性,影响到此版本的使用效益。但是此时CSS的不断崛起,也使得网页设计者意识到XHTML的应用前景。(3)W3C推出XGTML1.1,XHTML1.1再也无法使用直接输出,即使此时网页设计者使用此版本的语言,但是由于主流浏览器的不支持,就使得其陷入到被架空的地步。(4)W3C推出了XHTML2,但是由于其在兼容方面的问题,难以发挥其效能,接着越来越多的主流浏览器开始对于W3C的开发行为提出反对,并且要求在HTML的基础上实现新的拓展,在没有达成共识之后,主流浏览器自发组织成立了超文本应用技术小组,那就是WHATWG,他们关注于Web Forms2和Web Appsl,并且将其融合在一起,形成了全新的HTML5的规范。

1.2 HTML的特性

从本质上来讲,HTML文档制作的过程并不是很复杂,很多时候都可以依靠其强大的功能去进行处理,甚至支持不同数据格式文本的嵌入。具体来讲其特性主要体现在以下几个方面:(1)简易性,基于超集方式可以使得其升级变得更加灵活和方便(2)扩展性,有着较强的扩展性(3)平台无关性,对于应用平台没有过多的要求。

1.3 HTML的应用

HTML技术体系不断完善,功能越发强大,在网页设计过程的应用也越来越频繁。一般情况下,HTML作为基本标记语言,主要在以下几个方面发挥效能(1)实现静态网页的编写,多数情况下以.html为结尾的网址就是在HTML的基础上诞生的,通常看到的网页源代码就是标记语言(2)实现动态网页的编写,主要会以PHP或者ASP等语言方式去呈现网页的动态效果。

2 CSS的发展、特性和应用

2.1 CSS的发展历程

1994年哈坤利提出构建CSS的提议,当时正在设计一款浏览器的伯特・波斯与其实现合作,开展了CSS的设计工作。在当时CSS作为第一个含有层叠意识的语言,给予读者和作者更多的自由行,以实现设计效益的提升。随后他们在1994年芝加哥的一次会议上展示了CSS,随后两人就组织成立了技术小组,终于在1996年完成了CSS,次年12月份第一本公开版本被出版。1997年初,W3C内组织了专管CSS的工作组,并且在1998年推出了第二个版本CSS2.1。CSS3现在还处于开发中,CSS 3在包含了所有CSS 2所支持的基础上更有所改进。

2.2 CSS的特性与应用

CSS中文翻译为层叠样式表单,其可以很方便的运用到网页外观控制上去。具体来讲,其特性主要体现在以下几个方面:(1)可以同时实现多个网页样式的更新(2)使得网页的表示层和结构层处于分离的状态,不至于受到彼此的影响(3)使得网页文件的大小得到了缩减(4)对于提升网页加载速度来讲,有着积极作用。因此,CSS样式表被大量运用到网页设计实践工作中去。

3 HTML与CSS在网页设计中的应用

从理论上来讲,HTML和CSS3有着自己的优势和特点,关注的方向也存在差异性,运用的领域也展现出很多的不同之处。但是随着近几年网页设计理念的革新,网页设计的范围被延展,移动终端的不断出现,越来越多的设计人员开始意识到其两者的融合,可以在促进网页设计工作质量提升方面发挥着巨大的作用。当HTML5与CSS3在网页设计方面的融合效益被展现出来之后,就有越来越多的网页设计人员开始参与到探索和尝试中去,遵循两者之间的不同之处,充分发挥各自的优势,解决当前各种困难,已经成为当前网页设计人员的公司。笔者结合自身从事网页设计的工作经验,认为两者之间的融合运用可以在以下几个方面发挥积极效能。

3.1 在移动上网平台中的设计运用

从当前网页设计的工作来看,HTML5与CSS3是使用率比较高的技术模式,尤其在移动网页设计,网页表单制作的过程中发挥着越来越重要的作用。我们知道,传统的移动上网设备由于配置方面的问题,其网页浏览的功能往往受到局限,或者不能看视频,或者不能获得高清的效果,为了解决这样的问题很多网站都在创建移动互联网版本,往往消耗大量的人力和物力。但是如果在此网格设计的过程跟踪,充分利用HTML5与CSS3的话,不仅仅可以实现跨平台操作,还能够使得用户获得最佳的用户体验。以网页界面大量图片插入为例,传统模式下不仅仅会使得网页运行速度受到制约,还会使得客户的.体验度不断降低。此时利用HTML5和CSS3技术,设计出有效的网页表单交互设计模型,如此一来就可以避免网页运行速度缓慢的问题。

3.2 在跨浏览器调整方面的设计应用

不得不承认的是在HTML5和CSS3技术帮助下,的确可以使得设计者获得更多的设计工具和方法,但是难以实现在跨浏览器的调整,如果出现特殊版本的因特网搜索引擎的话,就需要对于附加设置和帮助进行识别。为了能够解决这样的难题,可以尝试以HTML5SHIM的开放的JAVASCRIPT文件对于网络搜索引擎进行识别。当然此项功能不能仅仅依靠搜索引擎本身。另外还可以对于页面结构进行调整和编辑,在网页可编辑的区域,利用Ajax实现更新内容的保存,并且将其纳入到数据库中去,以便在任何时候都可以对于对应的数据信息进行访问。当然HTML5与CSS3的功能的确强大,但是还难以进行跨浏览器的操作,但是这将是未来两者实现更好融合的切入点,也是网页设计的发展趋势。

综上所述,HTML5与CSS3的发展和进步,是无数网页设计人员艰苦奋斗的结果,其在提升网页设计效果,增强其用户体验度方面发挥着越来越重要的作用。尤其在当前各种语言技术相互融合,彼此之间的交叉不断出现,统一的标准和规范,可供扩展的接口,都为实现技术的融合和发展营造了良好的外在环境。人们需要看到的是HTML5与CSS3之间的关系也是不容忽视的,两者之间存在的各种异同点都会为两者的融合效益发挥打下基础。作为网页设计人员应该树立发展的理念,正确认识这两者之间的关系,不断将两者运用到网页设计的工作中去,以发挥两者的融合效应。

很长一段时间, 我知道有 flex 这个布局方式, 但是始终没有去学它. 3点原因:

最近由于开发需要, 学习了下WeUI的实现 , 发现里面大量使用了 flex 布局, 于是决定学习一下.

Flexbox Layout , 官方名为 CSS Flexible Box Layout Module , 意为"弹性布局", 是CSS3中引入的一种更加灵活高效的布局/对齐/排序方式(还有一种更适合大型布局的 网格布局 CSS Grid Layout Module ). flex 是 flexible 的缩写.

任何一个容器都可以指定为flex布局。

行内元素也可以使用flex布局。

采用flex布局的元素被称为 flex容器 (flex container) , 它的子元素即为 flex元素 (flex item) .

flex容器中包含两个相互垂直的轴, 即 主轴 (main axis) 副轴 (cross axis) .

flex元素沿主轴从 主轴起点 (main start) 主轴终点 (main end) 依次排布.

如果flex容器包含多行flex元素, 则 flex行 (flex lines) 沿副轴从 副轴起点 (cross start) 副轴终点 (cross end) 依次排布.

单个flex元素占据的主轴空间叫做 主轴长度 (main size) , 占据的副轴空间叫做 副轴长度 (cross size) .

Getting Dicey With Flexbox 中提到:

前一段时间同事做过 video 相关的开发, 踩到各种坑, 因此我知道 video 的支持不那么好, 特别是在Android上. 让我惊奇的是 flex 竟然比 video 的支持更好?

从 CanIUse 的数据来看, flex 的支持度是: 82.65% (支持) + 14.17% (部分支持) = 96.81% , 而 video 的支持度是: 92.48% . 浏览器对 flex 的支持好像并没有特别好...

但是有微信的WeUI使用了 flex 布局, 我觉得在移动端 flex 应该还是支持度比较高的.

所以, 如果你是做移动端开发的, 可以优先考虑 flex .

下面就开始介绍与 flex 布局相关的属性. 以作用对象分为两组, 第一组作用于flex容器, 第二组作用于flex元素.

注意: 以下属性值都可以有 initial (该属性的默认值)和 inherit (继承自父元素), 本处省略.

这类属性有6种, 分别为:

注意:

注意: row 和 row-reverse 受到了 direction 属性(默认值为 ltr , 可改为 rtl )的影响.

注意: 此属性只在flex容器中有 多行 flex元素时才有作用.

这类属性有6种, 分别为:

注意: flex元素的 float , clear 和 vertical-align 会失效.

当flex元素有父元素时, 它的 align-self: auto 即为父元素的 align-items 属性否则(无父元素时), 相当于 stretch .

当有剩余空间时, flex元素会根据 flex-grow 按比例分配剩余空间.

默认值 0 代表, 即使有剩余空间, 该flex元素也不放大.

当flex容器空间不足时, flex元素会根据 flex-shrink 按比例缩小.

flex-shrink 为 0 则表示, 即使flex容器空间不足, 该flex元素也不缩小.

flex-basis 定义了分配剩余空间之前flex元素的初始大小, 可为长度值(如 20% , 5rem 等)或 auto 等关键词.

flex-basis: auto 表示, 以 flex元素的主轴长度 为 flex-basis . 若flex元素的主轴长度也是 auto , 则以flex元素内容(即所有子元素)的大小为 flex-basis .

除了 auto 还有 content , max-content , min-content 和 fit-content 关键词, 但是现在浏览器对它们的支持太少, 可以忽略.

(敲黑板) 同学们注意, 这里是重点!

这里的 可选值 我参照了 W3C flexbox 的写法. 其中:

举例来说, a | [ b || c ] 包含的可能情况有 a , b , c , b c , c b .

现在回过头来再看 none | [ <‘flex-grow’><‘flex-shrink’>? || <‘flex-basis’>] 就清晰多了.

注意, none 是一个特殊值, 相当于 0 0 auto .

另外, 如果 flex 中不指定:

注意: flex 的初始值是 0 1 auto , 即由每个 flex 因子本身的默认值组成(比方说 flex-grow 的默认值就是 0 ).

但是 , 如果利用 flex 设置了至少一个 flex 因子, 那么没被设置的那些 flex 因子的默认值(按grow, shrink, basis的顺序)分别是 1 1 0 .

我来举几个栗子.

W3C建议使用简写形式 flex , 因为它可以方便地应对下面4种 常见情况 .

自此, 我们已经知道了 flex-grow , flex-shrink 和 flex-basis 的作用. 根据这三个值, 计算flex元素的大小只需三步:

第一步: 计算元素的 flex-basis , 有两种情况: 1. 具体的长度值, 或, 2. auto (即flex元素的大小). (这里忽略了 content 等目前支持还不完善的关键词).

第二步: 计算剩余空间, 即 剩余空间 = flex容器的内部空间 - flex元素flex-basis值的总和 .

第三步: 按照 flex 因子(放大时为 flex-grow 缩小时为 flex-shrink )分配剩余空间到每个元素. flex元素的最终大小 = flex-basis - flex-factor * 剩余空间 .

举个栗子.

假设flex容器的内部空间为 200px , flex元素的大小的总和是 160px . 看起来, 还有 200 - 160 = 40px 的剩余空间, 应该放大flex元素, 是不是? 不一定! 要看它们的 flex-basis 总和.

假设它们的 flex-basis 总和是 300px , 那么剩余空间应该是 300 - 200 = -100px . 此时剩余空间是 负数 , 应该以 flex-shrink 对每个flex元素在 flex-basis 的基础上进行 缩小 .

下例中, 所有flex元素本身的大小为 80px , 元素中为 flex 值.

200px

0 1 auto

0 3 auto

0 1 150px

0 3 150px

125px

75px

你可以看到, 第一行的flex元素因为设置了 flex-basis:auto , 所以它们的 flex-basis 就相当于元素大小, 即 80px , 即 flex-basis 总和为 160px , 不足容器的 200px 空间, 此时应该放大元素. 但又由于元素的 flex-grow 为 0 , 所以每个元素分配到 0 * 40 = 0px 的剩余空间, 即不放大.

第二行的flex元素设置了 flex-basis:150px , 所以它们的 flex-basis 总和为 300px , 超过了容器的 200px 空间, 故按照 flex-shrink (比例为 1:3 )进行缩小. 由于剩余空间为 -100px , 所以第一个元素应缩小 25px 变成 125px , 第二个元素应缩小 75px 变成 75px .

绝对flex: 从0开始分配空间.

第一行中 flex-basis 为 0 , 表示每个flex元素的初始大小都视为 0 . 此时, 剩余空间就是"flex容器的大小".

相对flex: 从flex元素大小开始分配空间.

第二行中 flex-basis 为 auto , 表示每个flex元素的初始大小都是它本身的大小. 此时, 剩余空间就是"flex容器的大小 - flex元素大小的总和".

呃... flex的东西还是挺多的, 特别是 flex 因子相关的部分, 得花点儿时间理解.

但是, 我相信学flex是值得的, 谁用谁知道!