关于绝对定位(absolute)和浮动定位(float)的分析

这篇文章主要介绍了关于绝对定位(absolute)和浮动定位(float)的分析,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

绝对定位或浮动都能够用来实现分栏效果。二者可以独立使用,也可以结合在一起,相辅相成。

在CSS中,实现分栏布局有两种方法。第一种方法是使用四种CSS定位选项(absolute 、static、relative和fixed)中的绝对定位(absolute positioning),它可以将文档中的某个元素从其原本位置上移除,并重新定位在期望的任何地点之上。第二种则是使用CSS中的浮动(float)概念。

绝对定位或浮动都能够用来实现分栏效果。二者可以独立使用,也可以结合在一起,相辅相成。

1、绝对定位

绝对定位的优势在于,我们可以丝毫不差地精确控制任何元素的位置—这里面没有什么需要猜测或者运气的成分。由于应用了绝对定位的元素被不留痕迹地从常规文档流中完全移除,所以它也不会为其他元素带来任何的影响。

那么让我们试一试用绝对定位如何实现下面的布局。

 

关于绝对定位(absolute)和浮动定位(float)的分析

这是一个三栏的布局,并且是居中显示的。其中,A栏是主体内容栏,B栏和C栏都是侧边栏。首先,我们不可能直接用绝对定位将A、B、C三栏定位到居中的位置,因为每个人显示器的分辨率是不同的,在1024X768分辨率的显示器上定位的居中效果,在别的分辨率的显示器上看到的效果肯定不会是居中显示的,那么,该如何解决这个问题呢?

幸好,在绝对定位模型中有个极为有用的特性,那就是:若某个绝对定位元素的容器也被定位过,那么该元素指定的top和left值将不会基于文档的根元素html(也就是浏览器窗口的左上角)计算,而是会基于其容器的左上角计算这个偏移量。换句话说,也就是:被定位过的容器将扮演其中所有元素绝对定位起始点的角色。

所以,利用这个特性,我们给A、B、C栏的外部加上一个容器D,如下图:

关于绝对定位(absolute)和浮动定位(float)的分析

然后,我们让容器D居中,并给它加上一个属性:position:relative,这样,再用绝对定位定位A、B、C的top和left值,A、B、C的位置就会基于容器D的左上角的位置来计算了,这样就可以实现我们期望的三栏居中的效果了。

但是,我们常用的布局并没有这么简单,除了三栏之外,我们还需要一个页头和一个页脚,如下图:

关于绝对定位(absolute)和浮动定位(float)的分析

这时候,再用绝对定位布局就行不通了,因为绝对定位的元素会从文档流中完全移除,这时,页脚会紧挨着页头,显示在页头的下方。

如果我们一定要采用绝对定位的话,那么必须预先知道这三栏中每一栏的高度,然后再根据其中最高的一栏定位页脚。若是任意一栏中的文本长度无法确定的话,除了使用JavaScript,我们也只能放弃绝对定位的念头,转而投入到浮动布局的怀抱。

2、浮动

浮动的本意是要将插入到文章中的图片向左或者向右浮动,使图片下方的文字自动环绕在它的周围,使图片的左边或者右边不会出现一大块的留白。

浮动的语法虽然简单,但却不那么容易掌握,下面让我们举例说明如何用浮动来进行布局。同样,我们要实现一个带页脚的三栏布局。如下图:

关于绝对定位(absolute)和浮动定位(float)的分析

 如何用浮动实现这样的效果呢?其实很简单:

1、设定E的宽度,让E居中

2、设定A、B、C的宽度,将A、B、C分别向左浮动

3、给页脚设置clear属性

需要说明的是,浮动布局依然遵循常规文档流,所以与绝对定位相比,浮动定位时HTML源文件中元素声明的位置显得格外重要。 当然,解决这个问题的最简单的方法就是在源文件中交换左栏和右栏的声明次序,也有方法不用交换各栏的次序也可以实现同样的布局,但是,这就要用到一种比较晦涩的使用负边距值的方法。一般情况下,人们十有八九会选择交换源文件中左中两栏的声明次序。

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

关于css实现右侧固定宽度和左侧宽度的自适应方法

关于HTML中rel属性的分析

以上就是关于绝对定位(absolute)和浮动定位(float)的分析的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1610494.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
关于css属性的选择对动画性能的影响
上一篇 2025年12月24日 01:30:28
关于CSS的书写规范顺序和命名规则
下一篇 2025年12月24日 01:30:52

相关推荐

  • 如何使用 JS 实现渐进式进度条和三角形图片的渐进变化?

    使用 js 实现渐进式进度条效果 原进度条设计中,渐变方向错误,需要将其改为从左到右渐变。本文将使用 js 修改渐变效果,实现从左到右渐进的效果。 三角形图片的渐进式变化 除了进度条的渐变外,题主还希望让三角形上的图片也实现渐进式变化。根据题主补充的描述,可以使用 js 修改进度条的 -webkit…

    2026年5月10日
    000
  • js怎么控制页面打印样式 打印页面自定义样式技巧

    js怎么控制页面打印样式 打印页面自定义样式技巧js怎么控制页面打印样式 打印页面自定义样式技巧js怎么控制页面打印样式 打印页面自定义样式技巧js怎么控制页面打印样式 打印页面自定义样式技巧

    控制javascript页面打印样式的答案是使用css的@media print媒体查询和javascript动态修改样式。具体方法包括:1. 使用@media print定义打印样式,如隐藏元素、调整字体大小、修改链接样式;2. 利用javascript监听beforeprint和afterpri…

    2026年5月10日 用户投稿
    000
  • html如何制作水印_HTML水印(文字/图片)添加与设置方法

    使用CSS和HTML可实现网页水印,方法包括:一、通过background-image与data URI嵌入斜向文字水印;二、利用伪元素结合transform旋转生成叠加文字层;三、插入img标签或背景图设置固定位置图片水印;四、用Canvas绘制多行斜纹并转Base64作背景;五、通过禁用右键、屏…

    2026年5月10日
    100
  • CSS技巧:如何将元素固定在页面底部

    CSS技巧:如何将元素固定在页面底部CSS技巧:如何将元素固定在页面底部CSS技巧:如何将元素固定在页面底部CSS技巧:如何将元素固定在页面底部

    本教程旨在解决如何使用CSS将一个元素固定在网页底部的问题。我们将探讨使用position: absolute和position: fixed两种方法来实现这一目标,并解释每种方法的适用场景和注意事项。通过学习本文,你将能够灵活地控制元素在页面中的位置,从而创建更具吸引力和用户友好的网页布局。 在网…

    2026年5月10日 用户投稿
    000
  • 使用 CSS 创建箭头轮廓的技巧

    本文介绍了如何使用 CSS 为箭头形状创建轮廓效果。传统的 `outline` 属性会围绕整个元素盒子生成轮廓,而本文提供了一种使用 `box-shadow` 属性来模拟箭头轮廓的解决方案,并添加伪元素以完善轮廓的视觉效果,从而实现更精确的轮廓控制。 在 CSS 中,使用 outline 属性可以为…

    2026年5月10日
    000
  • 使用 CSS 实现图片悬停文字提示

    使用 CSS 实现图片悬停文字提示使用 CSS 实现图片悬停文字提示使用 CSS 实现图片悬停文字提示使用 CSS 实现图片悬停文字提示

    本教程详细介绍了如何使用 html 的 ` ` 和 “ 元素结合 css 实现图片悬停显示文本的交互效果。通过巧妙运用 css 动画和变换属性,当用户鼠标悬停在图片上时,图片会缩小、模糊,同时预设的文本内容平滑地淡入显示,从而提升用户界面的动态性和信息提示的友好性。 引言:图片悬停效果的重要性 在…

    2026年5月10日 用户投稿
    200
  • 在 Ionic 中实现聊天式输入框:多图标定位与布局优化

    本文旨在解决 Ionic 应用中聊天式输入框的布局难题,特别是如何在 ion-footer 内的 ion-input 组件中,正确地定位多个右侧图标按钮,同时避免图标重叠和文本流异常。通过采用 ion-toolbar 和 slot=”end” 等 Ionic 提供的布局机制,…

    2026年5月10日
    200
  • 如何使用动态单位和响应式布局解决页面大小变化导致图片位置飘移的问题?

    解决页面大小变化导致图片位置飘移 问题中提到使用绝对定位后,页面大小变化时图片位置出现漂移。这种情况下,可以考虑以下方法: 使用动态单位配合响应式布局 动态单位: vw:浏览器内置单位,100vw 等于页面可视宽度。rem:相对于根元素()的字体大小。 响应式布局: 使用 @media 媒体查询,针…

    2026年5月10日
    000
  • CSS布局技巧:如何高效实现块级元素的水平居中

    本教程详细介绍了在CSS中实现块级元素水平居中的标准方法。通过使用`margin: auto;`属性,结合明确的`width`定义,开发者可以轻松地将`div`、`header`等块级元素在其父容器中水平居中。文章将提供清晰的代码示例和关键注意事项,帮助您掌握这一基础而重要的CSS布局技术。 在网页…

    2026年5月10日
    000
  • JavaScript动画中定位属性的过渡陷阱与解决方案

    本文深入探讨了javascript动画中css定位属性 `left` 和 `right` 同时使用时可能引发的过渡失效问题。文章通过一个卡片移动动画的案例,解释了浏览器处理这些冲突属性的机制,并提供了实用的解决方案:在执行水平方向的过渡动画时,应避免同时设置 `left` 和 `right`,建议仅…

    2026年5月10日
    100
  • CSS图像定位:实现水平居中与垂直下移的实用指南

    CSS图像定位:实现水平居中与垂直下移的实用指南CSS图像定位:实现水平居中与垂直下移的实用指南CSS图像定位:实现水平居中与垂直下移的实用指南CSS图像定位:实现水平居中与垂直下移的实用指南

    本教程详细阐述了如何使用css精确控制图像的水平居中和垂直下移。文章深入探讨了外边距(margin)、内边距(padding)以及定位(position)属性的应用,并提供了清晰的代码示例,帮助开发者理解并掌握图像布局的各种技巧,避免常见误区,从而创建响应式且美观的网页设计。 在网页设计中,精确控制…

    2026年5月10日 用户投稿
    000
  • 优化绝对定位的不足,掌握灵活运用的方法!

    绝对定位是CSS中一种常见的定位方式,通过给元素设置top、bottom、left、right等属性,将元素精确地定位在页面上的指定位置上。然而,尽管绝对定位有其独特的优势,但也存在一些不足之处。本文将探究绝对定位的不足,并分享一些灵活运用的技巧,以便在实际开发中能更好地应用。 首先,绝对定位的一个…

    2026年5月10日
    000
  • CSS响应式布局:利用VW单位优化文本定位与尺寸

    本教程旨在解决CSS响应式布局中,文本内容在不同屏幕尺寸下定位不准确、易重叠的问题。我们将探讨如何利用CSS的`vw`(viewport width)单位实现文本尺寸的自适应,并结合其他布局技巧,确保文本始终保持在预期位置,避免与图片等其他元素冲突,从而提升用户体验。 响应式文本与定位挑战 在构建现…

    2026年5月10日
    100
  • 如何解决HTML表格布局混乱的处理方法

    首先检查HTML标签结构是否完整,确保table、thead、tbody、tr、th、td正确嵌套;其次通过CSS设置table-layout: fixed、border-collapse: collapse,并避免使用float或absolute定位;最后为适配移动端,可在外层容器添加overfl…

    用户投稿 2026年5月10日
    000
  • 如何精确控制CSS文本元素底边框的起始与长度

    本教程旨在详细阐述如何在CSS中精确控制文本元素(如` `)的底边框起始位置和长度,避免其默认的延伸行为。文章将介绍两种主要方法:通过调整内边距和移除固定宽度使边框适应内容,以及利用CSS伪元素(`::after`)实现像素级的精细定位和宽度控制,从而满足多样化的设计需求。 在网页设计中,为标题或文…

    2026年5月10日
    000
  • HTML如何设置全屏控制样式?fullscreen-controls伪类的作用是什么?

    要实现全屏控制样式,最有效的方法是放弃原生控件并创建自定义ui,具体步骤为:1. 使用javascript的fullscreen api(如element.requestfullscreen()和document.exitfullscreen())控制全屏状态;2. 隐藏原生控件,例如通过设置vid…

    2026年5月10日
    000
  • 如何使用CSS让图片不撑高父元素?

    巧用CSS,图片不再撑高父元素 前端布局中,控制元素高度是常见挑战。例如,父容器包含文字和图片,我们希望父容器高度仅受文字影响,图片高度不干扰。本文将介绍纯CSS解决方案。 父容器被子元素撑高的原因在于:子元素(图片或文字)未脱离文档流,且父元素高度未固定。因此,最大高度的子元素决定父元素高度。 基…

    2026年5月10日
    000
  • 如何使用CSS Flexbox将导航栏精确地定位到右侧

    本教程详细介绍了如何利用CSS Flexbox技术,将网页导航栏(Nav Bar)精准地定位到容器的右侧,同时保持其背景透明。文章通过分析常见的布局问题,提供了基于Flexbox的优化解决方案,并深入解析了display: flex、flex-direction和align-items等关键CSS属…

    2026年5月10日
    000
  • 使用 CSS Scroll Snap 实现目标元素后微调对齐

    本文旨在解决在使用 CSS Scroll Snap 功能时,如何使滚动捕捉位置略微偏移目标元素之后的问题。通过创建一个绝对定位的空 div 元素,并将其设置为滚动捕捉点,可以有效地实现对滚动捕捉位置的微调,从而隐藏特定视觉元素或达到其他设计目的。 在使用 CSS Scroll Snap 时,有时我们…

    2026年5月10日
    000
  • 利用CSS Grid实现复杂嵌套结构水平重排

    本文详细介绍了如何将一个包含主方块和两个底部小方块的嵌套结构,通过CSS Grid布局实现水平重排,使小方块垂直堆叠在主方块的旁边。教程对比了Flexbox在处理此类二维布局时的局限性,并深入讲解了CSS Grid的`grid-template-columns`、`grid-template-row…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信