CSS:显示:内联块和定位:绝对

2023-12-10

请考虑以下代码:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <style type="text/css">
        .section {
            display: block;
            width: 200px;
            border: 1px dashed blue;
            margin-bottom: 10px;
        }
        .element-left,
        .element-right-a,
        .element-right-b {
            display: inline-block;
            background-color: #ccc;
            vertical-align: top;
        }
        .element-right-a,
        .element-right-b {
            max-width: 100px;
        }
        .element-right-b {
            position: absolute;
            left: 100px;
        }
    </style>
    <title>test</title>
</head>
<body>
    <div class="section">
        <span class="element-left">some text</span>
        <span class="element-right-a">some text</span>
    </div>
    <div class="section">
        <span class="element-left">some text</span>
        <span class="element-right-a">some more text to force line wrapping</span>
    </div>
    <div class="section">
        <span class="element-left">some text</span>
        <span class="element-right-b">some text</span>
    </div>
    <div class="section">
        <span class="element-left">some text</span>
        <span class="element-right-b">some more text to force line wrapping</span>
    </div>
    <div class="section">
        <span class="element-left">some text</span>
        <span class="element-right-b">some more text to force line wrapping</span>
    </div>
</body>
</html>

具有绝对定位的元素显然使包含框“忘记”了他需要的高度。

我需要“部分”框中的绝对定位,是否有其他解决方案?

edit

使用表格并不是真正的选择,我需要某种“多级”/“嵌套”布局,其中第二列始终位于同一位置:



| some text in first column       | some text in 2nd column
  | some indented text            | 2nd column
  | also indented                 | 2nd col
    | even more indent            | 2nd column with a lot of text that
                                  |  makes it wrap
  | text                          | ...
| blah blah                       | ...
  

(当然没有“|”)


当你使用position:absolute;,该元素被从正常页面流中取出。因此它不再影响其容器元素的布局。所以容器元素不考虑它的高度,所以如果没有其他东西来设置高度,那么容器的高度将为零。

另外,设置display:inline-block;对于以下元素没有任何意义position:absolute;。同样,这是因为绝对定位使元素脱离了页面流。这与inline-block,它的存在只是为了影响元素如何适应页面流。所有元素都是position:absolute;被自动视为display:block,因为这是绝对定位的唯一逻辑显示模式。

If you need绝对定位,那么解决你的高度问题的唯一办法就是设置容器盒子的高度。

不过,我怀疑你可以不用绝对定位。

看来您要做的就是定位第二个<span>将每个块移动到块中的固定位置,使它们对齐。

这是一个经典的 CSS 问题。在“糟糕的旧时代”,网页设计师会使用表格来完成此操作,表格单元格的宽度固定。这显然不是当今网页设计师的答案,但却引起了很多问题。

使用 CSS 有多种方法可以做到这一点。

最简单的方法是同时设置<span>元素到display:inline-block;,并给它们两个固定的宽度。

eg:

<div class='section'>
    <span class="element-left">some text</span>
    <span class="element-right">some text</span>
</div>

使用以下 CSS:

.section span  {display:inline-block;}
.element-left  {width:200px;}
.element-right {width:150px;}

[EDIT]问题更新后

以下是我如何实现您现在所要求的:

<div class='section'>
    <span class="element-left"><span class='indent-0'>some text</span></span>
    <span class="element-right">some text</span>
</div>
<div class='section'>
    <span class="element-left"><span class='indent-1'>some text</span></span>
    <span class="element-right">some text</span>
</div>
<div class='section'>
    <span class="element-left"><span class='indent-2'>some text</span></span>
    <span class="element-right">some text</span>
</div>

使用以下 CSS:

.section span  {display:inline-block;}
.element-left  {width:200px;}
.indent-1 {padding:10px;}
.indent-2 {padding:20px;}
.element-right {width:150px;}

少量的额外标记,但确实达到了你想要的效果。

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

CSS:显示:内联块和定位:绝对 的相关文章

  • 可以将position:absolute元素设为粘性吗?

    In CSS position sticky使元素能够显示position static行为 即 它采用文档流中的默认位置 直到到达某个滚动位置 然后采用position fixed行为 那么 这是否意味着我们不能使用position st
  • 使用 python 在一个 html 页面中显示分割数据框的 HTML 代码

    我是 html css 新手 所以对以 html 格式显示的数据有疑问 我有一个很长的列表 我想将其拆分并以 html 格式显示为两个单独的列 例如 而不是 Col1 Col2 1 a 2 a 3 a 4 a 5 b 6 b 7 b 8 b
  • 在 ember-cli 中安装 Foundation 5

    我对 ember 相当陌生 对构建工具也很陌生 我目前正在使用通常的基础安装以及基础 cli 和指南针来编译我的 css 这有点痛苦 并且对于团队工作来说非常糟糕 我认为用 Bower 安装文件并使用会更好ember cli compass
  • 网站在 iPhone 屏幕右侧显示空白区域

    我遇到问题http eiglaw com http eiglaw com iPhone 屏幕右侧显示约 25 像素宽的空白 边框 我在 stackoverflow 上研究了这个问题 这些帖子是相关的 但是当我尝试提供的各种解决方案时 我无法
  • Sass:@use 出错,未定义变量

    我正在使用 Sass 并且想要使用 use关键字而不是 import 因为 import有很多问题 另外只有dart sass支持这个功能 我将node sass改为dart sass 然而 问题出现了 我原来的代码 import carb
  • 浮动图像周围具有最小列宽的流动文本

    我想要一种方法来防止流动文本列变得太窄 例如 在一列 HTML 文本中 有一个图像浮动到左侧 正如预期的那样 文本沿着图像周围的列的右侧向下流动 但是 如果图像几乎与列一样宽 则文本最终会非常窄 在这种情况下 我希望文本简单地not流过图像
  • Bootstrap:如何将按钮组对齐在中心(垂直)

    在下面的代码中
  • 删除 IE9 边缘周围的 2px 灰色边框

    我正在尝试对这个网站进行编码 尝试关键字 并且我正在尝试找出如何删除这个阴影2px灰色边框延伸到 IE9 窗口的内部 至少顶部 左侧和底部 我的边距设置为零 因此所有页面元素都到达页面的最边缘 但使用 IE9 它们会停在这个灰色边框处 我没
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • 使用 CSS 的响应式图像

    我发现调整图像大小以使其具有响应能力很棘手 我正在开发一个 php 应用程序来自动将网站转换为响应式版本 我有点被图像困住了 我已经成功地为网站上的每个图像添加了一个包装类 并且可以很好地调整图像的大小 我的问题在于自然小于窗口的图像 例如
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • css3按钮背景颜色无限过渡

    有没有办法仅使用 css3 使按钮的背景颜色从灰色渐变为蓝色 然后又回到灰色 一个很好的例子是默认操作按钮是可可 我知道这可以在 javascript 中完成 但我宁愿只使用 css 来完成此操作 您好 我已经通过 CSS3 动画制作了按钮
  • 指南针字体输出错误的字体文件路径

    font face font family HelveticaNeueLTStd Lt src url css fonts HelveticaNeueLTStd Lt otf format opentype 这是我的指南针代码的输出 inc
  • 如何隐藏div元素中太长的文本?

    如何隐藏 div 中的溢出 如果文本比 div 长 则文本将换行到新行 div style width 50px border 1px solid black test test test test div 也许是 CSS 属性text o
  • 如何在更大的 div 中垂直和水平居中一个 div?

    如何将一个 水平居中于另一个 中 我设法使用已接受答案中的样式水平居中 我怎样才能让它垂直居中 内部 div 的高度未知 https stackoverflow com questions 114543 how to center div
  • 为什么 IE8 在我的图像锚标记上添加底部边框?

    我知道 这很可悲 但今天早上 IT 刚刚在我的机器上安装了 IE8 我立刻遇到了一个明显的问题 尽管我知道答案就在我面前 但我已经把它搞砸了太久了 首先 这是网站 www mchenry edu http www mchenry edu 在
  • Firefox 不会在使用 jQuery AJAX 加载的内容上呈现 CSS 样式

    我有一个网站 允许用户对书籍和文章发表评论 主表单有一个搜索输入 用于查找相关书籍或文章 来源 我使用 jQuery 根据输入的搜索词从外部站点动态加载新源 然后还使用 AJAX 返回列表中的源 我有两个问题 现在 在用户输入四个字符后 j
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • 如何创建适合屏幕宽度的等宽/高框? [复制]

    这个问题在这里已经有答案了 我正在尝试建立一个网站 其中有很多宽度和高度相等的框 例如 我有一个页面 其中并排有两个相同大小的框 简单的解决方案是将宽度和高度设置为 50vw 这在出现滚动条之前效果很好 我已经用谷歌搜索了几个小时 但无法理

随机推荐

  • SASS - 增加一个类并选择列表中的下一个变量

    我正在尝试进行一个设置 将类从 1 增加到 12 并根据变量列表 也是 12 个变量 设置背景颜色 我很接近 但没有得到我所希望的 这是我第一次涉足 SASS 中的控制指令 所以请原谅我的无知 目前 我正在成功增加班级 这是我错过的选择增量
  • 如何在 MVVM WPF 应用程序中向父视图通知子视图事件?

    我有一个基于 MVVM 的 WPF 桌面应用程序 我正在利用 MVVMLight 和 Prism 创建包含视图和子视图的用户控件 我在子视图上有按钮 假设这是一个关闭按钮 将单击事件的通知从嵌套子视图传播到其包含的父视图的最佳方法是什么 子
  • Linq,如何做groupBy?

    项目表 ID 部门 ID 年份 名称 级别 Id 1 DeptId 1 Year 2000 Name ABC Level 1 Id 2 DeptId 1 Year 2001 Name ABC1 Level 1 Id 3 DeptId 1 Y
  • ASP.NET Core 3.1 中的数据表服务器端处理

    我是新来的数据表通过 AJAX 调用 我需要对数千条记录实施服务器端处理 我正在学习教程 但我对服务器端处理感到困惑 我在尝试从数据源渲染数据时收到错误 让我发布所有相关代码 希望您能帮助我找出哪里出错了 由于我是新手数据表和 Ajax 我
  • 如何在 ASP.Net MVC3 中将值从一个控制器传递到另一个控制器

    你好在我的项目中我必须传递欢迎信息username到索引页 它是一个 MVC3 ASP Net Razor 项目 有两个控制器 第一个是登录控制器 第二个是家庭控制器 从登录控制器 我必须通过UserName登录者的视图页面 登录控制器重定
  • jmvfw.dll:无法在 AMD 64 位平台上加载 IA 32 位 .dll

    系统 赢7 64位 JMF 通过启动 JMstudio 在我的系统上工作 它找到我的驱动程序并启动我的麦克风和网络摄像头 但是当我运行 Netbeans 代码时它不起作用 我已按照此网站上的以下步骤在 Win 7 64 位上安装 JMF 但
  • 交叉编译器与 JVM

    我想知道 JVM 的用途 如果创建 JVM 是为了允许平台无关的可执行代码 那么能够生成平台无关的可执行代码的交叉编译器就不能取代 JVM 吗 有关交叉编译器的信息检索自 http en wikipedia org wiki Cross c
  • fwrite(): SSL 操作失败,代码为 1。OpenSSL 错误消息:\n错误:1409F07F:SSL 例程:SSL3_WRITE_PENDING:PHP 中的错误写入重试

    我在 stackoverflow 上遇到了同样的问题 并尝试了所有答案 但没有帮助 我不明白错误是什么 这是我正在使用的函数 function sendRegistryNotification message deviceToken dev
  • 如何在 Discord.js 中按名称查找表情符号

    所以过去几天我非常沮丧 因为我无法在网上找到一个资源来正确记录在用 javascript 编写不和谐机器人时如何找到表情符号 我一直在参考本指南 其中有关表情符号的文档似乎要么是错误的 要么是过时的 https anidiots guide
  • Java JTextArea 中选择文本会触发哪个事件?

    我想监视进入 JTextArea 的文本选择 我不知道选择文本会触发什么事件 我只想在从 JTextArea 中选择某些文本后立即启用某些菜单项 例如将选项复制和剪切到菜单中 我应该监控什么 我不知道文本组件有任何 选择侦听器 尽管它们可能
  • 将选择元素绑定到 Angular 中的对象

    我想将一个选择元素绑定到一个对象列表 这很简单 Component selector myApp template h1 My Application h1
  • C++ extern 模板实例化和 typedef (gcc)

    我正在尝试在外部实例化模板 但是我想在实例化子句中使用 typedef 我认为这个例子说了一千多字 typedef myTemplate base
  • 可以混合使用 % 和 px 来对齐表格吗?

    我试图将不同的表与不同数量的列对齐 以便前两列对齐 其余列独立对齐 但使用 非常困难 并且在调整窗口大小时会丢失对齐 这就是为什么我试图在 td 上将混合与 和 px 对齐 例如 table tr td width 100px td td
  • Java中如何进行URL解码?

    在Java中 我想将其转换为 https 3A 2F 2Fmywebsite 2Fdocs 2Fenglish 2Fsite 2Fmybook do 3Frequest type To this https mywebsite docs e
  • 通过javascript通过ajax请求获取页面完整的html源代码

    javascript 代码将通过 google chrome 中的网址栏从 www example com 启动 因此我无法使用 jquery 我的目标是当我在 www example com 中启动代码时 将 www example co
  • 个人版本控制系统推荐[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 供个人使用 任何人都可以推
  • 在 iPhone 上传输音频时是否可以减少背景噪音?

    我们用了一些WebRTC libraries并在测试应用程序中实现它们iPhone 测试应用程序允许使用此应用程序在两部手机之间进行语音通话 类似于 Skype 该应用程序会产生大量背景噪音 比 Skype 或 Line 等其他手机应用程序
  • 从 vb.net 中的命令行获取参数

    是否可以从返回参数processPath在这个例子中 抱歉 这可能更有意义 Dim processName As String Dim processPath As String If processName cmd Then Dim ar
  • IBM MQ 会话断开连接

    我正在创建一个像这样的 MQ 侦听器 它工作正常 但几分钟或几小时后就会因此异常而断开连接 我不控制服务器 这是通过专用电路而不是互联网进行的 我怀疑是网络问题其他服务在同一线路上运行没有问题 MQQueueConnectionFactor
  • CSS:显示:内联块和定位:绝对

    请考虑以下代码