CSS3布局方式有哪些?

html-css012

CSS3布局方式有哪些?,第1张

1.静态布局

——最传统的布局方式,网页中所有尺寸都是由px作为单位,设置了min-width,如果宽度小于就会出现滚动条,如果大于这个宽度则内容居中外加背景

实现方式:PC:居中布局,所有样式使用绝对宽度/高度(px),设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查阅被遮掩部分;

移动设备:另外建立移动网站,单独设计一个布局,使用不同的域名如wap.或m.。

优点:采用之前的css2的布局·方式,布局简单,没有兼容性问题。

缺点: 在手机端不能合理的显示,移动端不能使用pc端页面,需要再写一个布局来呈现。

实践案例:Float 布局、绝对布局

2.自适应布局

——可以看成是不同屏幕下由多个静态布局组成的。自适应布局是为不同的屏幕分辨率分别定义不同的布局。改变屏幕分辨率可以切换不同的静态布局(页面元素位置可能发生改变),但在每个静态布局中,页面元素不随窗口大小的调整发生变化。自适应布局页面里面元素的位置会变化,很好的解决了流式布局中的大屏空间利用率不高弊端。

注:屏幕分辨率变化时,页面里面元素的位置会变化而大小不会变化。

3.流失布局(百分比布局 %)

网页中主要的划分区域的尺寸使用百分数(搭配min-*、max-*属性使用),分别为不同的屏幕设置布局格式,当屏幕大小改变时,会出现不同的布局,意思就是在这个屏幕下这个元素块在这个地方,但是在那个屏幕下,这个元素块又会出现在那个地方。只是布局改变,元素不变。可以看成是不同屏幕下由多个静态布局组成的。

而流式布局的特点是随着屏幕的改变,页面的布局没有发生大的变化,可以进行适配调整,这个正好与自适应布局相补。使用%百分比定义宽度,高度大都是用px来固定住,可以根据可视区域 (viewport) 和父元素的实时尺寸进行调整,尽可能的适应各种分辨率。往往配合 max-width/min-width 等属性控制尺寸流动范围以免过大或者过小影响阅读。这种布局方式在Web前端开发的早期历史上,用来应对不同尺寸的PC屏幕(那时屏幕尺寸的差异不会太大),在当今的移动端开发也是常用布局方式,但缺点明显:主要的问题是如果屏幕尺度跨度太大,那么在相对其原始设计而言过小或过大的屏幕上不能正常显示。因为宽度使用%百分比定义,但是高度和文字大小等大都是用px来固定,所以在大屏幕的手机下显示效果会变成有些页面元素宽度被拉的很长,但是高度、文字大小还是和原来一样(即,这些东西无法变得“流式”

注:屏幕分辨率变化时,页面里元素的大小会变化而但布局不变。

主要实践案例:左侧固定+右侧自适应、左右固定宽度+中间自适应、圣杯布局、双飞翼布局

4.响应式布局(媒体查询)

——通过响应式设计能使网站在手机和平板电脑上有更好的浏览阅读体验。屏幕尺寸不一样展示给用户的网页内容也不一样.利用媒体查询可以检测到屏幕的尺寸(主要检测宽度),并设置不同的CSS样式,就可以实现响应式的布局。主要依靠是css的媒体查询。

注:每个屏幕分辨率下面会有一个布局样式,即元素位置和大小都会变。

5.弹性布局

——rem/em、flex布局

站制作布局用什么方式这个是个很专业的问题,现在都提倡DIV+CSS布局,就如牛商网独有的关键词转化页,也是要求需要用DIV+CSS布局,这DIV+CSS布局到底有何好处呢?

采用CSS进行网站布局特点非常整洁,使内容更加清晰,更容易让设计人员进行分离,不象表格布局充满各种各样的属性和数字,而且很多CSS文件通常是共用的,从而大大缩减页面代码,提高页面浏览速度,采用DIV+CSS代码进行网站制作对关键词排名优化也是有很多的好处。

DIV+CSS是实现WEB标准的主要技术手段之一,WEB标准不仅仅是HTML向XHTML的转换,更重要的是信息结构清晰、内容与表现相分离,而DIV+CSS技术能较好的实现这种思想。因此,我们看到的多数符合标准的页面都是采用DIV+CSS制作。

提倡用DIV+CSS布局来替代传统的Table布局。原因是TABLE布局将表现和内容混杂在一起,结构不清晰、内容不完整,不利于内容的重用。而且从语义上讲,W3C制定TABLE标签时候只是用它来做表格结构定义的,文档中如果有表格,那么就应该用TABLE。而排版、定位这些表现的东西应该由CSS 来控制。

使用Table布局,为了达到一定的视觉效果,不得不套用多个表格,而搜索引擎一般不抓取三层以上的表格嵌套,遇到多层 表格嵌套时,spider通常会跳过嵌套的内容或直接放弃整个页面。使用DIV+CSS布局,页面代码精简,而且表现和代码分离,使网站代码具备较强的语义结构,在方便维护更新的同时,还能获得更好的搜索引擎表现力。事情证明:各大搜索引擎蜘蛛/机器人更喜欢采用DIV+CSS布局的网站。

所谓的DIV+CSS,主要是使用CSS来控制HTML中的各种元素对页面进行布局排版。

在这里写上DIV是为了强调:过去的网页布局主要是使用table标签进行的,而使用table布局不够灵活,所以现在的网站大多数都使用div标签对网页进行整体的布局。

使用CSS和div布局,你可以先把整个网页划分成几块,然后在html里每一块用一个div框起来,然后对相应的div定义CSS,将其放置到网页中相应的位置,完成整体布局。

比如你要要做一个现在你看到的百度知道的页面:页面基本分为了3部分,上面是百度知道的logo、百度的跳转链接、搜索框和按钮;下面的左边是百度知道的当前问题和其回答;右边是用户信息、广告等内容。(这里被我简化了,其实最上面有用户信息条,中间有当前页面在百度知道的路径,最下面还有footer网站信息)

我们就可以在html里写4个div:

<div id="wrap">

<div id="top"></div>

<div id="left"></div>

<div id="right"></div>

</div>

然后给他们定义css

body{text-align:center}/*为了使网页的内容全部显示在中间*/

#wrap{width:960pxmargin:0 auto}/*为了让1024*768的用户能看全,定义了网页的宽度*/

#top{width:100%height:100px}/**/

#left{width:660pxfloat:left}/*向左浮动*/

#right{width:290pxfloat:right}/*向右浮动*/

这样网站的整体布局就完成了。(这部分代码我没有验证,嘻嘻)

注:事实上我给这三个div的命名方式并不是很好,不应该使用它的样式类型或者位置进行定义,而要使用该网页元素的实际内容进行定义。

一般来说要以这个div里面放的内容来定义。比如百度给最上方的用户信息条起名usrbar。这样在给网站改版或者做调整的时候可以明确每个div的意义。

完成整体布局以后,就可以对网页中的每一个区域进行具体的排版。

每一部分的排版,是使用一楼提到的标题、段落、列表、表格、超链接等网页标签,然后使用CSS对标签进行相应的定义,使其达到你预期的效果。

注意:div这类标签也是可以使用的,但是具体用什么标签要看具体情况。(其实你全部使用div都是可以的,如果你不嫌麻烦的话。)使用正确的标签,可以让你的网页代码更容易阅读和修改。比如一般看到网页中出现ul li标签,就可以知道这里定义了列表。用到h1-h7标签一般就是定义不同等级的标题。

具体如何使用CSS布局网页,建议你先学习HTML,然后看一看CSS。这些内容你不一定要背过,但是一定要了解,HTML和CSS都可以做到什么。以后在使用的过程中遇到不懂的就查。没事找几个简单的页面,自己模仿着做下来,多练练手就好了。

推荐教程:你可以去我下面写的网站看看,这里是最基本的教程。CSS部分等你熟悉了最基本的用法后,可以把《精通CSS》看看,这本书的帮助很大,强烈推荐(我自己学这本的)。