CSS 定位和 CSS 边距之间的区别

2023-12-22

今天我学习了CSS中的两个概念,一个是CSS定位(静态、相对、绝对、固定),另一个是CSS边距,它定义元素之间的空间。

假设我想移动一个元素,这是最好的方法吗?因为这两个概念似乎都能够做同样的事情。示例可能如下:

代码(CSS定位):

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Haha</title>

        <style type="text/css">
            //Using CSS positioning
            h2{position:relative;top:-80px}
        </style>
    </head>

    <body>
        <h1>hahahaha</h1>
        <h2>hehehehe</h2>
    </body>
</html>

代码(CSS边距):

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Haha</title>

        <style type="text/css">
            //Using CSS Margin
            h2{margin-top:-80px}
        </style>
    </head>

    <body>
        <h1>hahahaha</h1>
        <h2>hehehehe</h2>
    </body>
</html>

问题:

1.)正如您所看到的,上面的 2 个代码通过将第二个标头移动到第一个标头的顶部来完成相同的操作。所以我只是想知道哪种方法实际上是排列元素的正确方法?


不,它们不一样,使用position: relative;保持元素在流动中,它只是移动元素position但在物理上它在使用时在流程中保留了空间margin它移动整个元素,影响使用移动的元素周围的元素margin,在某些情况下这也会导致边距崩溃......

Demo http://jsfiddle.net/He88F/ (position: relative;)

Demo http://jsfiddle.net/Eb3eZ/ (with margin)

CSS 定位如何工作?我刚刚解释过here https://stackoverflow.com/questions/20718577/how-css-positions-work-why-absolute-elements-stack-up-on-each-other-instead-of/20718728#20718728几分钟前


Also, margin和定位完全是两个不同的东西,定位是一个很大的概念,margin完全不同,定位不会影响您的盒子模型,其中margin是的,边距用于分隔元素,例如inline-block元素,或者说您需要在段落上方和下方留出一些空间,它们并不意味着position元素等...

如果你看到这个

边距占据元素周围的区域,即如果元素是50px in width你用margin of 10px, 它需要10px在所有方面,所以它实际上会让你的元素占据70px总共,50px => width + 10px => left margin + 10px => right margin,其中使用position,它不会扩大或缩小元素周围的区域,它只是改变position该元素可能会或可能不会影响页面上的其他元素,具体取决于position然而margin改变盒子模型,因此,它也会影响position其他元素,例如static and relative.


Also, margin不垂直应用于inline元素,这样如果您应用margin to span或任何其他inline元素说a, margin将仅水平拍摄而不是垂直拍摄,为此,您必须将它们制作为inline-block or block水平元素。

了解更多信息,你可以阅读我在另一个问题上的回答 https://stackoverflow.com/questions/11700985/margin-top-not-working-for-span-element/11700999#11700999。而你可以申请position: relative;对于任何元素,无论block, inline or inline-block它会position元素按照您想要的方式...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS 定位和 CSS 边距之间的区别 的相关文章

  • 如何正确使用 z-index?

    请在此处查看此页面 http www blakearchive org blake public exhibits canterburySpecial html http www blakearchive org blake public
  • Bootstrap 按钮的检查状态

    我想在 Bootstrap 3 0 2 中设置组复选框的选中状态 docs http getbootstrap com javascript buttons html div class btn group div
  • 裁剪响应式全宽图像

    我必须剪辑跨越整个宽度的图像 以下事情对我不起作用 剪辑 这需要绝对位置 因此块元素不会堆叠在下面 背景位置 缩放时无法正确剪辑 放大时剪辑的部分会增加 反之亦然 包装器 包装器高度取决于浏览器宽度 因此其值应该是动态的 我使用了 seti
  • 强制应用媒体查询

    我有这个 html 和 css 代码 div class wrapper div class a div div class b div div media all and max width 400px max height 300px
  • 如何在绝对定位的 div 内用 CSS 创建粘性页脚?

    我想创建一个粘性页脚inside绝对定位的 div 元素 我的方法是将页脚 div 也绝对定位 在另一个相对定位的 页面 div 内 其中包含页面的实际内容 div class content div class page Some Lor
  • 如何使div垂直滚动[重复]

    这个问题在这里已经有答案了 我用图片元素列表做了一个水平滚动 但是当我垂直滚动它时我失败了 我的水平滚动条代码是 div class pic container div class pic row div style width 100 a
  • 设置绝对仓位和保证金

    我想设置一个元素的position to absolute并有一个margin bottom 但似乎margin bottom没有效果 HTML div div CSS container border 1px solid red posi
  • Rails 上的 SASS 无效 CSS 错误

    我正在尝试使用http startbootstrap com stylish portfolio http startbootstrap com stylish portfolio但是 在我的 Rails 应用程序中 我在 vintage
  • Zurb 基金会粘性页脚

    我想使用 Foundation 4 拥有粘性页脚 并且我想使用 HTML5
  • 如何使弹出窗口溢出:在溢出内可见:自动上下文

    我有一个 div 列表 如果超过父框 overflow x 应该滚动 并且在悬停时 我想看到一个弹出窗口 我的问题是 如果我将鼠标悬停在任何子 div 上 弹出窗口将被考虑用于溢出计算 但我只想让它在所有内容之上可见 而不是使其扩展滚动区域
  • Firefox -moz-border-radius 不会裁剪图像?

    如果设置了图像的边框半径 有谁知道如何让 Firefox 裁剪角 它包含的元素可以正常工作 但我会发现丑陋的角落伸出来 有什么方法可以解决此问题 而无需将图像设置为背景图像或在将其放在网站上之前对其进行处理吗 解决方法 将图像设置为容器元素
  • Sass mixin 将背景透明度恢复到 IE8

    我是 Sass 新手 并为此苦苦挣扎 我无法在两者中渲染颜色hex 对于 IE 和rgba 每一个小片段都让我感到沮丧 因为我还没有掌握语法 而且 Sass 的 Google 结果仍然很少 这是混合 mixin transparent he
  • 使用最后一个子选择器减少 CSS

    我在用less并试图得到last输入有一个边距底部 of 10px 这是我所拥有的 但它不起作用 并且没有在最后一个输入上应用 margin bottom 有什么想法吗 input margin bottom 0px last child
  • Bootstrap

    我正在尝试使用 Bootstrap 构建一个网站 到目前为止 一切都按计划进行 我想要一个固定的导航栏 并且我正在使用内置函数 div class navbar navbar fixed top 这很棒 正是我所需要的 但我希望导航和标题从
  • 重新加载页面时删除哈希值?

    我使用哈希来切换我的图像滑块 当我重新加载页面并且哈希值设置为 e h 3 没有图片 当图库在几秒钟后自动滑动时 它显示下一个 所以几秒钟内什么也没有 有没有办法在加载页面时检查哈希并将其删除 我只想关心那些用散列为页面添加书签的人 问候
  • 如何在 CSS 中将 RadioButton 图标样式设置为无(在 Flex 3 中)?

    您可以通过在 CSS 中设置以下值来在 Flex 中设置 RadioButton 的外观 upSkin Embed overSkin Embed ownSkin Embed disabledSkin Embed selectedUpSkin
  • Firefox 忽略 CSS 中的最小高度

    由于某些原因 最小高度在 Firefox 上不起作用 我尝试在 body 上设置 min height 但 Firefox 完全忽略了它 由于我的页面是动态的 我不能只将高度设置为 100 我应该怎么办 body border 1px so
  • 对其中一个具有相同 tabindex 的焦点的所有元素应用相同的效果

    在我的上一篇文章中 我问了如何通过 css 选择器使不可聚焦的元素变得可聚焦 答案是使用tabindex 现在我希望 当具有选择器的元素获得焦点 单击 时 选择器选择的另一个元素也能获得效果 这可能听起来很奇怪 但我很久以前就可以不小心这样
  • 如何显示接下来的三个图像单击加载更多按钮

    我需要一个加载更多按钮来显示图像 页面加载时 我显示 3 个图像 单击 加载更多 按钮后 接下来的 3 个图像将显示在屏幕上 我尝试了下面的代码 但它不起作用 你能帮我解决这个问题吗 function item slice 0 2 show
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h

随机推荐

  • 创建 UITableView 单元格以具有动态高度

    我正在尝试创建一个表格视图单元格来容纳不同长度的文本 并且我需要每个单元格具有动态高度 我尝试使用以下但没有显示 tableView rowHeight UITableViewAutomaticDimension tableView est
  • XML 架构如何声明价格和货币

    我正在创建一个存储有关房屋信息的 XML 架构 我想存储price和currency 在我看来 通过将货币作为价格元素的属性来声明这一点是有意义的 另外 我想限制可以输入的值currency换算为英镑 欧元或美元 EG
  • Servlet 与 MVC 框架 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我经常遇到这样的问题 为什么我们有很多 Web 框架来解决相同或相似的缺点 当深入研究时 我也思考过为什么在其他Web框架 如Stru
  • 如何计算复杂文档(.rtf、.doc、.odt 等)中的字数?

    我正在尝试编写一个 Python 函数 在给定文档文件的路径的情况下 返回该文档中的单词数 使用 txt 文件可以很容易地做到这一点 并且有一些工具可以让我同时支持一些更复杂的文档格式 但我想要一个真正全面的解决方案 查看 OpenOffi
  • 如何在移动设备上触发 Mousedown/Mouseup?

    I m 创建网站 https crscillitoe github io AngularBridges 为我的朋友让他们玩更高质量的在线实施桥尾加罗 https en wikipedia org wiki Hashiwokakero 他们中
  • sql查询从两个表中获取记录

    表A Id pin status etc 1 11 FAILED 2 22 3 44 4 55 FAILED Table B id PIN msg counter 1 11 xyz 1 4 55 wsc 10 表数据 我有2个表表A 状态
  • 首次使用 Google 地图启动 Activity 非常慢

    我想在我的活动之一中添加 SupportMapFragment 我将此片段直接添加到布局 xml 中 并将此布局设置为内容视图 但是当Activity第一次启动时 花费的时间太长 超过1秒 下次启动就可以了 只需几毫秒 I tried 删除
  • 实时转录 | Twilio 代理会议

    我指的是克里斯给出的演示here https youtu be Am74WU1zENA t 727 尤其是 Stuart 和 Kris 所显示的单独的活跃转录 我熟悉会议 聚集 拨号 但我无法复制整个架构 我有兴趣让 2 个人参加会议 并以
  • 使用 opencv C++、SolvePnP 函数进行相机位姿估计

    我正在尝试测量相机的姿势 并且我已经完成了以下操作 标记世界 3 D 假设 z 0 因为它是平的 点位于平面上正方形的角上 并假设世界坐标系 以 cms 为单位 以正方形的左上角为原点 并按以下顺序给出世界点 x y 或 列 行 0 0 1
  • 如何将 Galleria 插件与 Rails 4 Pipeline 一起使用

    我最近在让 Galleria 插件与 Rails 4 Pipeline 一起使用时遇到了麻烦 我花了一段时间才弄清楚如何让它工作 所以我想分享解决方案 以防有人遇到类似的问题 1 下载插件后 将galleria 1 3 3 js 这是我写这
  • 如何使用 Jquery 在 iframe 中加载 url

    我想在点击时加载 iframe 这就是我到目前为止所拥有的 frame click function this load http www google com 这不起作用 这是完整的代码 JS Bin http jsbin com oma
  • 如何在div内替换div的样式(背景颜色)

    如果我有这样的 HTML 如何交替使用 id container 的 div 内的 div 的样式 带有 jquery 的背景颜色 偶数和奇数 div div div div div div div div div div 我知道像这样的桌
  • 在 html5 画布上拖动图像并调整其大小

    我正在构建一个 HTML5 画布图像编辑器 将图像上传到画布后 我需要拖动并在画布上调整其大小 我设法上传图像并使其可在画布上拖动 但我需要让它沿着画布调整大小 提前致谢 var Img new Image Img src file Img
  • vb.net 中 Timer.Start 和 Timer.Enabled = True 有什么区别?

    我想知道在 vb net 中启动计时器和启用计时器有什么区别 他们都做同样的事情 根据MSDN http msdn microsoft com en us library 7dd5f0z7 28v vs 110 29 aspx启动方法 通过
  • 何时在数据库列中使用逗号分隔值?

    好的 我知道技术答案是NEVER https stackoverflow com questions 3653462 is storing a comma separated list in a database column really
  • Spotfire IronPython 脚本可滚动筛选器并每一步更新可视化(按日期范围播放按钮)

    大家早上好 我已经研究这个问题几天了 但无法找到解决办法 我已经研究和谷歌搜索无济于事 任何帮助 见解将不胜感激 我正在尝试创建一个按钮 单击该按钮时将自动通过日期过滤器 例如从 1 1 15 开始 并通过 1 2 1 5 在逐步通过时使用
  • 找不到符号方法startActivity(android.content.Intent)

    我是制作 Android 应用程序的初学者 我制作了一个显示我的网页的网络视图 我的网页包含我希望在邮件和拨号等外部应用程序中打开的联系人按钮 因此我得到了一些帮助并得到了这样的代码 import android app Activity
  • 如何检测浏览器类型及其版本

    我如何在 Rails 中检测浏览器类型及其版本 我想检查特定浏览器的版本 如果不需要浏览器版本 则要求用户升级它 我使用下面指定的命令 但由于它不遵循标准模式 我无法使用它 request env HTTP USER AGENT Chrom
  • PHP YAML 解析器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • CSS 定位和 CSS 边距之间的区别

    今天我学习了CSS中的两个概念 一个是CSS定位 静态 相对 绝对 固定 另一个是CSS边距 它定义元素之间的空间 假设我想移动一个元素 这是最好的方法吗 因为这两个概念似乎都能够做同样的事情 示例可能如下 代码 CSS定位