玩转CSS3(一)----CSS3实现页面布局

请珍惜小编劳动成果,该文章为小编原创,转载请注明出处。

摘要:

CSS3相对CSS2增加了一些新的布局方式:多栏布局和盒子布局。在这篇文章中,将对CSS2的布局进行简单的回忆,并总结CSS3的布局方式。

DIV+CSS其实是错误的叫法

关于当前的页面布局,很多人都习惯于叫做DIV+CSS,其实这是一种错误的叫法,标准叫法应该叫做XHTML+CSS.
这是为什么呢?传统的页面布局采用的是Table布局,即Table+CSS,后来出现了使用DIV的布局方式,所以人们就把它叫做DIV+CSS,而且有些人认为用DIV+CSS制作的页面才是标准页面,其实这句话是比较狭隘的。
那什么是标准页面呢?WEB标准由结构,表现和行为三部分组成。其中结构话标准语言是XHTML和XML,表现化标准语言是CSS。因为XML比较复杂,大多数浏览器都没有完全支持,故不使用XML来实现页面布局,所以标准的页面布局应该是符合WEB标准的页面布局,即XHTML+CSS。
而XHTML中不仅仅只有DIV标签,还有a,p,ul,li,dl,dt等等标签,所以即使不使用DIV标签,制作的页面也是标准页面,XHTML的各个标签都有其功能,并不是说只能用DIV去实现页面布局(在一本书上有怎么一句话:如果满屏都是DIV,那也算不上标准页面了)
所以说,以后我们要尽可能的说XHTML+CSS,而不是DIV+CSS.

CSS2时代的布局方式

简单点说,CSS2时代是使用float的浮动属性来实现布局的。
layout.css

/* CSS Document *//*基本信息*/
body{
margin:0px;  /*外边距*/
text-align:center; /*文字居中对齐*/
background:#E1D0BB;  /*背景色*/
}
/*页面层容器*/
#container{     
width:80%;
height:100%;
margin-left:10%;
margin-right:10%;
background:#ABE0F1;
}
/*头部*/
#header{
width:100%;
height:15%;
margin:0px;
background:#FF0000;
}#logo{
float:left;    /*浮动属性,居左对齐,使其可以在同一行显示*/
width:60%;
height:80%;
margin:0px;
background:#E18CDD;
clear:left;     /*取消左侧浮动*/
}
#banner{
float:right;   /*浮动属性,居右对齐,使其可以在同一行显示*/
width:38%;
height:80%;
margin:0px;
background:#8376D8;
clear:right;    /*取消右侧浮动*/
}
#menu{
width:100%;
height:5%;
margin:0px;
background:#00FF00;
}
#pageBody{
width:100%;
height:70%;
margin:0px;
background:#00FFFF;}
#footer{
width:100%;
height:10%;
margin:0px;
background:#FFFF00;
}

layout.html

<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<title>布局</title>
<link href="style/layout.css" rel="stylesheet" type="text/css" />
</head><body>
<div id="container"><div id="header"><div id="logo">logo</div><div id="banner">banner</div>container</div><div id="menu">menu</div><div id="pageBody"></div><div id="footer">footer</div>
</div>
</body>
</html>



但是,使用float实现布局会有一些缺点,由于各个div是相互独立的,所以在一个div中加入一些内容后会使得无法对齐,CSS3提供了多栏布局和盒子布局来弥补这种缺点。

多栏布局

layout.css
/* CSS Document *//*基本信息*/
body{
margin:0px;  /*外边距*/
text-align:center; /*文字居中对齐*/
background:#E1D0BB;  /*背景色*/
}
/*页面层容器*/
#container{     
width:80%;
height:100%;
margin-left:10%;
margin-right:10%;
background:#ABE0F1;
}
/*头部*/
#header{
width:100%;
height:15%;
margin:0px;
background:#FF0000;
}#logo{
float:left;    /*浮动属性,居左对齐,使其可以在同一行显示*/
width:60%;
height:80%;
margin:0px;
background:#E18CDD;
clear:left;     /*取消左侧浮动*/
}
#banner{
float:right;   /*浮动属性,居右对齐,使其可以在同一行显示*/
width:38%;
height:80%;
margin:0px;
background:#8376D8;
clear:right;    /*取消右侧浮动*/
}
#menu{
width:100%;
height:5%;
margin:0px;
background:#00FF00;
}
#pageBody{
width:100%;
height:70%;
margin:0px;
background:#00FFFF;
-moz-column-count:4;       /*多栏布局:火狐浏览器中需要的格式,表示列数*/
-moz-column-gap:10px;      /*列之间的间隔*/
-moz-column-rule:1px solid red;   /*在列之间加一条红色的线*/-webkit-column-count:4;    /*多栏布局:safari和chrome需要的格式*/
-webkit-column-gap:10px;   /*列之间的间隔*/
-webkit-column-rule:1px solid red;   /*在列之间加一条红色的线*/
}
#footer{
width:100%;
height:10%;
margin:0px;
background:#FFFF00;
}

layout.html
<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<title>布局</title>
<link href="style/layout.css" rel="stylesheet" type="text/css" />
</head><body>
<div id="container"><div id="header"><div id="logo">logo</div><div id="banner">banner</div>container</div><div id="menu">menu</div><div id="pageBody">内容省略</div><div id="footer">footer</div>
</div>
</body>
</html>

效果图:


盒子布局

hezi.css
/* CSS Document *//*基本信息*/
body{
margin:0px;  /*外边距*/
text-align:center; /*文字居中对齐*/
background:#E1D0BB;  /*背景色*/
}
/*页面层容器*/
#container{     
display:-moz-box;
display:-webkit-box;
}
#left_side{
width:200px;
height:200px;
margin:20px;
padding:50px;
background-color:#FF0000}
#center_side{
width:200px;
height:200px;
margin:20px;
padding:50px;
background-color:#00FF00
}
#right_side{
width:200px;
height:200px;
margin:20px;
padding:50px;
background-color:#FFFF00;
}
#left_side,#center_side,#right_side{      /*实现盒子布局*/
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
}
#down_left{
-moz-box-flex:1;        /*可根据内容自动调整大小,实现弹性盒子,此为火狐下的格式*/
-webkit-box-flex:1;
padding:20px;
margin:20px;
background-color:blue;
}
#down_left{
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
}
hexi.html
<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<title>布局</title>
<link href="style/hezi.css" rel="stylesheet" type="text/css" />
</head><body>
<div id="container"><div id="left_side">百度</div><div id="center_side">谷歌</div><div id="right_side">淘宝</div><div id="down_left">亚马逊</div>
</div>
</body>
</html>

效果图:

如果想要让盒子垂直分部,可以在将container改为:
#container{     
display:-moz-box;
display:-webkit-box;
-moz-box-orient:vertical;   /*垂直分布*/
-webkit-box-orient:vertical;
}

这里仅给出了大致的布局方式,关于更多的属性,大家可以阅读相关的书籍和资料。




版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/dingxiaoyue/p/4931792.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openglshader实现虚拟场景_云桌面,实现办公终端的统一管理与运维

随着无纸化办公和智能化办公的不断推进&#xff0c;在办公过程中传统PC电脑的缺点愈发凸显。传统电脑的性能会随着使用时长增加而降低&#xff0c;系统维护处理时效性较弱&#xff0c;出现问题需要运维人员到现场解决&#xff0c;费时费力。如果出现更换设备的情况&#xff0c;…

前端 == Ajax

Django-Ajax 1.目录 ajax 准备知识&#xff1a;json ajax 简介 jquery 实现的ajax js 实现的ajax jquery.serialize() 上传文件 同源策略与jsonp 2.准备知识&#xff1a;json 1.什么是 json ? 个人回答&#xff1a; json 的作用是 数据交换格式。&#xff08;通过序列化和反序…

Objective-c 程序结构

类是Objective-c的核心&#xff0c;Objective-c程序都是围绕类进行的。Objective-c程序至少包含以下三个部分&#xff1a; 1、类接口&#xff1a;定义了类的数据和方法&#xff0c;但是不包括方法的实现代码。 2、类实现&#xff1a;仓储 了实现类方法的代码。 3、应用程序&…

WordPress 5.0 换回老版”Classic Editor”经典编辑器教程

WordPress 5.0 正式采用了全新的“Block Editor”编辑器&#xff0c;从而替换了原有“Classic Editor”编辑器&#xff0c;相信有很多人和子凡一样会不习惯或者不喜欢新编辑器&#xff0c;那么新版 WordPress 该如何换回原来的 WordPress 编辑器呢&#xff1f; 不可否认 WordPr…

html5视频播放

<video width"320" height"240" controls"controls"> <source src"test.mp4" type"video/mp4"> Your browser does not support the video tag. </video> IE9对于video标签确实是不支持的&…

判断是否存在此对象_JVM的垃圾回收机制,判断对象是否死亡

这节我们主要讲垃圾收集的一些基本概念&#xff0c;先了解垃圾收集是什么、然后触发条件是什么、最后虚拟机如何判断对象是否死亡。一、前言我们都知道Java和C有一个非常大的区别就是Java有自动的垃圾回收机制&#xff0c;经过半个多世纪的发展&#xff0c;Java已经进入了“自动…

Software--Developer Tools_

Log4net 日志框架 由 Java log4j 移植到 .Net 平台的开源日志框架。 http://logging.apache.org/log4net/index.html 转载于:https://www.cnblogs.com/masterSoul/p/7832317.html

界面布局-(资料收集)

jQuery多列网格式拖动布局插件Gridster.js

MFC学习中遇到的小问题和解决方案

MFC学习中遇到的小问题和解决方案 1 清除combox里面的内容 ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent();//消除现有所有内容2 如何获取鼠标指针的位置GetWindowRect 详情见657面 超市管理系统 3 如何获取combox下拉列表的索引&#xff1b;int selgetcursel;get…

linux 进程监控和自动重启的简单实现

目的&#xff1a;linux 下服务器程序会因为各种原因dump掉&#xff0c;就会影响用户使用&#xff0c;这里提供一个简单的进程监控和重启功能。 实现原理&#xff1a;由定时任务crontab调用脚本&#xff0c;脚本用ps检查进程是否存在&#xff0c;如果不存在则重启并写入日志。 1…

建造者模式(Builder)

建造者模式&#xff08;Builder&#xff09;   工厂类模式提供的是创建单个类的模式&#xff0c;而建造者模式则是将各种产品集中起来进行管理&#xff0c;用来创建复合对象&#xff0c;所谓复合对象就是指某个类具有不同的属性&#xff0c;其实建造者模式就是前面抽象工厂模…

万兆网卡实际吞吐量_AKITIO 10G/NBASE-T PCIe 网卡开箱拆解评测

前言今天来到koolshare评测室的是AKITIO的10G/NBASE-T PCIe扩展网卡(官网链接)&#xff0c;采用PCIe2.0 x4接口&#xff0c;支持10G/5G/2.5G/1G/100Mbps&#xff0c;可以在100m的CAT-6A线缆上达到最高10Gbps的链接速率&#xff0c;或者在100m的CAT-5e线缆上达到最高5Gbps的链接…

thinkphp 学习 (资料收集)

thinkphp 官网&#xff1a; http://www.thinkphp.cn/ ThinkPHP6入门指南 https://www.kancloud.cn/madnesslin/thinkphp ThinkPHP5.0.24完整版 http://www.thinkphp.cn/down/1278.html ThinkPHP5.0完全开发手册 https://www.kancloud.cn/manual/thinkphp5/118003

EF实体框架数据操作基类(转)

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述&#xff1a;实体框架数据仓储的操作接口&#xff0c;包含增删改查接口////------------------------------------------------------------…

【RabbitMQ】8、RabbitMQ之mandatory和immediate

1. 概述 mandatory和immediate是AMQP协议中basic.publish方法中的两个标识位&#xff0c;它们都有当消息传递过程中不可达目的地时将消息返回给生产者的功能。对于刚开始接触RabbitMQ的朋友特别容易被这两个参数搞混&#xff0c;这里博主整理了写资料&#xff0c;简单讲解下这两…

获取异常信息_如何在 ASP.NET Core 中实现全局异常拦截

异常是一种运行时错误&#xff0c;当异常没有得到适当的处理&#xff0c;很可能会导致你的程序意外终止&#xff0c;这篇就来讨论一下如何在 ASP.Net Core MVC 中实现全局异常处理&#xff0c;我会用一些 样例代码 和 截图 来说明这些概念。全局异常处理其实在 ASP.Net Core MV…

Hadoop学习笔记—15.HBase框架学习(基础知识篇)

Hadoop学习笔记—15.HBase框架学习&#xff08;基础知识篇&#xff09; HBase是Apache Hadoop的数据库&#xff0c;能够对大型数据提供随机、实时的读写访问。HBase的目标是存储并处理大型的数据。HBase是一个开源的&#xff0c;分布式的&#xff0c;多版本的&#xff0c;面向列…

室内地图 - (资料收集)

基于HTML5 Canvas绘制的支持手势缩放的室内地图 https://blog.csdn.net/licaomengRICE/article/details/50116781 室内地图制作流程 https://wenku.baidu.com/view/5dd7d6ba960590c69fc37604.html 使用JOSM绘制室内地图及路径&#xff08;一&#xff09; https://blog.csdn.…

C#异常处理机制初步

原地址&#xff1a;http://www.sudu.cn/info/html/edu/net/20071227/50446.html 一、c&#xff03;的异常处理所用到关键字 try 用于检查发生的异常&#xff0c;并帮助发送任何可能的异常。 catch 以控制权更大的方式处理错误&#xff0c;可以有多个catch子句。 finally 无论是…

scss常用(一)

charset "utf-8"; /* 页面中两边留下的空白 */ /* */ //间距 $generalMargin:2.86rem/2; $titleMargin:1.43rem/2; $moreBigMargin:4.29rem/2; $bigMargin:3.57rem/2; $smallMargin:2.14rem/2; $smallerMargin:1.5rem/2;/* *//* */ //尺寸 $bigFont:3.14rem/2; $m…