`

详解网页设计中的定位与定位应用margin、padding、position

阅读更多
定位一直是WEB标准应用中的难点,如果理不清楚定位那么可能应实现的效果实现不了,实现了的效果可能会走样。如果理清了定位的原理,那定位会让网页实现的更加完美。

定位的定义:

在CSS中关于定位的内容是:position:relative | absolute | static | fixed

static 没有特别的设定,遵循基本的定位规定,不能通过z-index进行层次分级。

relative 不脱离文档流,参考自身静态位置通过 top,bottom,left,right 定位,并且可以通过z-index进行层次分级。

absolute 脱离文档流,通过 top,bottom,left,right 定位。选取其最近的父级定位元素,当父级 position 为 static 时,absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级。

fixed 固定定位,这里他所固定的对像是可视窗口而并非是body或是父级元素。可通过z-index进行层次分级。

CSS中定位的层叠分级:z-index: auto | namber;

auto 遵从其父对象的定位

namber 无单位的整数值。可为负数

定位的原理:

可以位移的元素 (相对定位)

在本文流中,任何一个元素都被文本流所限制了自身的位置,但是通过CSS我们依然使得这些元素可以改变自己的位置,我们可以通过float来让元素浮动,我们也可以通过margin来让元素产生位置移动。但是事实上那并非是真实的位移,因为,那只是通过加大margin值来实现的障眼法。而真正意义上的位移是通过top,right,bottom,left(下称TRBL,TRBL可以折分使用。)针对一个相对定位的元素所产生的。我们看下面的图:




我们看图中是一个宽度为200px,高度为50px,margin:25px; border:25px solid #333; padding:25px; 相对定位的元素,并且位移距上50px,距左50px。而下方是一块默认定位的黑色区块。我们看到这个处在文本流的区块被上面的相对定位挡住了一部分,这说明:“当元素被设置相对定位或是绝对定位后,将自动产生层叠,他们的层叠级别自然的高于文本流”。除非设置其z-index值为负值,但是在Firefox等浏览器中z-index为负值时将不会显示。并且我们发现当相对定位元素进行位移后,表现内容已经脱离了文本流,只是在本文流中还为原来的相对定位留下了原有的总宽与总高(内容的高度或是宽度加上margin\border\padding的数值)。这说明在相对定位中,虽然表现区脱离了原来的文本流,但是在文本流中还还有此相对定位的老窩。这点要特别注意,因为在实际应用中如果相对定位的位移数值过大,那么原有的区域就会形成一块空白。

并且我们注意,定位元素的坐标点是在margin值的左上边缘点,即图中的B点。那么所有的位移的计算将以这个点为基础进行元素的推动。当TRBL为正值时位移的方向是内聚的,由些可推,当TRBL为负值时位移的方向是外放的。在图片有位移的箭头指向标识,带有加号的是正值位移方向,带有减号的是负值位移方向。关于位移方位,可以延伸阅读怿飞的《由浅入深漫谈margin属性(一)》

可以在任意一个位置的元素 (绝对定位)

如上所述:相对定位只可以在文本流中进行位置的上下左右的移动,同样存在一定的局限性,虽然他的表现区脱离了文本流,但是在文本流却依然为其保留了一席之地,这就好比一个打工的人他到了外地,但是在老家依然有一个专属于他的位置,这个位置不随他的移动而改变。但是这样很明显就会空出一块空白来,如果希望文本流抛弃这个部分就需要用到绝对定位,绝对定位不光脱离了文本流,而且在文本流中也不会给这个绝对定位元素留下专属空位,这就好比是一个工厂里的工人,如果有一个工人走了自然会要有别的工人来填充这个位置。而移动出去的部分自然也就成为了自由体。绝对定位将可以通过TRBL来设置元素处在任何一个位置。在父层position属性为默认值时,TRBL的坐标原点以body的坐标原点为起始。看下图:




上图可知,文本流中的内容会顶替绝对定位无素的位置,一点都不会客气。而绝对定位元素自然的层叠于文本流之上。而在单一的绝对定位中,定位元素将会跑到网页的左上角,因为那里是他们的被绝对定位后的坐标原点。

被关联的绝对定位

上面说的是单一的绝对定位,而在实际的应用中我们常常会需要用到一种特别的形式。即希望定位元素要有绝对定位的特性,但是又希望绝对定位的坐标原点可以固定在网页中的某一个点,当这个点被移动时绝对位定元素希望能保证相对于这个原坐标的相对位置。也就是说需要这个绝对定位要跟着网页移动,而并且是因定在网页的某一个固定位置。通常当网页是居中形式的时候这种效果就会显得特别的重要。要实现这种效果基本方式就是为这个绝对定位的父级设置为相对定位。那么绝对定位的坐标就会以父级为坐标起始点。

虽然是如此,但是这个坐标原点却并不是父级的坐标原点,这是一个很奇怪的坐标位置。

我们看到,这个图中父级为黑灰色区块,子级为青色区块。父级是相对定位,子级是绝对定位。子级设置了顶部位移50个像素,左倾位移50个像素。那么我们看,子级的坐标原点并不是从父级的坐标原点位移50个像素,而是从父级块的padding左上边缘点为坐标起始点(即A点)。而父级这里如果要产生位置移动,或是浏览器窗口大小有所变动都不会影响到这个绝对定位元素与父级的相对定位元素之间的位置关系。这个子级也不用调整数值。


这是一种很特别并且也是非常实用的应用方式。如果你之前对于定位的控制并不自如的话,相信看完对这里对定位的解释一定可以把定位使用得随心所欲。

总在视线里的元素 (固定定位)

由于广告的滥用,使得一些浏览器软件都开始有了广告内容拦截,使得一些很好的效果现在都不推荐使用了。比如让一个元素可能随着网页的滚动而不断改变自己在浏览器的位置。而现在我可以通过CSS中的一个定位属性来实现这样的一个效果,这个元素属性就是曾经不被支持的position:fixed; 他的含义就是:固定定位。这个固定与绝对定位很像,唯一不同的是绝对定位是被固定在网页中的某一个位置,而固定定位则是固定在浏览器的视框位置。

虽然原来的浏览器并不支持过个属性,但是浏览器的发展使得现在的高级浏览器都可以正确的解析这个CSS属性。并且通过CSS HACK来让IE6都可以实现这样的效果(目前无法使IE5.x)实现这种效果。
分享到:
评论

相关推荐

    div+css详解定位与定位应用

    ### div+css详解定位与定位应用 #### 一、引言 在Web开发中,页面布局至关重要,良好的布局能够使网站既美观又实用。而`div+css`作为现代网页设计的重要组成部分,其中的定位技术更是核心之一。本文将深入探讨`div+...

    itat网页设计复赛试题

    2. **盒模型的理解与应用**:掌握CSS盒模型的基本概念,包括`padding`、`border`、`margin`等,并能够在实践中合理应用这些属性。 3. **布局技术**:了解并掌握`display`属性的不同值(如`block`、`inline-block`、`...

    HTML5培训技术分享 定位属性、列表的高级应用及带有图片列表的网页制作(中)

    在网页布局设计中,经常需要将元素放置在页面的特定位置,而不仅仅是按照文档流自动排列。这时就需要使用到定位(positioning)属性。 **1.1 定位类型** - **static**:默认值,元素按照正常的文档流来排列。 - **...

    CSS详解-DIV布局!!

    在"CSS详解—DIV网页样式与布局"的压缩包中,你将找到更多关于CSS和DIV布局的详细示例和教程,帮助你进一步掌握这些核心概念和技术。通过实践和学习,你将能够熟练地运用CSS和DIV构建出美观、功能完善的网页。

    网页设计简明手册

    常见属性如`color`设置文本颜色,`font-size`定义字体大小,`background-color`设定背景色,`padding`和`margin`控制元素内边距和外边距,`display`决定元素的显示方式(如块级或行内),`position`定位元素等。...

    CSS布局 案例详解

    在IT领域,CSS(Cascading Style Sheets)是用于描述HTML...总结,CSS布局是构建网页的核心技能,掌握上述知识点能让你更好地驾驭网页设计,实现各种复杂布局。通过不断实践和学习,你将能够创建出既美观又实用的网页。

    HTML5培训技术分享 定位属性、列表的高级应用及带有图片列表的网页制作(上)

    在HTML5网页设计中,为了实现更复杂的布局需求,掌握定位属性是至关重要的。定位属性允许开发者精确控制元素在页面上的位置。除了之前介绍过的浮动属性外,本节将详细介绍定位属性,它不仅能够帮助元素脱离文档流,...

    HTML5培训技术分享 定位属性、列表的高级应用及带有图片列表的网页制作(下)

    在网页设计中,有时我们需要精确地控制元素的位置。这可以通过使用定位属性来实现。主要有四种类型的定位方式:static、relative、absolute 和 fixed。 - **Static**: 默认值,元素按照正常的文档流进行布局。 - **...

    详解css粘性定位position:sticky问题采坑

    CSS中的`position: sticky`是一种混合定位方式,它结合了`relative`和`fixed`的特点。在页面滚动过程中,当元素距离其父元素达到设定阈值(如`top: 100px`)时,`position: sticky`会使元素变为固定定位,保持在屏幕...

    css常用的网页布局样式属性.pdf

    在网页设计中,CSS(层叠样式表)扮演着至关重要的角色,它负责控制页面的布局和外观。本篇将详细介绍CSS中几个关键的布局样式属性:Position、Float、Margin和Padding。 1. **Position** Position属性决定了元素...

    CSS网页设计课件ppt

    ### CSS网页设计课件知识点详解 #### 一、CSS概述 **1.1 什么是CSS?** CSS,全称为 Cascading Style Sheets(层叠样式表),是一种用于定义HTML元素显示样式的语言。它允许开发者控制网页的外观和布局,而不仅仅...

    JQuery坐标定位

    ### JQuery坐标定位详解 在Web开发中,对页面元素进行精确的定位是非常重要的,而JQuery作为一款优秀的JavaScript库,提供了强大的工具来帮助开发者轻松实现这一点。本文将深入探讨JQuery坐标定位的相关知识点,...

    用DIV+CSS技术制作一个简单的网页 我的家乡主题

    - **Flash**:虽然逐渐被淘汰,但早期的网页设计中常用Flash制作动画和互动内容。 ### 四、实战应用案例分析 #### 1. **首页布局设计** - **头部**:包含网站Logo和导航菜单,通常采用居中对齐的方式,使得整体...

    CSS2.0_ref.rar_css_javascript_网页设计

    《CSS2.0详解——网页设计者的必备指南》 CSS,全称为层叠样式表(Cascading Style Sheets),是用于描述HTML或XML(包括如SVG、MathML等各种XML方言)文档样式的Web标准。CSS2.0是CSS的一个重要版本,它在CSS1.0的...

    网页制作之CSS用法布局详解

    4. **盒模型**:CSS中的每个元素都可看作一个盒子,包括内容(content)、内边距(padding)、边框(border)和外边距(margin)。理解盒模型对于精确控制元素尺寸至关重要。 **二、CSS布局** 1. **流体布局**:流体布局使...

    CSS中的元素定位方法详解

    在CSS中,元素定位是网页设计的关键组成部分,它允许开发者精确控制元素在页面上的位置。本文将深入探讨CSS中的元素定位方法,主要包括盒模型、定位属性(position)、display属性和float属性。 首先,盒模型是理解...

    web前端期末大作业 html+css家乡旅游主题网页设计 湖北武汉家乡介绍网页设计md

    - **DIV盒子模型**: 本例中的网页设计大量使用了`div`标签,并运用了盒子模型的概念来组织页面布局。这包括设置盒子的`width`、`height`、`padding`、`margin`等属性来控制盒子的尺寸和间距。 - **浮动与定位**: ...

    精通CSS DIV网页样式与布局.pdf+书中实例

    从提供的文件信息来看,这份资料主要关注的是CSS(层叠样式表)与DIV元素在网页设计中的应用。接下来,我们将围绕这些关键词展开一系列相关的知识点,帮助读者更好地理解CSS与DIV在网页布局及样式化方面的核心概念和...

    用DIV+CSS技术设计的抗击疫情网页与实现制作(web前端网页制作课作业d

    综上所述,这种类型的网页设计不仅适用于教育环境中的学习实践,也能作为个人项目或小型网站的基础框架。通过灵活调整和添加更多功能,它可以应用于更广泛的场景,包括但不限于企业宣传、活动介绍等。

Global site tag (gtag.js) - Google Analytics