为什么宽度/高度不适用于非定位伪元素?

2023-12-23

我想设置一个width of ::before伪元素达到80%。如果我使用定位,那么一切都会正常,但如果我不使用它,那么一切都会失败。

你能解释一下为什么百分比宽度在没有定位的情况下不起作用吗?如果可以的话,请添加一些对规范的引用

.positioned {
    position: relative;
    height: 15px;
    background-color: aquamarine;
    margin-bottom: 10px;
}
.positioned::before {
    position: absolute;
    content: "";
    background: red;
    width: 80%;
    height: 100%;
}

.not-positioned {
    height: 15px;
    background-color: aquamarine;
    margin-bottom: 10px;
}
.not-positioned::before {
    content: "";
    background: red;
    width: 80%;
    height: 100%;
}
<div class="positioned"></div>
<div class="not-positioned"></div>

首先,这与百分比值无关。即使使用像素值并且宽度和高度都不起作用,您也会得到相同的结果。

伪元素是inline元素及其宽度/高度仅由其内容定义,CSS 设置的宽度/高度将被忽略。

In CSS, ::before creates a pseudo-element that is the first child of the selected element. It is often used to add cosmetic content to an element with the content property. It is inline by default. ref https://developer.mozilla.org/en-US/docs/Web/CSS/::before

width

This property does not apply to non-replaced inline elements. The content width of a non-replaced inline element's boxes is that of the rendered content within them ref https://www.w3.org/TR/CSS2/visudet.html#the-width-property

The 'height' property does not apply. The height of the content area should be based on the font ... ref https://www.w3.org/TR/CSS2/visudet.html#inline-non-replaced


通过制作伪元素position:absolute您现在将考虑适用于的规则绝对定位元素 https://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-width以便计算宽度和高度。您还会注意到该元素的计算值为block显示内。

您还应该注意使用定位元素这意味着相对、绝对、固定或粘性,但使元素position:relative会将其保留为内联级别元素,但您仍然无法使用宽度/高度。

.positioned {
    position: relative;
    height: 15px;
    background-color: aquamarine;
    margin-bottom: 10px;
}
.positioned::before {
    position: relative;
    content: "";
    background: red;
    width: 80%;
    height: 100%;
}

.not-positioned {
    height: 15px;
    background-color: aquamarine;
    margin-bottom: 10px;
}
.not-positioned::before {
    content: "";
    background: red;
    width: 80%;
    height: 100%;
}
<div class="positioned"></div>
<div class="not-positioned"></div>

也就是说,如果您想实现相同的视觉效果,可以通过考虑渐变来简化代码:

.positioned {
  position: relative;
  height: 15px;
  background:
   linear-gradient(red,red) left/80% 100% no-repeat,
   aquamarine;
  margin-bottom: 10px;
}
<div class="positioned"></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么宽度/高度不适用于非定位伪元素? 的相关文章

  • 从顶部开始在同一水平线上显示同一行中的两个 div

    这是我的代码 floating box display inline block width 150px margin 10px border 3px solid 73AD21 after box border 3px solid red
  • 如何保留用户的输入打印?

    我正在尝试添加用户的评论 所以我只是尝试读取输入并将其发送以进行打印 但问题是 一旦我刷新页面或输入另一个输入 打印的输入就会消失 因此 即使刷新页面或重新输入新评论 我也希望始终保持所有用户的显示 代码 div div
  • 如何将 HTML 转换为 Markdown?

    我有一个类似 stackoverflow 的网站 有一个文本区域 人们可以在其中写答案 我用这个 PHP 库 http parsedown org 转换降价 我的意思是我使用该函数来转换 italic to i italic i inclu
  • save_and_open_page 已停止提供我的 CSS

    我的测试设置工作得很好 每当我打电话时 都能提供正确格式的 css 页面save and open page从测试中 然后 我设置了一些 javascript 测试 并对我的设置进行了一些更改 抱歉 我无法详细说明所有内容 我没有足够详细地
  • 多语言标记验证器

    是否有免费的在线多语言标记验证服务可以正确识别和验证多语言标记 我确实找到了totalvalidator和htmlvalidator 但这些是 付费 非基于网络的解决方案 Use http validator w3 org nu http
  • 使用 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
  • VBA 完成 Internet 表单

    我正在寻找将 Excel 中的值放入网页的代码 Sub FillInternetForm Dim IE As Object Set IE CreateObject InternetExplorer Application IE naviga
  • 使用本地存储在从另一个表保存的 HTML TABLE 中打印 JSON,以便我在另一个页面上打印我的表

    在我的作业中 我必须使用用户输入中的数据并将数据保存在本地存储中 我必须以水平表格式将这些数据从本地存储打印到其他页面 为此 我编写了用于用户输入并将数据保存在本地存储中的代码 div p p div
  • 在 ember-cli 中安装 Foundation 5

    我对 ember 相当陌生 对构建工具也很陌生 我目前正在使用通常的基础安装以及基础 cli 和指南针来编译我的 css 这有点痛苦 并且对于团队工作来说非常糟糕 我认为用 Bower 安装文件并使用会更好ember cli compass
  • Bootstrap:如何将按钮组对齐在中心(垂直)

    在下面的代码中
  • 如何在其他div id的悬停中使用div显示块

    如何打开div悬停时标记href tag 这是我在悬停 href 标签上显示 div 标签的代码 Services is id of href tag Services is id of div tag Service hover Serv
  • 防止垃圾邮件按钮呼叫功能

    如何防止调用函数时出现垃圾邮件按钮 就像用户只能在按钮上每 1 秒调用一次该函数 有办法做到吗 因为我尝试了 setTimeout 但没有成功 它仍然在发送垃圾邮件 顺便说一句 我使用 Jquery 这是我的代码
  • 滚动时的 CSS 背景模糊

    我有固定的背景图像 滚动时我希望图像变得模糊 我知道如何在 css 中进行模糊 但在特定的滚动位置进行 这是一个例子 https medium com good music f160ba9e6c52 https medium com goo
  • 如何在Yii框架中向Form添加类?

    我在 Yii 中有一个表单 我想向该表单添加一个类
  • 合并 2 个大型 CSS 文件的有效方法

    我正在寻找一个可以合并 2 个大型 CSS 文件的工具 到目前为止我尝试过的所有方法 例如CSSMerge 都没有成功 其中一些只是随机删除属性 其他人则因 webkit 和 moz 等非标准属性而窒息 并给我错误 我还需要保留每条规则大小
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 如何停止TinyMCE删除span标签?

    在我的工作中 前一位程序员决定使用公司网站上精彩的TinyMCE 我遇到的数千个问题之一是 如果原文有的话span标签 当我按下退格键删除一行 p仅标签 全部span标签已从文本中删除 这个错误比另一个错误更具体 我可以删除anything
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • 使用 CSS 折叠和展开元素

    我正在尝试构建一个页面 加载时仅可见标题 并且 当用户单击标题时 每个标题下方的表格会在隐藏和显示状态之间切换 我的限制是只能在 CSS 中执行此操作 这是我到目前为止想到的 https jsfiddle net Argoron c1ypx
  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee

随机推荐

  • 页面加载完成后图像消失

    我使用以下代码在页脚中显示图像 我看到图像几秒钟 但是页面完全加载后 图像消失了 有人知道这里出了什么问题吗 我正在使用 Rails 3 2 8 和 Chrome 在 Firefox 或 Safari 中不会发生这种情况 Thanks UP
  • 如何编写使用内置相机拍照的 Solo/Robotium 测试用例?

    从我的活动中 我执行 startActivityForResult MediaStore ACTION IMAGE CAPTURE 然后我进入内置相机活动 在本例中是在模拟器中 当我现在这样做时 独奏 clickOnButton 0 在我的
  • 单调的堆栈和队列。定义和例子

    到底什么是单调堆栈 例如 它与单调队列有何不同 例如 考虑以下整数数组 0 2 1 3 4 如果我从左到右处理这个数组并将其插入到单调递减的堆栈中 我应该在堆栈中看到什么 为什么 Here http www leetcode solutio
  • Nginx 具有不同根的多个位置

    我的 nginx 配置非常简单 里面有 3 个位置 他们每个人都有自己的根目录 我将来应该能够轻松添加另一个根目录 我想要的是 Request admin gt 位置 admin Request admin gt 位置 admin Requ
  • 无法将不可变值作为 inout 参数传递:函数调用返回不可变值

    我分叉了这个项目 所以我不太熟悉所有细节 https github com nebs hello bluetooth blob master HelloBluetooth NSData 2BInt8 swift https github c
  • 如何使数据类更好地与 __slots__ 配合使用?

    It 已决定 https github com ericvsmith dataclasses issues 28删除对的直接支持 slots 来自 Python 3 7 的数据类 尽管如此 slots 仍然可以与数据类一起使用 from d
  • 将 TextField 绑定到 ReadOnlyDoubleProperty

    我可以绑定一个TextField的文本属性为DoubleProperty 像这样 textField textProperty bindBidirectional someDoubleProperty new NumberStringCon
  • 将数据插入 SQL Server 返回错误代码 00q

    首先 我的代码的最大部分是在几周前工作的 与此同时 我们从 MySQL 服务器更换为 SQL 服务器 并且对架构设计进行了一些更改 我使用 Percobol 据我所知 它使用 OpenCobol 编译器 PERFORM 2010 GEBRU
  • Dynamic_cast<> 是否仅限于沿着继承层次结构进行直接转换?

    CODE struct A virtual details there but left out struct B virtual details there but left out struct C A B virtual detail
  • WaitHandle.WaitAll 64 个句柄限制的解决方法?

    我的应用程序通过以下方式生成不同的小工作线程负载ThreadPool QueueUserWorkItem我通过多个跟踪ManualResetEvent实例 我用WaitHandle WaitAll方法阻止我的应用程序关闭 直到这些线程完成
  • 如何向 RCpp 中的数据框添加新列?

    我正在尝试使用 RCpp 向数据框添加新列 在下面的代码中 我打算向数据框 df 添加一个 结果 列 但运行代码后数据集没有 结果 列 你能告诉我他们出了什么问题吗 R 文件调用 AddNewCol 函数 library Rcpp sour
  • 如何在 Perl 中将数组转换为散列?

    我有一个数组 并尝试将数组内容转换为带有键和值的哈希值 索引 0 是键 索引 1 是值 索引 2 是键 索引 3 是值 依此类推 但它没有产生预期的结果 代码如下 open FILE message xml die Cannot open
  • 初始拒绝后使用 getUserMedia() 重新提示权限

    在被拒绝一次后 我们如何使用 getUserMedia 请求相机 麦克风访问权限 我正在使用 getUserMedia 来访问用户的相机并将数据通过管道传输到画布 那一点一切都很好 在测试中 我点击了一次拒绝 此时 在 Chrome 和 F
  • 如何伪造Time.now?

    最好的设置方法是什么Time now为了在单元测试中测试时间敏感的方法 我真的很喜欢Timecop https github com travisjeffery timecop图书馆 您可以以块形式进行时间扭曲 就像时间扭曲一样 Timec
  • 如何从特定模块创建所有装饰函数的向量?

    我有一个文件main rs和一个文件rule rs 我想定义函数rule rs将被纳入Rules rule矢量 而不必将它们一一推动 我更喜欢一个循环来推动它们 main rs struct Rules rule Vec
  • 错误 1054。Insert 子句中的未知列

    我有这个问题 如果我编写以下查询 INSERT INTO prodotto Barcode InseritoDa DataInserimento UrlImage VALUES vfr ff 12 10 2012 vfr jpg 我收到此错
  • 自定义弹出菜单(布局)

    我正在尝试升级我的 PopupMenu 以便它带有图标和自定义样式 我为它创建了一个新的布局
  • 位置无关可执行文件的正确 Xcode 设置是什么

    最近刚刚开始收到一封应用商店提交后的电子邮件 其中包含以下建议 请确保您的构建设置已配置为创建 PIE 可执行文件 然而 XCode 中的设置看起来是正确的 在链接部分我发现 不创建位置无关的可执行文件 设置为 否 双重否定YUK 您收到此
  • Android排序数组

    我如何按日期或名称对该数组进行排序 String datetable new String 21 2 datetable 0 0 2011 01 01 datetable 0 1 Name1 datetable 1 0 2011 01 03
  • 为什么宽度/高度不适用于非定位伪元素?

    我想设置一个width of before伪元素达到80 如果我使用定位 那么一切都会正常 但如果我不使用它 那么一切都会失败 你能解释一下为什么百分比宽度在没有定位的情况下不起作用吗 如果可以的话 请添加一些对规范的引用 position