为什么不能将供应商特定的伪元素/类组合到一个规则集中?

2023-12-06

在 CSS 中可以设置样式placeholder使用特定于供应商的伪类和伪元素的组合来输入输入中的文本(以获得最佳的跨浏览器覆盖率)。

这些都共享相同的基本属性(即:文本样式和颜色声明)。

然而,虽然我不可避免地想要应用相同的样式,而不管浏览器供应商如何,但似乎不可能将它们组合成一个逗号分隔的选择器(就像您希望两个选择器共享的任何其他 CSS 片段一样)相同的风格)。

例如,我倾向于使用以下四个选择器来定位占位符样式:

  • input:-moz-placeholder
  • input::-moz-placeholder
  • input:-ms-input-placeholder
  • input::-webkit-input-placeholder

(虽然:-moz-placeholder 正在被弃用有利于::-moz-placeholder这仅在 FireFox 19 发布时发生,因此目前需要两者来获得更好的浏览器支持)。

令人沮丧的是,声明并赋予每个(相同)样式会导致 CSS 中出现大量重复。

因此,为了确保占位符文本右对齐且斜体,我最终会得到:

input:-moz-placeholder{
    font-style: italic;
    text-align: right;
}
input::-moz-placeholder{
    font-style: italic;
    text-align: right;
}
input:-ms-input-placeholder{
    font-style: italic;
    text-align: right;
}
input::-webkit-input-placeholder{
    font-style: italic;
    text-align: right;
}

我真正想做的是将它们组合成一个逗号分隔的规则集,如下所示:

input:-moz-placeholder,
input::-moz-placeholder,
input:-ms-input-placeholder,
input::-webkit-input-placeholder{
    font-style: italic;
    text-align: right;
}

然而,尽管尝试过几次,但这似乎从未奏效。这让我担心 CSS 的一些基本部分我不理解。

任何人都可以解释为什么会发生这种情况吗?


CSS2.1 states:

选择器(另请参阅有关选择器) 由直到(但不包括)第一个左大括号 ({) 的所有内容组成。选择器总是与声明块一起使用。当用户代理无法解析选择器时(即,它不是有效的 CSS 2.1),它必须ignore选择器和下面的声明块(如果有)。

请注意,由于 CSS2.1 早于 CSS3,因此“它不是有效的 CSS 2.1”是在用户代理完全符合 CSS2.1 并且 CSS3 理论上不存在的假设下编写的。在实践中,只要规范说“它不是有效的 CSS”或类似的内容,就应该理解为“用户代理无法理解它”。请参阅我的回答这个相关问题以获得更深入的解释。

Namely, since one vendor's browser doesn't understand other vendors' prefixes, it has to drop any rules that contain those unrecognized prefixes in pseudo-class and pseudo-element selectors.1

对于一些见解why制定了这样的规则,参见这个答案.


1 Note that WebKit is notorious for partially flouting this rule: it has no trouble parsing rules whose selectors have unrecognized prefixed pseudo-elements (which in this case is ::-moz-placeholder). That said, the :-moz-placeholder pseudo-class in your combined rule will cause it to break anyway.

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

为什么不能将供应商特定的伪元素/类组合到一个规则集中? 的相关文章

  • 有 CSS 的替代品吗?

    是否有替代 CSS 的样式表格式化语言 或者 CSS 是当前用于执行样式表格式化类型操作的单一语言 我查看了维基百科上 CSS 的描述 http en wikipedia org wiki Cascading Style Sheets ht
  • 将单选按钮放置在图像上

    我试图在图像上的确切位置放置一些单选按钮 我已将两者都放在 Div 中 但我不知道下一步该怎么做 这是我想要放置单选按钮的位置 红色圆圈 到目前为止 这是我的代码 center display block margin left auto
  • stripe checkout css内容策略错误

    我正在尝试创建一种形式条纹结账 https stripe com docs checkout在我的 Ionic 应用程序中 我创建了一个指令 将表单植入到我的内容视图中 但是当我运行它时 CSS 因违反内容策略而失败 checkout js
  • 使用 bootstrap 将搜索图标放入文本框中

    我默认使用引导程序 文本框占据列的全宽 我想将搜索图标放在文本框的末尾 我的代码是这样的 div class container div class row div class form group col lg 4 div div div
  • 如何仅使用CSS设置某个角的边框半径

    如上所示 我可以只给顶部部分而不给底部提供半径 或者有时给底部而不是顶部提供半径吗 有没有办法只给一个角提供边界半径 Like border radius top left top right bottom right bottom lef
  • CSS - SASS:使用基于@each的mixins来生成多个背景

    我正在使用 CSS 创建发型和颜色目录 我有 55 种不同颜色和发型的组合 每种发型和颜色都有自己的图像 SVG 文件 我需要将它们全部组合成一个背景 使用 CSS3 的多背景功能 我编写了这个混合来生成多个背景 它基于 mixin在这篇文
  • 如何使用CSS将背景图像放入选择选项标签中

    我有一个从 json 响应接收的国家 地区下拉列表 并且想要在国家 地区名称旁边添加相应的国家 地区国旗图标 也从 json 响应获取图像 我已经尝试了不同的 jQuery 和 bootstrap 插件 但他们所做的是破坏我以前的选择框样式
  • IE bug:具有不透明背景色的绝对定位元素

    我有一个绝对定位的 DIV 需要捕获 onclick 事件 事实证明 在 IE7 中 DIV 似乎没有诸如单击甚至光标之类的 足迹 例如 div width 200px height 200px position absolute bord
  • 删除

    好的 我有一个小菜单栏 菜单内的三个元素还有更多的子菜单 但是菜单栏中的元素之间有不必要的间距 而且我创建的子菜单有不必要的背景宽度 我在代码中将其涂成白色以使读者理解 由于这种不必要的宽度 即使鼠标悬停在不可见的宽度上 在本例中为白色 本
  • 将 Div 放置在另一个 DIV 下方

    我有两个 DIV 元素 其中之一具有绝对位置 主 DIV 的左下角 第二个 DIV 是隐藏的 只有单击链接才能显示 我需要第二个出现在第一个下方 但由于第一个 div 的位置是绝对的 第二个 div 出现在第一个 div 之上 HTML 代
  • 为什么我的图像下方有空间? [复制]

    这个问题在这里已经有答案了 图像在下面获得了神秘的空白空间 即使padding 0 margin 0被应用 示范 http jsfiddle net cLETP 红色边框应该包围图像 但底部有空间 造成这种情况的原因是什么 如何删除该空间
  • 如何以最短的等待时间加速 Java Selenium 脚本

    我目前正在开发一个 java selenium 项目 这通常是一个小脚本 我必须在其中检查每个元素是否存在 并基于触发一些操作 但我们主要关心的是完成脚本的持续时间 基本上 我在脚本中使用了下面的每一个并运行了测试 尽管在每种情况下脚本都在
  • 删除特定数据表上的所有边框

    我需要使用 PrimeFaces 隐藏一个数据表的所有边框 而不是全部 我尝试了很多事情 但没有人奏效 有谁知道该怎么做 我已将以下样式 单独 应用于ui datatable class border hidden important bo
  • html 电子邮件内的背景图像 css - Gmail 不支持

    我想向我的用户发送如下所示的带有背景图像 css 的 html 正文电子邮件 div style width 500px height 1000px background color black background image none
  • Bootstrap:如何将按钮组对齐在中心(垂直)

    在下面的代码中
  • 固定 div 位于居中 div 旁边

    我有一个网页 其中有可滚动的内容 此内容包含在 content 内 位于页面的中心 现在我希望导航栏出现在内容左侧 50 像素处 该栏应具有固定位置 不应滚动 这是我到目前为止所尝试过的 nav position fixed top 50
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • 为什么我的交互式图像仅在 Internet Explorer 上出现故障?

    我的问题 我为自己制作了一个图像地图 交互式图像 它在 Chrome safari 和 Firefox 上完美运行 然而 当我在可怕的互联网浏览器上尝试它时 它真的很糟糕 这些小点应该扩展到更大的盒子中 在互联网浏览器上它要么不起作用 要么
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

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

随机推荐

  • XML 反序列化忽略不按字母顺序排列的属性

    我有一个小问题 XML 反序列化完全忽略了不按字母顺序排列的项目 在示例对象中 问题末尾的描述 Birthday节点在之后FirstName节点 反序列化后会被忽略并分配默认值 对于任何其他类型和名称都相同 我有节点CaseId of Gu
  • StreamException:无效的 XML 字符(Unicode:0x1a)

    我正在使用 XStream 将用户对象保存在文件中 private void store XStream xStream new XStream new DomDriver UTF 8 xStream setMode XStream XPA
  • 确定 Java 中指定日期的夏令时 (DST) 是否有效

    我有一个 Java 类 它接收某个位置的纬度 经度 并在夏令时开启和关闭时返回 GMT 偏移量 我正在寻找一种简单的方法来确定 Java 中当前日期是否处于夏令时 以便我可以应用正确的偏移量 目前我只对美国时区执行此计算 尽管最终我也想将其
  • 尝试通过 Inline::Java 模块将 Java 内联到 Perl 中

    这是我第一次尝试在 Perl 中内联 Java 代码 我们无法在我们的系统上使用标准 SFTP 命令 这超出了我的能力范围 我们有一个名为 SFTP jar 的 jar 文件可以使用 在我之前的前一个人能够让 Inline Perl 工作
  • 数组作为函数的参数

    有一系列结构 static field fields xsize ysize 我想在功能上改变它 void MoveLeft pacman Pacman field fields int play 但是当我这样发送时 MoveLeft Pa
  • 无法在 matplotlib 中保存动画:Windows 权限被拒绝

    我已经尝试了一整天来解决这个问题 检查类似的线程 但没有成功 Stretch的无法使用ffmpeg保存matplotlib动画帮助解决了以前的错误 我的 ffmpeg 路径错误 但修复后我一直遇到访问被拒绝的情况 我的 ffmpeg 二进制
  • Spring MappingJacksonJsonView,如何告诉使用它而不是JSP视图?

    我正在尝试使用MappingJacksonJsonView使用Spring 3 0 没有成功 我不知道我做错了什么 我认为问题是我不知道如何告诉使用MappingJacksonJsonView提出请求 我尝试对视图名称和 bean 名称使用
  • 当我从 a-sky 标签内的另一台服务器加载图像时出现 CORS 错误

    我试图使用我自己托管的网络服务器中的纹理 但将其放入资产项目标签中时出现以下错误 gt Access to Image at http 192 168 137 1 3000 cat2 jpg from origin gt http loca
  • Azure功能不通知我的机器人(机器人框架)

    我正在使用 Azure 函数 计时器触发函数 该函数每 X 分钟执行一次 我使用 BotFramework 创建了一个机器人 并且希望每 x 分钟触发一个 azure 函数 当它被触发时 我的机器人必须得到通知 我有一个输出机器人框架 这是
  • 如何确定点是否在给定所有纬度/经度坐标的矩形内?

    如果给定矩形所有 4 个角的 x y 坐标 然后给出另一个 x y 坐标 如果左上角为 0 0 则很容易确定该点是否在矩形内 但是 如果坐标是纬度 经度 它们可能为负值 该怎么办 请参阅附件 有没有一个公式可以在这种情况下工作 从数学上讲
  • 在片段中实现 GridView 的问题

    我正在开发一个小型应用程序 其中包含 ActivityNavigationDrawer 我已经使用该活动放置了一个片段FragmentManager and FragmentTrancation 问题是 我有一个GridView在未出现的片
  • 合并多个音频缓冲区源

    关于html5 webaudio的问题 是否可以将多首歌曲合并在一起 我有不同的曲目 它们都使用 webaudio 同时播放 但我需要处理音频 因此我需要一个缓冲区内的所有音频 而不是每个曲目都有自己的缓冲区 我尝试通过添加通道数据来合并它
  • 连接目录中的所有文件

    如何加入一个目录中的所有文件 我可以通过显式命名下面的文件来一步完成此操作 有没有一种方法可以在不显式命名文件的情况下完成此操作 join lt join lt join lt join lt sort rpkmDir HS0477 chs
  • 如何使用带有参数列表的 django-filter 包?

    我想用以下方法过滤我的模型Django 过滤器 如果我按一个 id 进行过滤 效果很好 例如 http localhost 8000 accommodations accommodationType id 1 但我不知道如何通过多个 id
  • 在 WooCommerce 中选择变体销售价格后显示折扣百分比

    我下面的代码显示了用户选择变体后选择的变体价格 add filter woocommerce show variation price filter show variation price 10 3 function filter sho
  • 我收到此消息“错误:未找到 FFmpeg/avconv!”

    我正在尝试创建一个不和谐的机器人 但是每次我尝试运行 YouTube 链接时都会收到此错误 Error FFmpeg avconv not found at Function getInfo C Users discord bot node
  • PowerShell 如何获取函数或 cmdlet 的引用?

    我想获得对函数或 cmdlet 的引用 例如 我想引用 Get ChildItem cmdlet 我不想调用它 我想要对该函数的引用 然后我可以将其传递给另一个函数 有语法可以做到这一点吗 我知道我可以使用字符串 Get ChildItem
  • TableView 中的滚动委托

    我想制作一个像这样的链接的动画 这是我的简单截图 就我而言 我希望当我向上滑动时 蓝色标题视图将消失 导航栏将更改为蓝色 这是我的代码 import UIKit class ViewController UIViewController U
  • 读取/解析文本文件输入C++

    一点背景知识 我正在为一个学校项目开发一个滑块拼图 这是我们第一次使用 C 而不是 Java 这是我第一次必须实现从文件中读取数据的功能 我有一个关于从文本文件读取输入的简单问题 我了解如何逐行读取文件并将每一行保存在字符串中 我想知道在读
  • 为什么不能将供应商特定的伪元素/类组合到一个规则集中?

    在 CSS 中可以设置样式placeholder使用特定于供应商的伪类和伪元素的组合来输入输入中的文本 以获得最佳的跨浏览器覆盖率 这些都共享相同的基本属性 即 文本样式和颜色声明 然而 虽然我不可避免地想要应用相同的样式 而不管浏览器供应