搜索
首页web前端html教程利用DIV+CSS制作网页过程中常用的基本概念及标签使_html/css_WEB-ITnose

CSS主要用于对HTML文件功能的补充及扩展,其作用就是对HTML文件中各种排版进行设置,达到对网页中字体、颜色、背景、图片等的控制,使网页能够完全依照设计者的想法来显示。

CSS可以控制网页的显示,HTML标签中的属性也可以控制其显示,为什么还要有CSS呢?其中一个原因就是:以前几乎一个人就可以完成一个网站的设置,非常的简单,现在不是了,一个网站需要很多的人一起工作才可以完成,如果每个人都按照自己的喜好网页制作,那么开发出来的网页的风格就会不一样,那么这些网页很难放在同一个网站中了,CSS可以方便地设置所有网页的风格,然后交由不同部门、不同地方的人制作网页。

CSS就是HTML中标签属性独立出来的东西,当然CSS也有自己特有的东西,将HTML语言中内容显示的部分独立的形成一个整体(CSS),然后,我们编写网页的时候,使用HTML语言设置网页内容的结构,使用CSS语言设置网页内容的显示,从而达到使网页编程的灵活性和复用性增强的目的。

注意,HTML语言仍具有网页内容显示的功能,但是,我们在具体做网页的时候,通常只用它对网页内容结构控制的功能。

一、盒子模型

HTML中的所有元素,不论其元素是块级元素,还是行集元素,在CSS看来都是一个盒子,这个就是盒子模型。

这里需要说的是,我们最好把这个“盒子”理解成没有高度的盒子,这样有利于我们理解下面层的概念,当然,你也可以把这个“盒子”理解成有高度的盒子,这样的话,我们需要将下面“层”理解成有一定高度的层。

1、盒子内部结构

一个盒子实际所占的宽度是由“内容+内边距+边框+外边距”组成,CSS中通过设置width和height来控件盒子大小。

2、边框

当有多条规则作用于一个边框时,会产生冲突,后面的设置覆盖前面的设置,这对于任何属性是一样的。

3、内边距

当一个盒子设置背景图象后,默认情况下背景覆盖的范围是“padding+内容“组成的范围,并以padding左上角为基准点平铺图像。

4、外边距

body是一个特殊点,它的背景色会延伸到margin部分,而其它盒子的背景色只覆盖“padding+内容”(IE浏览器)或“padding+内容+边框”(FF浏览器)。

二、盒子的浮动和定位

CSS盒子模型的每个属性都包括四个部分:上、右、下、左;这四部分可同时设置,也可分别设置;而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要保留多大距离。

1、盒子之间的关系

(1)、标准流

就是不使用其它的与排列和定位相关的特殊CSS规则时,各种元素的规则。

(2)、块级元素

它们总是以一个块的形式表现出来,并且跟同级兄弟依次竖直排列,左右撑满。

(3)、行内元素

本身不占有独立的区域,仅仅是在其它元素的基上指出了一定的范围。

2、盒子在标准流中的定位

(1)、行内元素之间的距离:为第一个元素的margin-right和第二元素的margin-left之和。

(2)、块级元素之间的距离:是margin-top或margin-bottom之中的最大者。

3、浮动和定位

一个块级元素的范围是由它里面的标准流内容决定的,与里面的浮动内容无关,也即把其中的子元素浮动后,它就不再属于父块,不再属于标准流了(具体可查看马海祥博客《清除CSS浮动的方法原理及优缺点评定》的相关介绍)。

注意:两个块级原素中,第一个块级元素浮动时,后面的块级元素的内容会环绕它,但若是第二个块级元素浮动时,第一个元素是没有任何变化的,即不会去环绕第二个浮动的块级元素的!多块情况类似的。

(1)、相对定位结论

使用相对定位的盒子,会相对于它原来的位置,通过偏移指定的距离,到达新位置。

使用相对定位的盒子仍在标准流中,它对父块和兄弟盒子没有任何影响,它的原位置不会被其它块补填。

(2)、绝对定位的结论

使用绝对定位的盒子会以它的“最近”的一个“已经定位”的“祖先元素”为基准进行偏移,如果没有已经定位的祖先元素,那么会以浏览器窗口为基准进行定位。

绝对定位的盒子从标准流中脱离,这意味着它们对其后的兄弟的定位没有影响,但是其兄弟盒子会填充它原来的位置,就像它不存在一样。

4、margin的使用

当块的高度值小于子块的高度加上margin的值时,此时IE会自动扩大,保持子元素的margin-bottom的空间以及父元素自身的padding-bottom。

而FF不会,它会保证父元素的height高度的完全吻合,而这时子元素将超过父元素范围。

5、z-index的使用

z-index属性用于调整定位时重叠块的上下位置,z-index大的页面位于其值小的上方,默认值为0,当两个块的z-index值一样时,将保持原有的高低覆盖关系。

6、display的使用

display的属性改变一个元素是块级(block)还是行内(inline)元素,抑或不显示此元素(none)。

三、块级元素和行集元素

块级元素在标准文档流中是单独的占一行的,而行集元素在标准文档流中占得是行的一部分,但是当他们完全脱离标准文档流的时候,他们就不再具有该特性。

块级元素和行集元素之间是可以相互改变的,通过display属性,当属性值为block时,就可以转换为块级元素,当属性属性值为inline时,就可以转换为行集(内联)元素。

四、层的概念

HTML文档内容的布局和显示不仅仅在一个平面上,而是可以在多个平面上进行布局和显示,各个平面(层)之间的布局有的并没有完全的断离关系,有的就完全脱离了关系,当然,其显示效果我们可以通过z-index属性进行设置,最后,我们从最外的那个层面看到的重叠效果就是最终显示的效果。

五、文字与图像

我们都知道,在网页上利用HTML定位文字和图像是一件“令人心痛”的事情,我们必须使用表格标签和隐式GIF图像,即使这样也不能保证定位的精确,因为浏览器和操作平台的不同会使显示的结果发生变化(比如文字与图片无法在同一行对齐显示,具体的解决方法可查看马海祥博客《如何利用CSS代码使图片和文字在同一行显示且对齐》的相关介绍)。

1、文字大小(font-size)

1em表示的长度是其父元素中字母m的标准宽度,1ex则表示父元素中字母x的标准高度,当父元素变化时,使用这两个单位的子元素的大小会同比例变化。

2、行高(line-height)

(1)、表示两行文字之间基线的距离,也就是每行文字高度,如果加上下划线,下划线就是基线。

(2)、行高的值既可以使用像素等为行高单位,也可以不加任何单位,只写数字,此时行高表示行高与字体大小的比值,如字体大小12px,Line-height:1.5。

实际大小为line-height:1.5*12px=18px;

3、字母大小写转换(text-transform)

text-transform主要用于定义文本的大小写状态,不过,此属性对中文无意义。

具体的语法有:

capitalize: 首字母大写

uppercase: 大写

lowercase: 小写

none: 正常无变化

inherit: 继承

4、文字装饰效果(text-decoration)

text-decoration属性规定添加到文本的修饰,这个属性允许对文本设置某种效果,如加下划线,如果后代元素没有自己的装饰,祖先元素上设置的装饰会“延伸”到后代元素中。

text-decoration的值有underline,overline,line-height,blink等。

5、文字对齐与首段缩进

(1)、段落水平对齐:text-align

(2)、段首缩进text-indent:对中文网页,设置为”2em”即可。

6、段落的垂直对齐(vertical-align)

在目前浏览器中,只能用表格单元格中的对象竖直方向的对齐设置,而对于一般的块级元素,如div,不起作用。

7、图像样式

(1)、background-position:属性确定背景图像的位置,如果设置两个值,它们分别用于确定水平位置和竖直位置。如果只设置一个值,那么缺省的值为center。

而且它与平铺相关,实际上指定了平铺的起始点,除了使用top,left,bottom,right,center外,还以可相对数值和绝对数值来作为它的属性值,如5%,18px等。

数值表示的是距离左边的距离和距顶边的距离。

(2)、background-attachment:fixed可以固定背景图片,当拉动滚动条时,只有文字移动,而图片不动。

(3)、图像的水平(横向对齐方式):不能直接设置图片的text-align属性,而是由其父像素的该属性实现的,但是对纵向对齐是可以通过图像的vertical-align属性设置的,这点正好与文字的对齐方式相反的。

六、链接与导航

在利用div+css制作网页的过程中,还有一类的我们经常会用到的,那就是链接与导航。

1、伪类

(1)、伪类的声明顺序

a:link,a:visited{text-decoration:none;}

a:hover{text-decoration:underline;}

马海祥提醒大家一点:上面的声明顺序不能变,如果变了,将不会效果。

(2)、a:link与a设置的都是相同的,二者通常情况下是没有区别的,但实际工作中,经常作用a,a:visited{};

2、按钮超链接

对于普通超链接和点击过的链接设置相同,并且利用边框的样式模拟按钮效果,而鼠标指针经过时的超链接,相应地改变文字颜色、背景色、位置和边框,从而模拟出“按下去“的特效。

3、高度(width)和宽度(height)属性

FF浏览器不支持a元素的高度(width)和宽度(height)属性!

4、项目符号

(1)、list-style-type:属性设置ull或ol标记符号样式。

(2)、list-style-image:属性设置项目符号显示为图片,但由于浏览器间的差异,一般不使用此属性,而是将list-style-type属性值设置为none,然后设置li标记的background实现。

5、简单菜单导航

虽然把链接设为块级元素,但是只有在鼠标经过文字时(IE6),才能触发鼠标经过效果,而不是鼠标进入矩形区域就可触发。

IE7修改了此错误,解决方法是:在”#navigation li a”中增加一条CSS规则:height:1em;

七、CSS+DIV布局

使用css+div布局网页,就是指通过在网页中插入div标签并定义相应的css规则进行网页布局。

1、固定宽度版式

(1)、第一种方法

body{text-align:center;}
  #containter{position:relative;margin:1 auto;widht:760px;text-align:left;}

(2)第二种方法

body{margin:0px;}
  #contaniner{position:relative;left:50%;width:760px;margin-left:-330px;}

2、左中右版式

(1)、左右块用绝对定位,并且固定块宽度,而中间块不设置宽度,自动调整宽度,但是必须将它的padding-left和padding-right分别设置为左右块宽度(具体可查看马海祥博客《CSS常用代码使用技巧大全》的相关介绍)。

(2)、块的背景色问题:由于左右块背景色没有延伸到页面底端,马海祥博客建议的解决方法是:当有页脚时,把一整个块内容块(左、中、右三块)放到一个块中(这里放不放无所谓,主要是好管理),然后将body背景色设置为与右块相同的颜色,再制做一副图片,宽度与left相同,颜色与left背景色相同的块,做#container的背景图片,再设置向下重复即可。

八、文档流

文档流就是文档里的内容连续的读入到程序进程中,然后,经过处理,再连续从程序进程中读出,输出到显示器上,当然,在其读入和读出时都是有一定的顺序的,不是乱来的,这里需要注意,之所以用“流”字,主要是因为数据在读入和读出的传送过程中,和水的流动非常相似,所以,用了这么一个“流”字,改字描述数据的传送过程非常形象,但是该字却没有强调其读入读出的顺序性。

在这里我们不需要太多的关心文档的输入流,应该多了解些文档的输出流,因为程序进程输出各个层的先后顺序的不同,就会导致最终我们看到层的重叠效果的不同。

根据文档流对层的一些控制的不同,我们可以把文档流分为常规流、绝对定位流和浮动流,现在我们可以把这个流当成层的意思。

常规流:最原始的那一层,最初该层包含所有的元素,其它层的元素都是从这个层里面弄走的,当然,弄走人家的东西,你得给人家一个说法;

绝对定位流:该层弄走原始层元素时,给人家说,我弄走的东西就完全是我的了,以后你这关于它的任何东西都不能存在;

浮动流:该层还算厚道,不像绝对定位流那样,说弄走人家东西,就连个毛也不给人家留,浮动流在弄走人家东西的时候,会告诉常规层,你们可以给它留个墓地或者把它原来的家留着,要是留墓地(够它住就行)的话,墓地的位置由我来定,“好处”就是它的真身会在墓地的上方,要是留它原来的家的话,它的真身可以任意的漂流,具体你们留墓地还是流家,会告诉你们的。

九、经验心得

DIV是HTML中的块标记,就是把一些HTML标签作为一个块,CSS可以通过DIV标签,使被操作的对象的颗粒度可以灵活的改变,span标签是行内标签,div可以通过设置达到span的效果,但是,span很难达到div的一些效果(具体可查看马海祥博客《如何规范大型网站的HTML代码》的相关介绍)。

1、在项目列表中,当把

  • 标记设置了float:left属性时,再为
  • 指定宽度,那么当
  • 标记超过父标记的宽度时就会自动换行。

    2、为了减少差异,一般尽量在布局的块,如

    • 等的属性margin 、padding的值要么根据需要设置为相应的值,要么设置为0;

      3、经常用图片来代替块里的标题文字,先把标题文字隐藏,再把代替图片设置为块的背景图片,若是要竖直方向的图片,一般是这样设置。

      若是横向的图片,一般可以把包含标题文字隐藏,再设置相应父元素的宽度和高度及外边距和内边距,之后设置父元素的背景图片为代替图片。

      例:

      这是测试

      H3 span{display:none;}
        H3{width:170px;height:60px;margin:0px;padding:0px;}
        H3{bacground:url(1.jpg) no-repeat;}

      4、假如有两个块,第一个设置为浮动后,不论方向,那么第二个块的内容会环绕第一个块,但若是设置二个块浮动后,对第一个块却没任何影响,即第一个块的内容是不会环绕第二个块,保持在原来的位置不变。

      马海祥博客点评:

      行集元素作为盒子被使用的时候,其本质还是在常规流上,但该元素的上方会形成一个突起,这样我们从上方看的时候会出现一些覆盖的现象;块集元素作为盒子被使用的时候,它作用于整体,不会出现什么突起,什么覆盖的现象发生;绝对定位流和浮动流,是在重新定位元素位置(float和position属性设置)的时候出现的。

      本文为马海祥博客原创文章,如想转载,请注明原文网址摘自于http://www.mahaixiang.cn/css/1160.html,注明出处;否则,禁止转载;谢谢配合!

  • 声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    了解HTML,CSS和JavaScript:初学者指南了解HTML,CSS和JavaScript:初学者指南Apr 12, 2025 am 12:02 AM

    WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

    HTML的角色:构建Web内容HTML的角色:构建Web内容Apr 11, 2025 am 12:12 AM

    HTML的作用是通过标签和属性定义网页的结构和内容。1.HTML通过到、等标签组织内容,使其易于阅读和理解。2.使用语义化标签如、等增强可访问性和SEO。3.优化HTML代码可以提高网页加载速度和用户体验。

    HTML和代码:仔细观察术语HTML和代码:仔细观察术语Apr 10, 2025 am 09:28 AM

    htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代码” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代码”代码“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

    HTML,CSS和JavaScript:Web开发人员的基本工具HTML,CSS和JavaScript:Web开发人员的基本工具Apr 09, 2025 am 12:12 AM

    HTML、CSS和JavaScript是Web开发的三大支柱。1.HTML定义网页结构,使用标签如、等。2.CSS控制网页样式,使用选择器和属性如color、font-size等。3.JavaScript实现动态效果和交互,通过事件监听和DOM操作。

    HTML,CSS和JavaScript的角色:核心职责HTML,CSS和JavaScript的角色:核心职责Apr 08, 2025 pm 07:05 PM

    HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

    HTML容易为初学者学习吗?HTML容易为初学者学习吗?Apr 07, 2025 am 12:11 AM

    HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

    HTML中起始标签的示例是什么?HTML中起始标签的示例是什么?Apr 06, 2025 am 12:04 AM

    AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

    如何利用CSS的Flexbox布局实现菜单中虚线分割效果的居中对齐?如何利用CSS的Flexbox布局实现菜单中虚线分割效果的居中对齐?Apr 05, 2025 pm 01:24 PM

    如何设计菜单中的虚线分割效果?在设计菜单时,菜名和价格的左右对齐通常不难实现,但中间的虚线或点如何...

    See all articles

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    AI Hentai Generator

    AI Hentai Generator

    免费生成ai无尽的。

    热门文章

    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳图形设置
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您听不到任何人,如何修复音频
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25:如何解锁Myrise中的所有内容
    4 周前By尊渡假赌尊渡假赌尊渡假赌

    热工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    MinGW - 适用于 Windows 的极简 GNU

    MinGW - 适用于 Windows 的极简 GNU

    这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

    EditPlus 中文破解版

    EditPlus 中文破解版

    体积小,语法高亮,不支持代码提示功能

    SublimeText3 Linux新版

    SublimeText3 Linux新版

    SublimeText3 Linux最新版