第二天 一列布局

简介: 今天我们开始学习《十天学会web标准(div+css)》的一列布局,包含以下几种形式: 一列固定宽度 一列固定宽度居中 一列自适应宽度 一列自适应宽度居中 一列二至多块布局 前一节我们回顾了xhtml基础和css基础部分,今天我们正式开始使用网页制作软件——adobe公司出品的dreamweaver来开始网页设计之旅。

今天我们开始学习《十天学会web标准(div+css)》的一列布局,包含以下几种形式:

  • 一列固定宽度
  • 一列固定宽度居中
  • 一列自适应宽度
  • 一列自适应宽度居中
  • 一列二至多块布局

前一节我们回顾了xhtml基础和css基础部分,今天我们正式开始使用网页制作软件——adobe公司出品的dreamweaver来开始网页设计之旅。相信之前您已经用过这个软件了,具体怎么使用我就不讲了。为了照顾部分朋友,今天课程的css部分我们是以可视化生成方式,不过建议大家能手写的尽量还是手写,这样有助于提高效率。

一、一列固定宽度

我们先看一下一列固定宽度,首先要新建一个页面:

注意:这里的文档类型是过渡型,目前我们采用这种宽松验证方式。

接下来在页面中插入一个div标签,我们可以点击工具栏的“插入DIV标签”按钮,在打开的对话框中ID项给这个div命一下名,我们给它起个名叫layout(名称根据自己需要命名)。

插入div后,在右侧的css样式面板中,定义id为layout的样式,确定后在打开的css编辑对话框的方框选项中设计宽度500,高度300。为了看清楚起见,我们把这个div设置个背景色,这样就能预览出大小和位置了。

这里选择高级,然后在选择器中填写:#layout,如果是选中div后,再点击添加,它会自动添加上。因为是定义ID,所以前面需要加#,后面会有id和class的详细讲解

我们预览一下,看看在IE中的显示效果,一列固定宽度就这样做成了,简单吧!CSS代码及在IE中显示如下:

<style type="text/css">
#layout { height: 300px; width: 400px; background: #99FFcc; }
</style>

 


   提示:可以先修改部分代码后再运行

 

二、一列固定宽度居中

一列固定宽度居中和一列固定宽度相比,我们要解决的问题就是居中。这里我们用到css的外边距属性:margin。在IE6及以上版本和标准的浏览器当中,当设置一个盒模型的的margin:auto;时,可以让这个盒模型居中。我们下边在css样式表中加上这个属性看看效果:

#layout { height: 300px; width: 400px; background: #99FFcc; margin: auto; }

在dreamweaver的设计视图中我们选中看看,是不是已经居中了,我们再在IE下预览一下,同样居中。

 

 


   提示:可以先修改部分代码后再运行

 

三、一列自适应宽度

自适应宽度是相对于浏览器而言,盒模型的宽度随着浏览器宽度的改变而改变。这时要用到宽度的百分比。当一个盒模型不设置宽度时,它默认是相对于浏览器显示的。我们把刚才的固定宽度例子中的宽度去掉看看:

#layout { height: 300px; background: #99FFcc;}

有些朋友可能要问了,那为什么还有那么宽的白边呢?这个是由body默认的外边距造成的。当我们不用任何样式表进行定义时,body,h1-h6,ul等元素默认有外边距或其它样式的。这里我们在css样式中增加一项:body {margin:0;},就可以把body默认的外边距去掉,这时再预览一下,白边就没了。

body { margin: 0px; }
#layout { height: 300px; background: #99FFcc;}

这里的选择器类型是新手朋友最容易迷糊的地方,类:是指定义一个class,可以多个对象引用;标签:指对默认的html标签进行重新定义,如可以定义body{margin:0},意思是 将body的外边距设置为0,h2{color:#f00}是将所有h2标签的文字颜色设置为红色;高级它把ID和伪类放到一块了,是一个设置不合理的地方,在cs4版本中已经分开了。ID是以#开始,id只能作用于一个对象,不能作用于多个对象,优先级高于class,这是id和class的区别。伪类会在第九节时详细讲解

如果我们需要按浏览器的80%显示,那么设置宽度为80%,当改变浏览器窗口大小时,盒模型的宽度也会跟着改变。

 


   提示:可以先修改部分代码后再运行

 

四、一列自适应宽度居中

同样和固定宽度居中一样,我们只需要设置div的外边距为auto即可实现居中了。

body { margin: 0px; }
#layout { margin:auto; height: 300px; background: #99FFcc; width: 80%; }

 


   提示:可以先修改部分代码后再运行

 

五、一列二至多块布局

一般的网站整体可以分为上中下结构,即:头部、中间主体、底部。那么我们可以用三个div块来划分,分别给它们起名为:头部(header)、主体(maincontent)、底部(footer)。

采用固定宽度居中的方式,代码如下:

body { margin:0; padding:0;}
#header { margin:5px auto; width:500px; height:80px; background:#9F9;}
#main { margin:5px auto; width:500px; height:400px; background:#9FF;}
#footer { margin:5px auto; width:500px; height:80px; background:#9f9;}

为了便于区分,在背景项里设置了背景色,这里不在贴图。依此类推,把另外两个div块给置好,整个效果就出来了。这是一个大多数网站采用的上中下布局结构。

 


   提示:可以先修改部分代码后再运行
 

 

许多朋友在问:为什么两个相邻的容器中间的间距不是10px,而是5px呢?按照我们正常的理解,认为应该是两个值相加,其实这里是两个合并后取最大值。用css手册中的话说:块级元素的垂直相邻外边距会合并,而行内元素实际上不占上下外边距。行内元素的的左右外边距不会合并。同样地,浮动元素的外边距也不会合并。允许指定负的外边距值,不过使用时要小心(有关块级元素和行内元素的概念在下一节讲到)。

六、小结

本节课涉及到以下知识点:

1、CSS可视化生成、格式化

本教程便于新手学习,采用dw的css可视化生成方式,熟练后的朋友尽量手写,这样可以提高工作效率。目前来说,希望常用的大家都能记住。关于css的格式化,指css的排版方式,细心的朋友已发现,我在这里贴出的css代码,每个类或ID都是写在一行的。可能你的还是分成多行,怎么把它们弄到一行上呢?请看下面的代码和图示:

body {
margin:0;
padding:0;
}
#header {
margin:5px auto;
width:500px;
height:80px;
background:#9F9;
}
#main {
margin:5px auto;
width:500px;
height:400px;
background:#9FF;
}
#footer {
margin:5px auto;
width:500px;
height:80px;
background:#9f9;
}

经过以上三步之后,看看,你的代码是不是和我的一样了。还

2、CSS缩写

css的许多属性是可以简写的,这样便于阅读和修改,减少代码量,设置方法如下:

把需要缩写的项目选中,再生成的css代码即为简写形式了。这里所说的是多个属性合并到一块的简写方式,另外像颜色值了也可以简写的。比如颜色值为#ff6600;可以简写为#f60;两位两位一样的才可以简写,像#c2c2c2是不可以简写的。

3、CSS语法

如图所示,CSS语法由如下三部分构成,选择器:可以是ID、CLASS或标签;属性和值是用来定义这个物件的某一个特性。如一张桌子的长120cm,宽60cm,套用css的格式为,桌子{长:120cm;宽:60cm;},这样是不是容易理解。

4、ID和CLASS选择器

id只能在页面中对应一个元素,就像我们的身份证号一样,每个人的都不一样;class为类,可以对应多个元素,比如说一年级三班的学生,它所对应的可能是10个20个学生。

id的优先级高于class,比如说今天三班的学生上体育课,小明留下来打扫卫生。那么三班的学生上体育课这是一个类,而小明打扫卫生这是个id,虽然小明也是三班的学生,但id高于class,所以小明执行打扫卫生的任务。

目录
相关文章
|
6月前
一个满屏品布局怎么设计?
一个满屏品布局怎么设计?
|
29天前
|
JavaScript
手搓日历组件,大屏样式最佳解决方案!
【10月更文挑战第6天】手搓日历组件,大屏样式最佳解决方案!
38 4
手搓日历组件,大屏样式最佳解决方案!
|
前端开发
「CSS畅想」周期性事情怕忘,来看看一个月内都安排在哪天
前端玩转CSS,可以创造出不少有趣的效果。今天实现了一个周期性日期获取功能,小功能大用处。
125 1
|
JavaScript Android开发 数据安全/隐私保护
移动端爬坑记 --- (1)布局与样式上的奇葩偶遇
Flex想要兼容众多花样式手机,要注意以下这么些 • 前缀要考虑2009~2012年的语法[webkit-box,flex,flex-box] • 少用复合属性,比如flex:1,考虑兼容理应拆成[flex-grow,flex-shrink,flex-basis];flex-flow拆开成[flex-direction,flex-wra
144 0
|
数据可视化 5G 定位技术
折叠屏已经不新鲜了,明天你可能会用上“伸缩屏幕”!
尽管智能手机已经如此便捷灵活,却一直在竭力克服一个看上去最基本的问题:显示屏太小。诚然,一些电话已经做的比通常更大以提供更大的显示空间。但是如果手机做得过大以至于裤兜都无法容纳,这在很多人看来是不能接受的。
139 0
折叠屏已经不新鲜了,明天你可能会用上“伸缩屏幕”!
|
前端开发 容器
前端应知应会:flex布局详解
前端应知应会:flex布局详解
188 0
|
XML SQL 监控
一周的闪念胶囊,总有一个能帮助到你
1、不管是做需求还是测试,都应该考虑整个链路,确保兼容性或者其他模块不受影响。比如内容创作改动,应该考虑到审核侧、内容分发侧是否正常。 2、需求一定要经过测试。不要站在自己的角度,以为测试人员无法测试某种场景。因为方法总比困难多,比如可以把链路当中修改的点单独拎出来进行对比测试。还要多提一点的是,尽量在代码修改处添加日记,确保测试能覆盖到。 3、输出日记时也要避免空指针异常。如果在业务逻辑中不会出现空指针异常,却在输出日记时抛异常,那真的是冤大头了。 4、批量回刷或者删数据有风险,特别是无法恢复的物理硬删除。所以此类场景应该由用户主动触发,而不是借助定时任务批量执行。 5、数据和操作行
135 0
|
索引 Python
滑动宫格验证码都给碰上了?没事儿,看完此文分分钟拿下
本节我们将介绍新浪微博宫格验证码的识别。微博宫格验证码是一种新型交互式验证码,每个宫格之间会有一条指示连线,指示了应该的滑动轨迹。我们要按照滑动轨迹依次从起始宫格滑动到终止宫格,才可以完成验证,如下图所示。