APP下载

关于DIV+CSS网页布局的设计与实现

2021-12-24刘心美

科技资讯 2021年30期

刘心美

摘 要: 按W3C标准,Web前端开发技术要实现结构、表现、行为相分离的设计方式。前端技术内容主要是利用HTML进行页面的结构排版、CSS进行页面的样式设计、Javascript实现页面的交互、Ajax技术进行数据的请求。该文以DIV+CSS网页布局技术为核心,论述了其网页布局技术的设计流程、设计思路和具体过程。

关键词:DIV+CSS  普通流  浮动流  定位流

中图分类号:TP393.092   文献标识码:A      文章编号:1672-3791(2021)10(c)-0000-00

Design and Implementation of DIV + CSS Web Page Layout

LIU  Xinmei

(Changchun Polytechnic, Changchun, Jilin Province,130033 China)

Abstract: According to W3C standard, Web front-end development technology should realize the design method of separating structure, performance and behavior. The front-end technology mainly uses HTML for page structure layout, CSS for page style design, Javascript for page interaction, and Ajax technology for data request. Taking DIV + CSS web page layout technology as the core, this article discusses the design process, design ideas and specific process of its web page layout technology.

Key Words: DIV + CSS ; Status; Float; Position

隨着Internet技术飞速发展与普及,Web技术也在不断更新与前进,网页布局技术历程已经过了table、DIV+CSS、弹性、Grid布局共4个阶段。W3C标准明确提出,要实现结构(HTML)、表现(CSS)和行为(JavaScript)相分离的原则。该文着重于HTML和CSS相结合,实现网页页面的布局和样式设计[1-2]。

1关于DIV+CSS网页布局的分析

DIV+CSS就是以HTML设计页面骨架,以CSS设计页面美化效果,以JavaScript设计页面的功能和某些特效[3]。

1.1 HTML5标准,确定页面中功能块的区域、位置信息

按照人类阅读习惯,对页面效果图,按照先行再列进行分割,绘制页面区域块结构如图1所示。在DIV+CSS布局中DIV主要用于定位,每个信息区域对应一个DIV标签[4]。

1.2 按CSS3标准,实现DIV块区域的定位与美化

网页布局就是页面排版,HTML标签绘制结构,CSS将完成位置、大小、配色、特效等设计,关键是盒模型和定位机制[5-6]。

1.2.1 理解box模型

用CSS设计和布局时,牢记“所有 HTML 元素都可以视为方框”的原则。明确盒模型的“外边距、边框、内边距以及实际的内容”之间的相互关系,以灵活的设计。

1.2.2 理解CSS的定位机制

CSS的定位机制有3种,分别是普通流、浮动流、定位流,下面分别进行阐述。

(1)普通流:普通流是浏览器默认方式。HTML元素按CSS显示模式分为块元素(block)、行元素(inline)、行内块元素(inline-block),三类元素可通过display属性自由转换,在普通流中HTML按元素类型排列如下。

①普通流中元素排列由自身位置决定。

②块元素从上到下、垂直方向排列,自动换行。

③行元素在从左到右、水平方向排列。高度总是足以容纳它包含的所有行元素。

④行内块元素从左到右、水平方向排列,可设置宽度和高度。

(2)浮动流(float)浮动流是一种半脱离标准流的排版方式。在浮动流中HTML元素排列方式如下。

①浮动元素脱离普通流,水平方向排列,浮动方向向左或向右,可实现一行多列的布局。

②当元素没有设置宽度值,而设置了浮动属性,元素的宽度会随内容的变化而变化(若没有内容,则宽度为0)。

③浮动元素只对紧邻它后面的元素产生影响,对它前面的元素没影响。

(3)定位流(position):定位流可通过定位模式和边偏移属性进行元素精确定位,position属性有4种定位形式。

①静态定位(static):默认定位方式。

②相对定位(relative):相对于原有位置进行偏移;元素仍占有普通流中的空间;元素具有偏移属性和z-index属性,可产生空间层堆叠。

③绝对定位(absolute):元素完全脱离普通流,原流中的空间会关闭;元素定位以父容器为参照,默认父容器为body,通过设置ponsition:relative;可改变。

④固定定位(fixed):元素相对于浏览器是静止的,脱离文档流限制,浮在文档流上方,不会随着页面滚动而变换位置。

2 DIV+CSS网页布局的实现过程

下面以传智页说明DIV+CSS布局过程。

2.1 网页效果图的设计分析

在网页代码实现前,一定要理清设计思路,按照网页的“从上到下、从左到右、从外到内、从大到小、逐步细化”方式,设计布局结构如图1所示。

图1传智页结构图

2.2设计页面的HTML结构与CSS样式

(1)确定样式表设计方案,传智网站中有多个页面,且共用网头、导航、网底的样式,从优化代码角度,CSS样式表分为基础表(base.css)和个体页面表,本页表名为course.css。

(2)网头区域(header)技术实现,网头区域中利用普通流和浮动流技术。

①HTML部分代码实现:本区域采用浮动技术中一行三栏布局结构,技术要点是前二栏(hleft、hmiddle)向左浮动,第三栏向右浮动(hright)。

<header>

<div id="hleft"> ...... </div>

<div id="hmiddle"> ......</div>

<div id="hright"> ...... </div>

</header>

②CSS部分样式实现:

header{

width: 1000px;

height: 78px;

margin: 0 auto;

.....

}

#hleft{

width: 307px;

height: 78px;

float: left;

}

#hmiddle{

width: 289px;

height: 78px;

float: left;

margin-left: 10px;

}

#hright{

width:384px;

height: 78px;

float: right;

.......

}

......

(3)網底区域(footer)技术实现,网底区域中用到定位流技术和普通流技术,其中top图标利用定位流实现了精确定位。

①HTML代码实现:

<div id="bottom">

<div id="bott">

<div id="bott_top"><img src="img/top_btn.gif" height="10" width="20" alt=""></div>

......

</div>

</div>

②CSS部分样式实现:为top图标设置父容器bott,偏移量为上-7px左120px。

#bott{

width: 1000px;

height: 150px;

margin: 0 auto;

position: relative;

}

#bott_top{

position: absolute;

top: -7px;

left: 120px;

}

3结语

在DIV+CSS布局在应用中可以实现任意布局的需要,在网站开发过程中较为常用。但是在应用中最大的问题是浏览器的兼容性,比如:chrome中设置块元素居中{margin :0 auto;}、文本水平居中{text-align: center;},诸如此类的问题,都需要一定的技巧,综合运用各种布局技术才可以进行实现。

在实践中有效运用浮动属性、定位属性,同时将overflow属性与z-index属性融入其中,灵活动用,在应用中可以取得较好效果。在应用中一定要注意使用的规范性,尤其是命名规范性。规范的命名可以有效地提高程序的查错与修改效率。

参考文献

[1] 陈娟.网页布局中解决浮动塌陷问题研究[J].信息技术与信息化,2021(9):117-119.

[2] 李慧.DIV+CSS布局技术在网页设计中的应用[J].电脑编程技巧与维护,2021(7):20-22.

[3] 陈娟.基于DIV+CSS的网页布局技术探究[J].信息与电脑:理论版,2021,33(13):4-6.

[4] 李英.基于DIV和CSS的网页布局技术应用与研究[J].电脑编程技巧与维护,2021(5):17-18.

[5] 杨秋.课程教学网站设计与实现[D].长春:吉林大学,2016.

[6] 柳健.政协门户网站设计与实现[D].长春:吉林大学,2016.

基金项目:本文是全国高校计算机基础教育研究会2021年度课题“基于泛在学习的高职《Nosql》数据库课程建设研究”(项目编号:2021-AFCEC-495)的部分研究成果。