css position relative and absolute布局

简介: css position relative and absolute布局

Created by Jerry Wang, last modified on Sep 01, 2014

</html>

<style type="text/css">

.highlight

{

 background-color:yellow;

 text-decoration:underline;

 width: 100px;

 height: 100px;

 display: block;

}

.div1{

background-color: red;

width: 100px;

position: absolute;

top: 90px;

left: 50px;

}

.div2{

background-color: blue;

width: 100px;

left: 100px;

}

.rule100{

background-color: black;

width: 100px;

}

</style>

<p>Jerry's <span class = "highlight">Hello</span></p>

<div class="div1">div1

<div class="div2">div2</div>

</div>

<div class="rule100">"100px"</div>

</html>

case 1: 当#div2 position为缺省值static(Elements render in order, as they appear in the document flow)时,按照其在document flow内的位置进行布局:


case2: position:absolute(  The element is positioned relative to its first positioned (not static) ancestor element ).

因为现在div1的position布局为absolute,则div2会按照div1的相对位置进行布局。div1 start x offset = 50px, div2本身的left = 100px, 因此div2以相对于document 100+50 = 150px的起始位置进行布局:

image.png

注意在absolute的情况下,div2不仅位置改变,同时也脱离了document flow,因此其原来在div1内的位置已经不再存在:

image.png

case3: position: relative (  The element is positioned relative to its normal position ).

div2原本在div1内的位置为相对document偏移50px,因此最后的水平方向偏移为150px. div2虽然从表面上看已经偏离了原来的位置,但是实际上在document flow中仍然未改变,因此从视觉上相比case2,case3中的div1具有case2的2倍高度。

image.png

case4: div1的position设置为static. 此时top attribute则不再起作用。

image.png

case5: div1的position设置仍然为static,body的position为absolute. div2的css:

 

.div2{

background-color: blue;

width: 100px;

left: 200px;

top: -40px;

position: absolute;

}

 

div2在ui上消失,因为其y坐标在原点上方,并且从document flow里移除,因此div1的高度同case2.

image.png

如果div2改为relative,则其y坐标为static case下的值减去40,最后布局如下:

image.png

相关文章
|
4天前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
25天前
|
前端开发 容器
使用 CSS Grid 布局实现响应式设计
【10月更文挑战第1天】使用 CSS Grid 布局实现响应式设计
36 4
|
25天前
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
2月前
|
前端开发 容器
css布局-弹性布局学习笔记
这篇文章是关于CSS弹性布局的学习笔记,详细介绍了flex容器和元素的相关属性,包括flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content以及order、flex-grow、flex-shrink、flex-basis、flex和align-self等,解释了这些属性在弹性盒子布局中的作用和用法。
|
2月前
|
JavaScript 前端开发
网页前端课程设计-【模仿】香港中文大学官网,轮播图及div+css布局,js的dom操作
这篇文章介绍了如何模仿香港中文大学官网进行网页前端课程设计,包括使用div+css布局、js的DOM操作以及实现轮播图等技术细节。
|
3月前
|
前端开发 安全 容器
CSS如何优雅实现卡片多行排列布局?
【8月更文挑战第24天】CSS如何优雅实现卡片多行排列布局?
86 3
|
3月前
|
前端开发 开发者 容器
探索现代Web开发中的CSS Grid布局技术
【8月更文挑战第29天】在数字时代的浪潮中,网页设计不断进化以适应日新月异的用户需求。CSS Grid布局技术作为一项革新性的前端工具,为设计师和开发者提供了前所未有的布局能力。本文旨在通过深入浅出的方式介绍CSS Grid的核心概念、基本用法以及在实际项目中的应用,帮助读者快速掌握这一强大的网页布局工具。
52 3
|
3月前
|
前端开发
2s 利用 HTML+css动画实现企业官网效果
2s 利用 HTML+css动画实现企业官网效果
HTML+CSS 实现通用的企业官网页面(记得收藏)
HTML+CSS 实现通用的企业官网页面(记得收藏)
|
1月前
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML和CSS之旅
【9月更文挑战第32天】在这个数字化的时代,拥有一个个人博客不仅是展示自我的平台,也是技术交流的桥梁。本文将引导初学者理解并实现一个简单的个人博客网站的搭建,涵盖HTML的基础结构、CSS样式的美化技巧以及如何将两者结合来制作一个完整的网页。通过这篇文章,你将学会如何从零开始构建自己的网络空间,并在互联网世界留下你的足迹。