我可以使用自定义标签名称而不使用 Web 组件,仅用于样式设置吗?

2024-01-01

令我惊讶的是,如果我使用自定义标签名称,然后将这些标签的样式设置为普通 html 标签的样式,现代浏览器似乎不会抱怨,它们的行为就像 span 元素,并且像 div 元素,如果我设置display: block;.

我的意思是,即使我不使用聚合物,或者尝试注册自定义元素。

例如,我有这个:https://jsfiddle.net/hvybz0nq/4/ https://jsfiddle.net/hvybz0nq/4/

<flex-fixed>
  <sections>
    <section>Section 1</section>
    <section>Section 2</section>
    <section>Section 3</section>
    <div>Add Section</div>
  </sections>
  <splitter></splitter>
  <pages>
    <page>Page 1</page>
    <page>Page 2</page>
    <page>Page 3</page>
    <div>Add Page </div>
  </pages>
</flex-fixed>

加上一些CSS:

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

flex-fixed, sections, section, div, pages, page {
  display: flex;
}

body {
  height: 100vh;
}

flex-fixed {
  width: 100%;
  height: 100%;
  flex-direction: column; 
  position: fixed;
}

section {
  border-right: 1px solid lightgrey;
}

splitter {
  height: 1px;
  background: lightgrey;
}

pages {
  height: 100%;
  border-left: 1px solid lightgrey;
  align-self:flex-end; 
  flex-direction: column;
}

page {
  border-bottom: 1px solid lightgrey;
}

section, page, div {
  padding: 10px;
}

请注意:几年后,由用户评论提示返回此内容,我想指出这已经过时了;如果这个问题今天发布,我会给出一个非常不同的答案。在 2018 年的美好新年里,人们通常不会对自定义元素的想法感到害怕。2016 年的原始答案如下:

你绝对可以做到这一点。它会起作用的。自定义元素是HTML5 规范 http://w3c.github.io/webcomponents/spec/custom/;包括对未注册自定义元素的显式支持(参见第 7 节)。所有现代浏览器都支持它们(默认情况下它们被视为内联元素,就像<span>),例如 Angular.js 中对它们有一流的支持。从功能上来说,两者之间没有任何区别<foo> and <span class="foo">.

那么你应该吗?我把它分解如下:

不使用自定义元素的原因

  • 一些较旧的浏览器(IE8 及更早版本)仅在您使用 javascript shim 时才支持它们(至少document.createElement('foo').)
  • HTML 验证器(或某些尝试验证代码的 HTML 编辑器)可能会因这些标签而阻塞或将其解释为错误。这范围从不存在问题到完全破坏交易,具体取决于您的工作流程。
  • 未来的兼容性。根据您选择的标签名称,您发明的任何自定义标签名称在将来的某个时刻都有可能成为“真正的”html 标签,该标签具有您不期望的特定行为。2018年更新:当前的惯例是在所有自定义元素的名称中包含连字符,这消除了这种风险;未来的 HTML、SVG 和 MathML 元素的名称中永远不会包含连字符。
  • 您将不得不花费大量时间向惊愕的开发人员和维护人员解释不,这很好,它确实有效,不,它不是 XML,是的,它可以与屏幕阅读器一起使用,是的,它看起来确实很奇怪,但老实说,它完全没问题规范中有正确的
  • 通常没有特别的理由这样做,因为<span class="foo">做同样的事情<foo>没有 tsuris

使用自定义元素的原因

  • 因为你能

总的来说,我觉得不值得。

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

我可以使用自定义标签名称而不使用 Web 组件,仅用于样式设置吗? 的相关文章

  • 仅 IE9_有时_会忽略

    我们正在开发一个大量使用 这是典型的 TYPO3 网站 该网站是在子目录中开发的 稍后将被重新定位到顶级目录 因此我们无法轻易删除 我们的客户告诉我们 有时当她浏览新页面时 她得到的页面内容没有应用布局 我们对此进行了调试 仅在 IE9 中
  • 如何在数据表中colspan rowspan?

    I am trying to use colspan and rowspan attributes with jQuery Datatables where a product sku can span 2 rows and a week
  • 引导导航栏菜单与文本重叠

    我使用最新版本的引导程序 当我调整屏幕浏览器的大小时 使用小切换按钮下拉导航栏时 导航栏会重叠页面上的文本 而不是向下推页面内容 我已经多次研究过这个问题 我尝试将 padding bottom 放在导航栏上 将 padding top 放
  • 使用 highcharts 时,为什么 Bootstrap 选项卡显示宽度不正确的选项卡窗格 div?

    因此 我正在使用 Twitter 的 Bootstrap 创建一个包含选项卡式内容的页面 但我的起始活动 div 的内容始终与其他选项卡的内容不同 例如 我在不同的选项卡中使用 highcharts js 放入图表 但活动选项卡始终显示正确
  • 如何在 select2 下拉列表中换行?

    我正在使用 select 2 下拉菜单 然后在其内容中显示一些长句子 我想在句子的正确位置添加换行符 但下拉菜单是自动调整的 For example the content of the dropdown right now looks l
  • Safari 中的 css3 边框半径动画过渡不起作用

    尝试在 Safari 中对图像的边框半径进行 css3 轻松过渡 它只是有点闪烁进入悬停状态 而不是平滑过渡 任何帮助深表感谢 我的代码如下 CSS all a hover img webkit border radius 50 moz b
  • 如何在有序列表中组合数字和字母?

    如何在 CSS 中用数字和字母递增有序列表 ol nested margin bottom 0 counter reset item ol nested li display block position relative ol neste
  • jQuery - 如何从 div > p 获取文本

    如何从 div 类中获取主题名称 div class subject img src image eng jpg p English p div div class subject img src image bio jpg p Biolo
  • 获取 FileReader() 的结果对象

    有什么方法可以在不通过函数的情况下获取 FileReader 的结果对象 我在下面制作了示例代码 HTML br br br div div JS var code lorem ipsum input type file change fu
  • 如何隐藏div元素中太长的文本?

    如何隐藏 div 中的溢出 如果文本比 div 长 则文本将换行到新行 div style width 50px border 1px solid black test test test test div 也许是 CSS 属性text o
  • 如何使用 JavaScript 创建链接?

    我有一个标题字符串和一个链接字符串 我不知道如何将两者放在一起以使用 JavaScript 在页面上创建链接 任何帮助表示赞赏 我试图解决这个问题的原因是因为我有一个 RSS 源并且有一个标题和 URL 列表 我想将标题链接到 URL 以使
  • 悬停此元素时隐藏元素后的伪元素

    我的菜单垂直放置在页面左侧和菜单之间 li 我有一个 after那是一个分隔符 我想要的是当我悬停元素本身 如果它是第一个元素 时隐藏 after 元素 或者当它是中间元素时隐藏上面和底部的元素 如果它是最后一个子元素 则隐藏 after前
  • Angular - CSS - 自定义类型=文件输入,如何使用按钮而不是标签?

    我制作了一个类型为 file 的自定义输入字段 因为我不喜欢默认的输入字段 为了实现这一目标 我做了
  • 为 Angular2 中的组件加载多个样式表

    我正在构建一个 angular2 应用程序 当我尝试为同一组件加载多个样式表时 我面临多个问题 这是我正在做的代码 import Component from angular core Component selector my tag t
  • CSS 类命名约定

    在网页上 有两个控件块 主要和次要 大多数人会使用什么类名 选择一 div class primary controls div
  • 网站的主体和元素固定在 980px 宽度上,不会缩小

    我试图在 Rails 应用程序顶部启动前端 仅 HTML CSS 页面 但在使用 320px 视口时遇到问题 有些元素不会按比例缩小 我不明白为什么 我已经完成了检查元素 为各种元素提供了max width 100 and or width
  • 在 HTML5 画布中,如何用我选择的背景遮盖图像?

    我试图用画布来实现这一点 globalCompositeOperation 但没有运气 所以我在这里问 这里有类似的问题 但我没有在其中找到我的案例 我的画布区域中有图层 从下到上的绘制顺序 画布底座填充纯白色 fff 用fillRect
  • 检查 jQuery 1.7 中是否存在基于文本的选择选项

    所以我有以下 HTML 片段
  • CSS3 信封形状

    正如您可能已经猜到的 该图像是邮件信封形状的一部分 如果可能的话 我想使用 CSS3 创建该形状 我已经制作了其他部分 但这个很棘手 该形状需要两侧都有三角形切口和圆角 大概是 border radius bottom left borde
  • 在 HTML 下拉列表中有一个滚动条

    我正在寻找一种在 HTML 的下拉列表中添加滚动条的方法 这样如果下拉列表包含的内容超过例如 5 项 将出现滚动条以查看其余项 这是因为我将被迫列出一些大清单 过去几个小时我一直在谷歌上搜索它 但没有运气 它需要适用于 IE8 FF 和 C

随机推荐

  • 在 JavaScript 中,如何在不修改原始对象的情况下修改嵌套对象的值?

    如何在不使用额外空间的情况下将所有嵌套对象值更改为 true 任何人都可以帮助我吗 我已经尝试过这种方式 但我没有得到处理嵌套对象的逻辑 P S 请不要关注字符串中的 true 或 false 因为它是模拟数据 我只想实现我未能做到的逻辑
  • 防止锁传播

    在 bash 下进行锁定的一种简单且看似可靠的方法是 exec 9 gt gt lockfile flock 9 然而 众所周知 bash 会将这样的 fd 锁传播到所有分叉的东西 包括执行的程序等 有什么办法告诉 bash 不要重复 fd
  • 如何将服务暴露到k8s集群之外?

    我已经使用以下命令运行了 Hello World 应用程序 kubectl run hello world replicas 2 labels run load balancer example image gcr io google sa
  • 重新安装 WAMP,未找到 WordPress 表,但在 PHPMYADMIN 中

    好吧 情况很奇怪 我希望我不仅仅是运气不好 我从 Windows 7 升级到 8 当我升级时 WAMP 无法工作 我不假思索地重新安装了 WAMP 并按照网上的说明让 WAMP 正常工作 现在 我的 WordPress 站点将我重定向到安装
  • 两次dispatchKeyEvent调用方法

    我在我的活动中实现了dispatchKeyEvent来监听按下的Enter键 问题是 当我单击 Enter 时 它会调用我的方法两次 我怎样才能解决这个问题 谢谢 祝你有美好的一天 Override public boolean dispa
  • 可扩展列表适配器的问题

    我是Android开发的新手 所以我希望有人能帮助我解决这个问题 我正在尝试创建一个可扩展的列表 我尝试过谷歌搜索 并阅读了谷歌文档 但不知怎的 我无法理解它 我的代码在 eclipse 中没有给出错误 但是当在模拟器中运行它时 它会在启动
  • 为什么 Eclipse Juno 4.2 运行“JPA Java Change Event Handler”进程?

    我刚刚升级到 Eclipse Juno 4 2 我有一个完全干净的新工作区 但导入了以前在 Eclipse 3 7 中使用过的项目 因此其中有一些 Eclipse 元数据 当迁移到 4 2 时 我将项目转换为使用 Project Facet
  • 反应本机弹出不适用于反应本机 0.60.0

    Is 反应本机弹出不再工作了吗 它是否完全从react native中删除了 我在用反应本机版本 0 60 0 我什至无法在反应本机帮助 请检查图像以获取更多参考 同样在这里 此时 对您的项目进行全新备份 然后复制 android 和 io
  • Python 执行速度:笔记本电脑与台式机

    我正在运行一个进行简单数据处理的程序 解析文本 填充字典 对结果数据计算一些函数 该程序仅使用CPU RAM和HDD 从 Windows 命令行运行 输入 输出到本地硬盘 屏幕上没有显示或打印任何内容 没有网络 相同的程序运行在 台式机 W
  • 通过 VSTS API 将一个分支合并到另一个分支

    有没有一种方法可以使用 API 将一个分支合并到另一个分支 我看了这里 但它似乎没有为我提供我想要的解决方案 推送单个文件很乏味 https www visualstudio com en us docs integrate api git
  • 如何增强 lpsolve R 优化解决方案以在 hadoop 集群上运行?

    我正在使用 R lpsolve 包来优化我的交通模型 我的代码运行良好 但由于我有大量节点和路径 因此需要花费大量时间才能运行 我计划在 hadoop 集群上运行我的代码 请指导我需要对代码进行的更改 我认为在 hadoop 集群上运行优化
  • 如何在vba中的字符串中添加双引号?

    我想通过 vba 在单元格中插入包含双引号的 if 语句 这是我的代码 Worksheets Sheet1 Range A1 Value IF Sheet1 B1 0 Sheet1 B1 由于双引号 我在插入字符串时遇到问题 如何处理双引号
  • Perl 无法在具有 32 GB RAM 的 Snow Leopard Mac 服务器上分配超过 1.1 GB 的空间

    我有一台具有 32GB RAM 的 Mac 服务器 雪豹 当我尝试在 Perl v 5 10 0 中分配超过 1 1GB RAM 时 出现内存不足错误 这是我使用的脚本 usr bin env perl My snow leopard MA
  • 学习 JavaScript 最好、最有效的书是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 从 pandas 数据帧生成 sas7bdat 文件

    我想知道是否有任何Python库支持这种转换 目前我找到的选项是SASpy csv或SQL数据库 但不成功 这实际上不是一个编程问题 但希望这不会成为问题 我找到了这个帖子 将 pandas 数据框导出为 SAS sas7bdat 格式 h
  • pandas 相当于对多列使用 STRING_AGG 进行分组

    那么有没有一种方法可以对 DataFrame 对象进行分组 然后对于剩余的列 将所有条目放入一个集合 或具有过滤的唯一值的列表 中 所以像这样的事情 Name Date Amount purchase 0 Jack 2016 01 31 1
  • 绘制日志(n 除以 k)

    我以前从未使用过 Matlab 我真的不知道如何修复代码 我需要绘制 log 1000 over k 其中 k 从 1 到 1000 y x log nchoosek 1000 x fplot y 1 1000 Error Warning
  • 为什么 C# 中的字典对象不能进行 XmlSerialized?

    看来序列化是非常简单的 假设键和值都是可序列化的 还有什么比用 XML 表示键值对更简单的呢 对于所有评论者 首先 我很欣赏您的回答 但是 我对 workoraunds 不太感兴趣 网络上确实有很多 SerializedDictionary
  • jQuery 电子表格/网格插件,可从 Excel 复制/粘贴到 Excel [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个用于电子表格或网格之类的 jQuery 插件 我发现了很多 jQuery Gridplugins https stackov
  • 我可以使用自定义标签名称而不使用 Web 组件,仅用于样式设置吗?

    令我惊讶的是 如果我使用自定义标签名称 然后将这些标签的样式设置为普通 html 标签的样式 现代浏览器似乎不会抱怨 它们的行为就像 span 元素 并且像 div 元素 如果我设置display block 我的意思是 即使我不使用聚合物