CSS绝对定位的应用

合集下载

固定定位,绝对定位,相对定位元素的特点

固定定位,绝对定位,相对定位元素的特点

固定定位,绝对定位,相对定位元素的特点当设计网页布局时,三种最常见的CSS定位方式包括:固定定位(fixed positioning)、绝对定位(absolute positioning)和相对定位(relative positioning)。

他们各自有各自的特点和使用场景。

一、固定定位固定定位是基于浏览器窗口而不是文档的布局方式,这意味着无论用户如何滚动浏览器窗口,固定定位的元素都将保持在同一位置。

另外,固定定位的元素不会占用页面文档流中的任何位置,相对于浏览器窗口进行定位。

应用场景:- 导航栏(如置顶固定导航栏)在滚动页面时始终保持不动- 利用固定定位实现悬浮窗口效果二、绝对定位绝对定位是与相对定位(后面将介绍)相对的概念。

绝对定位的元素相对于其最近的已定位的祖先元素进行定位。

如果没有已定位的祖先元素,则相对于文档的 body 元素进行定位。

应用场景:- 指定元素在页面某个位置,并不会随窗口大小或页面滚动而滑动- 绝对定位元素可以重叠在其他元素之上并覆盖其他内容,可以实现图片轮播功能。

三、相对定位相对定位是相对当前文档流中此元素的位置进行定位。

元素在文档流占据的空间不会消失,而是留出原先所在位置的空白。

较常用于微调网页布局。

应用场景:- 对某些元素进行微调整,只移动一小部分而不影响页面的其余内容。

- 当利用垂直中心定位文本,并且数量不确定时可以用到。

小结:固定,绝对,相对三种定位方式各自有各自的特点及适用的具体场景。

在进行网页布局时,可以根据实际需求灵活运用这些定位方式完成根据需求灵活布局。

同时,由于它们对文档流和祖先的定位存在趋同之处,因此在设置时需特别注意,以免互相影响引起不必要的错误。

css中absolute原理

css中absolute原理

CSS中absolute原理1.前言在C SS样式设计中,a bs ol ut e(绝对定位)是一种常用的定位方式,它可以使元素脱离文档流,并根据父元素或祖先元素进行定位。

本文将介绍C SS中a bs ol ute的工作原理、应用场景以及常见问题。

2. ab solute的工作原理在C SS中,使用ab so l ut e定位的元素会被完全从文档流中脱离,不占用原本的空间。

通过设置元素的to p、r i gh t、bo tt om和l e ft属性,可以将元素相对于其最近的定位祖先或父元素进行定位。

如果没有找到定位的祖先元素,元素会相对于ht ml根元素进行定位。

3. ab solute的应用场景3.1单元素绝对定位单元素绝对定位是ab s ol ut e的最常见应用场景。

通过设置元素的t o p、ri gh t、bo tto m和l ef t属性,可以精确地定位元素在页面中的位置。

这在设计响应式布局时尤其有用,可以根据屏幕尺寸对元素进行动态定位。

3.2相对定位的父元素当父元素设置为r ela t iv e(相对定位)时,其内部的ab so lu t e元素会根据父元素的位置进行定位。

这种方式使得我们可以创建出重叠的元素布局,或者实现元素在某一区域内的局部定位。

3.3绝对定位与其他定位方式的结合应用在实际开发中,我们往往需要将绝对定位与其他定位方式结合使用,以实现更加丰富的布局效果。

例如,可以将r el at iv e定位的父元素与a b so lu te定位的子元素相结合,创建出复杂的多层次布局。

另外,a b so lu te定位也可以结合f le xb ox或g r id布局,实现更加灵活的页面效果。

4.注意事项-a bs ol ut e定位的元素不会对其他元素产生任何影响,因此在设计中要注意避免元素的相互遮挡问题。

-在浏览器兼容性方面,尤其是对于一些旧版本的浏览器,ab s ol ut e定位的效果可能会有所不同。

css不占空间的浮动方法

css不占空间的浮动方法

css不占空间的浮动方法
CSS浮动是网页布局中常用的效果之一,它可以让元素脱离正常文档流,向左或向右移动,直到它遇到另一个元素或边界。

要实现不占空间的浮动,可以使用以下方法:
1. 使用绝对定位:将浮动元素设置为绝对定位,这样它就不会占用文档流中的空间。

可以使用`position: absolute;`属性来实现。

2. 使用负外边距:通过给浮动元素添加负外边距,可以将其从文档流中“挤出”,使其不占用任何空间。

可以使用`margin-top: -10px;`和`margin-bottom: -10px;`等属性来实现。

3. 使用伪元素和绝对定位:通过将浮动元素设置为伪元素,并将其设置为绝对定位,可以实现不占空间的浮动效果。

例如,可以使用`::before`或`::after`伪元素和`position: absolute;`属性来实现。

4. 使用flex布局:使用flex布局可以将元素不占空间地浮动起来。

通过设置父元素的`display: flex;`属性,可以使其子元素浮动而不占用空间。

以上是几种实现CSS不占空间的浮动方法,可以根据具体需求选择适合的方法来使用。

简述绝对定位,相对定位,固定定位的使用要点

简述绝对定位,相对定位,固定定位的使用要点

简述绝对定位,相对定位,固定定位的使用要点绝对定位、相对定位和固定定位是不同类型的CSS布局中使用的三大布局类型。

在网页设计师和开发者之间,它们一直是争论的话题,他们可能会更偏向其中一个定位类型,但都认为这三种类型都是网页布局中必不可少的。

本文将详细介绍这三种定位类型的使用要点。

首先是绝对定位。

它的实质是通过使用left,right,top和bottom等属性来指定元素的位置,这些属性可以是绝对值,也可以是相对于其默认位置的偏移量。

它的优点是可以更加精确地控制元素的位置,而且绝对定位的元素不会受到周围元素的影响,也不会影响周围元素的位置。

它的缺点是不利于响应式设计,也不利于可访问性,但有时候它仍然可以作为一种补充技术来使用,比如精确定位一个元素的位置。

其次,固定定位是一种特殊的绝对定位。

它的属性设置也和绝对定位类似,但它不再受到元素父级的影响,而是相对于浏览器视口固定位置。

因此,它可以用来把元素固定在指定的位置,但它有一个很大的缺点,那就是只要设备尺寸变化,元素的位置就会变化,这就不利于响应式布局。

最后,相对定位是一种较为灵活的布局方式。

它的使用基本上是通过设置left,right,top和bottom属性,以父元素或其他元素为参考,把元素移动到指定位置。

它可以让元素在不同屏幕尺寸下始终保持相同的位置,因此可以很好地支持响应式设计,此外,它亦可只影响元素本身,不会影响其他元素,而且不会受到父级元素的影响。

以上就是绝对定位、相对定位和固定定位的使用要点的大致介绍,也就是说,绝对定位可以更加精确地控制元素的位置,但不利于响应式设计;固定定位可以在指定的位置固定元素的位置,但是在不同的设备上它的位置也会变化;而相对定位可以实现灵活的布局,不会影响其他元素,支持响应式设计。

综上所述,网页布局中合理使用绝对定位、相对定位和固定定位可以充分发挥它们的优势,从而实现更优质的网页设计效果。

css 定位 消除原本位置的方法

css 定位 消除原本位置的方法

css 定位消除原本位置的方法CSS定位是一种常用的网页布局技术,它能够帮助我们精确控制元素在页面中的位置。

在某些情况下,我们可能需要消除元素原本的位置,以使其脱离文档流对页面布局产生影响。

下面是几种常用的方法用于消除元素的原本位置:1. 使用绝对定位:通过将元素的position属性设置为absolute,可以将元素从文档流中脱离出来,并且不再占据空间。

需要注意的是,绝对定位是相对于最近的具有定位属性(非static)的父元素来定位的。

我们可以为元素设置top、right、bottom和left属性来确定其位置。

2. 使用固定定位:通过将元素的position属性设置为fixed,可以将元素相对于浏览器窗口进行定位。

与绝对定位不同,固定定位的元素会始终保持在窗口的固定位置,即使页面发生滚动。

同样,我们可以使用top、right、bottom和left属性来调整元素的位置。

3. 使用负边距:通过给元素设置负的margin值,可以将元素向上、向左或者两者兼而有之进行偏移,从而消除其原本的位置。

负的margin值使得元素向相反方向移动,超出父元素的边界。

需要注意的是,使用负边距可能会干扰到其他元素的布局,因此需要谨慎使用。

4. 使用transform属性:通过为元素应用transform属性,可以使用translate、scale或者rotate等方法将元素移动到指定位置,从而达到消除原本位置的效果。

transform属性可以通过CSS3的动画效果实现平滑的过渡。

5. 使用visibility属性:通过将元素的visibility属性设置为hidden,可以将元素隐藏起来,但仍然保留其原本的位置。

这种方法不会改变布局,但是元素仍然占据空间。

需要注意的是,以上方法适用于不同的场景,具体选择哪种方法取决于需要实现的效果和具体的布局需求。

在使用这些方法时,还需要考虑到兼容性和响应式设计等因素,以确保页面在各种设备上都能正常显示。

绝对定位和相对定分解课件

绝对定位和相对定分解课件

02
需要创建复杂的导航菜 单或模态框等特殊效果 时。
03
需要将元素相对于其正 常位置进行偏移或重叠 时。
04
需要实现响应式设计, 在不同屏幕尺寸下保持 布局的一致性和可读性 时。
05 绝对定位和相对定位的优 缺点比较
绝对定位的优缺点
定位精确
绝对定位能够将元素精确地定位在指定位置,不受其他元素位置的影响。
绝对定位和相对定位
目录
CONTENTS
• 绝对定位 • 相对定位 • 绝对定位与相对定位的区别 • 绝对定位和相对定位的混合使用 • 绝对定位和相对定位的优缺点比较
01 绝对定位
绝对定位的定义
• 绝对定位是CSS定位的一种方式 ,它相对于最近的已定位祖先元 素(即设置了position: relative 、position: absolute、 position: fixed或position: sticky的元素)进行定位。如果 没有已定位的祖先元素,那么它 会相对于初始包含块进行定位。
混合使用的特点
灵活性
混合使用绝对和相对定位可以创建更加复杂和灵活的页面布局, 满足各种设计需求。
控制性
通过调整绝对和相对定位的参数,可以精确控制元素的位置和尺 寸。
兼容性
在大多数现代浏览器中,绝对定位和相对定位都得到了很好的支 持,具有良好的兼容性。
混合使用的使用场景
01
需要将某个元素固定在 屏幕的特定位置,同时 其他元素仍需保持相对 位置不变时。
相对定位
元素的位置相对于其在正常流中的原始位置进行定位。即使元素被移动,它仍 然保留其原始空间。
在页面布局中的区别
绝对定位
元素从正常文档流中删除,不占据空 间,不会影响其他元素的布局。

CSS定位属性实现元素的精确定位

CSS定位属性实现元素的精确定位

CSS定位属性实现元素的精确定位CSS(层叠样式表)是一种用来描述网页上元素样式的语言,它可以使我们对元素进行样式的控制和定位。

CSS中的定位属性包括相对定位、绝对定位和固定定位,它们可以用来实现元素的精确定位。

一、相对定位(relative)相对定位是相对于元素原本所在的位置进行定位的。

我们可以使用相对定位来实现对元素的微调。

例如,我们可以将一个元素向左移动10像素,代码如下:```css#element {position: relative;left: -10px;}```这样,元素就会相对于原来的位置向左移动10像素。

二、绝对定位(absolute)绝对定位是相对于最近的已经定位的祖先元素进行定位的,如果没有已经定位的祖先元素,则相对于最初的包含块进行定位。

我们可以使用绝对定位来实现元素的精确定位。

例如,我们可以将一个元素定位在屏幕的右上角,代码如下:```css#element {position: absolute;top: 0;right: 0;}```这样,元素就会定位在屏幕的右上角。

三、固定定位(fixed)固定定位是相对于屏幕视口进行定位的,无论页面滚动与否,元素都会固定在指定的位置。

我们可以使用固定定位来实现元素的精确定位。

例如,我们可以将一个元素定位在屏幕底部居中,代码如下:```css#element {position: fixed;bottom: 0;left: 50%;transform: translateX(-50%);}```这样,元素就会在屏幕底部居中位置固定显示。

通过使用CSS的定位属性,我们可以实现元素的精确定位,从而达到更好的布局效果和用户体验。

无论是相对定位、绝对定位还是固定定位,都能够帮助我们灵活地控制元素的位置,以及实现更多元素的特殊效果。

需要注意的是,在使用CSS的定位属性时,要确保定位的元素在文档流中不会影响其他元素的位置,避免遮挡其他内容或布局错乱的情况发生。

前端CSS-相对定位,绝对定位,固定定位

前端CSS-相对定位,绝对定位,固定定位

前端CSS-相对定位,绝对定位,固定定位前端CSS - 相对定位,绝对定位,固定定位1.1 相对定位 position:relative相对定位,就是微调元素位置的.让元素相对⾃⼰原来的位置,进⾏位置的微调.也就是说,如果⼀个盒⼦想进⾏位置调整,那么就要使⽤相对定位了position:relative; →必须先声明,⾃⼰要相对定位了,left:100px; →然后进⾏调整。

top:150px; →然后进⾏调整。

1.2 相对定位的特性 - 不脱标,⽼家留坑,形影分离相对定位不脱标,真实位置是在⽼家,只不过影⼦出去了,可以到处飘.1.3 相对定位的⽤途相对定位有坑,所以⼀般不⽤于做"压盖"效果.页⾯中,效果极⼩.就两个作⽤:微调元素做绝对定位的参考,⼦绝⽗相(绝对定位中详细讲)1.4 相对定位的定位值可以⽤left,right来描述盒⼦右,左的移动可以⽤top,bottom来描述盒⼦的下,上的移动.position: relative;right: 100px; →往左边移动top: 100px;position: relative;right: 100px;bottom: 100px; →移动⽅向是向上。

2.1 绝对定位绝对定位脱标绝对定位的盒⼦,还脱离标准⽂档流的.所以,所有的标准⽂档流的性质,绝对定位之后都不遵守了.绝对定位之后,标签就不区分所谓的⾏内元素,块级元素了,不需要display:block;就可以设置宽⾼了span{position: absolute;top: 100px;left: 100px;width: 100px;height: 100px;background-color: pink;}2.2 参考点绝对定位的参考点,如果⽤top描述,那么定位参考点就是页⾯的左下⾓,⽽不是浏览器的左上⾓:如果⽤bottom描述,那么就是浏览器⾸屏窗⼝尺⼨,对应的页⾯的左下⾓:⾯试题:答案:⽤bottom的定位的时候,参考的事浏览器⾸屏⼤⼩对应的页⾯左下⾓.2.3 以盒⼦为参考点 - ⼦绝⽗相⼀个绝对定位的元素,如果⽗辈元素中出现了也定位了的元素,那么将以⽗辈这个元素,为参考点.⼦绝⽗绝,⼦绝⽗相,⼦绝⽗固,都是可以给⼉⼦定位的.但是,⼯程上,⼦绝,⽗绝,没有⼀个盒⼦在标准⽂档流中,所以页⾯就不稳固,没有任何实战⽤途.⼯程上,"⼦绝⽗相"有意义,⽗亲没有脱标,⼉⼦脱标在⽗亲的范围⾥⾯移动.<div class=”box1”> →绝对定位<div class=”box2”> →相对定位<div class=”box3”> →没有定位<p></p> →绝对定位,以box2为参考定位。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【3】下拉菜单
一般地,下拉菜单作为一个组件需要使用在各种场景中,如果给组件添加 relative 属性,则 降低了其利用率。
复制代码 body{
margin: 0; } ul{
margin: 0; padding: 0; list-style: none; } input{ padding: 0; border: 0; } .box{ width: 200px; height: 38px; border: 2px solid gray; } .con{ overflow: hidden; } .input{ float: left; width: 160px; height: 38px; } .search{ width: 38px; height: 38px; float: right; background: url('/uploads/rs/26/ddzmgynp/search.png') 0 -38px; } .list{ display:none; position: absolute; width: 158px; border: 1px solid #e6e8e9; overflow: hidden; } .in{ line-height: 30px; border-bottom: 1px solid lightblue; cursor:pointer; text-indent: 1em; } .in:hover{ background-color: #f9f9f9; } 复制代码 复制代码
index++; move(index); } } function move(index){ list.style.left = '-' + index*100 + '%'; } 复制代码
<div class="box"> <ul class="list" id="list"> <li class="in">第 1 个</li> <li class="in">第 2 个</li> <li class="in">第 3 个</li> <li class="in">第 4 个</li>
</ul> <div class="l" id="l">&lt;</div> <div class="r" id="r">&gt;</div> </div> 复制代码 复制代码
应用
以下是基于绝对定位静态位置的应用
【1】自适应位置的跟随图标
图标使用不依赖定位父级的 absolute 和 margin 属性进行定位,这样,当文本的字符个数改 变时,图标的位置可以自适应
复制代码 div{
height: 20px; width: 500px; line-height: 20px; margin-bottom: 30px; } i{ position: absolute; width: 28px; height: 11px; margin: -6px 0 0 2px; background: url('/uploads/rs/26/ddzmgynp/hot.gif'); } 复制代码 <div>长度可变文字<i></i></div>
} 复制代码 复制代码 <div class="box">
<div class="out"> <!-- 对于 safari 浏览器需要添加空格&nbsp;来触发右对齐,其他浏览器则不需要--> &nbsp; <ul class="list"> <li class="in">一</li> <li class="in">二</li> <li class="in">三</li> </ul>
text-align: center; font: 40px/200px '宋体';
color: white; overflow: hidden; } .list{ position: absolute; width: 400%; left: 0; top: 0; bottom: 0; transition: left 1s; } .in{ float: left; width: 25%; background-color: lightgreen; } .l,.r{ position: absolute; opacity: 0; top: 0; bottom: 0; background-color: rgba(0,0,0,0.1); cursor: pointer; } .l{ left: 0; right: 50%; } .r{ left: 50%; right: 0; } .l:hover,.r:hover{ opacity: 1; transition: 1s; } 复制代码 复制代码
var index = 0; var children = list.children; l.onclick = function(){
if(index > 0){ index --; move(index);
} } r.onclick = function(){ if(index < children.length -1){
CSS 绝对定位的应用
前面的话
之前的博客文章已经详细介绍过绝对定位的基础知识,由于它的用途实在广泛,于是单独 为其写这篇关于其应用的博客。关于绝对定位的基础知识移步至此
静态位置 当元素绝对定位后,若该元素的格式化属性不发生变化,则该元素处于静态位置。关于绝
对定位元素格式化的相关内容移步至此。元素的静态位置是指元素在正常流中原本的位置,更 确切的讲,顶端的静态位置是从包含块的上边界到假想框的上外边距边界之间的距离。假想框 是假设元素 position 属性为 static 时元素的第一个框。
<div class="box"> <div class="con"> <input class="input" id="input"> <a href="javascript:;" class="search"></a> </div>
<ul class="list" id="list"> <li class="in">选项一</li> <li class="in">选项二</li> <li class="in" style="margin-bottom: -1px">选项三</li>
【2】视频图片上的小图标提示
一般在视频图片上的边角上都会有"自制"、"最新"、"1080p"等诸如此类的提示。使用不依 赖的绝对定位属性,可以让父级元素不设置 relative,拓展性更强
复制代码 i{
position: absolute;
width:40px; text-align: center; height: 18px; line-height: 18px; font-style: normal; background-color: orange; color: white; padding: 2px; } .box{ height: 200px; width: 200px; border: 2px solid gray; } .in{ width: 100%; height: 100%; line-height: 100px; background-color: pink; display:inline-block; } .rt{ margin-left: -44px; } .lb{ margin-top: -22px; } .rb{ float: right; margin-top: -22px; margin-left: -44px; } 复制代码 复制代码 <div class="box"> <i class="lt">自制</i> <div class="in">测试内容</div><!---><i class="rt">独家</i> <i class="lb">1080p</i> <span style="width: 100%;display:inline-block"></span><!---><i class="rb">最新</i> </div> 复制代码
</ul> </div> 复制代码 复制代码 input.onfocus = function(){
list.style.display = 'block'; } input.onblur = function(){
相关文档
最新文档