相关疑难解决方法(0)

有没有办法在HTML5中创建自己的HTML标签?

我想创造类似的东西

<menu>
    <lunch>
        <dish>aaa</dish>
        <dish>bbb</dish>
    </lunch>
    <dinner>
        <dish>ccc</dish>
    </dinner>
</menu>
Run Code Online (Sandbox Code Playgroud)

可以在HTML5中完成吗?我知道我可以做到

<ul id="menu">
    <li>
        <ul id="lunch">
            <li class="dish">aaa</li>
            <li class="dish">bbb</li>
        </ul>
    </li>
    <li>
        <ul id="dinner">
            <li class="dish">ccc</li>
        </ul>
    </li>    
</ul>
Run Code Online (Sandbox Code Playgroud)

但它的可读性低得多:(

html5

106
推荐指数
6
解决办法
9万
查看次数

在HTML5中使用自定义元素是不好的做法吗?

使用类似的东西document.getElementByTagName,你几乎可以创建自己的元素.

<arial>Hello</arial>
Run Code Online (Sandbox Code Playgroud)

然后在JS ..

var a = document.getElementsByTagName("arial");

for(i = 0; i < a.length; ++i)
     a[i].style.fontFamily = "Arial"
Run Code Online (Sandbox Code Playgroud)

我们有一个自定义元素,容易peasy.

我的问题归结为,这是一种不好的做法吗?有没有我不注意的缺点?

javascript html5

16
推荐指数
2
解决办法
3666
查看次数

HTML5:为什么不使用我自己的任意标签名称?

据我所知,在HTML5中组成标签名称是完全合法的,并且它们可以像CSS样式和嵌套一样正常工作.

当然,我的任意标签名称对浏览器没有任何影响,浏览器不理解它们,但它使我的代码更具可读性,这使得它更容易维护.

那么我为什么不在页面上使用任意标签名称?它会影响SEO吗?会破坏什么吗?

重要编辑:与http://ejohn.org/blog/html5-shiv/一起使用时,较旧的浏览器不会窒息不受支持的标签

html5

13
推荐指数
1
解决办法
1575
查看次数

将CSS应用于HTML5自定义元素的正确方法

我有一个名为的自定义HTML5标记<scroll-content>.实际上,我的HTML文件中的某些位置的框架会为我创建并插入此标记.现在我想修改这个标签的CSS,所以在我的CSS文件中我去了:

scroll-content{
  overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

它做了它应该做的,但这是设计自定义标签的正确方法吗?

我不能为它们添加一个类,因为我没有创建标签,框架没有,所以我无法在我的代码中访问它们,我想避免使用Javascript来查找这些标签并以这种方式添加类.

我更愿意了解修改自定义标签的标准/最安全的方法.

html css html5

7
推荐指数
1
解决办法
1789
查看次数

自定义HTML元素的属性

在Web组件中使用自定义HTML元素时,我是否仍应使用前缀命名自定义属性data

例如:

<!-- Should form be data-form? -->
<my-button form="foo">click me</my-button>
Run Code Online (Sandbox Code Playgroud)

html5 web-component

6
推荐指数
2
解决办法
428
查看次数

HTML中的自定义元素

我很好奇是否可靠地定义自己的元素并使用JavaScript或JQuery选择它们.

我遇到过"自定义元素是否有效HTML5?"的问题.,但我对一个半生不熟的规范不感兴趣,也没有正式的方法来定义我自己的元素.

我只是想知道,如果我使用的话

<orange-juice />
Run Code Online (Sandbox Code Playgroud)

在我的文档中尝试选择它(通过CSS,通过jQuery),就像这样

orange-juice.fresh
Run Code Online (Sandbox Code Playgroud)

它会跨浏览器工作吗(当然,它甚至可能由HTML5规范的一部分支持,明确允许吗?)

编辑:在IE9 +和主要桌面浏览器中的跨浏览器.

编辑:也许橙汁的例子有点误导,就像提到CSS一样.我不想创建自己的语义元素,也不想真正想要设置内容样式,我想附加一些元信息然后由脚本解释.它同样可能是一个带有数据属性的空div,但我觉得这<my-meta-element />将是一个更好的选择<div id="i-am-just-an-innocent-fill-in-carrying-some-information-which-does-not-have-anything-to-do-with-me-being-a-generic-block-displayed-element"></div>

html css tags jquery html5

5
推荐指数
1
解决办法
6069
查看次数

自定义元素与Web组件自定义元素

我刚开始用自定义元素,并根据文章,自定义的元素可以被定义如下:

var proto = Object.create(HTMLElement.prototype);
proto.createdCallback = function () { ... };
proto.enteredViewCallback = function () { ... };
document.register('x-foo', {
    prototype: proto
});
Run Code Online (Sandbox Code Playgroud)

这在我的chrome浏览器中效果很好,每次创建新元素时都会调用'createdCallback'.

现在,如果我查看这里的官方文档,我没有看到,例如,在任何地方提到的createdCallback.有人理解W3C文档并可以解释为什么会这样吗?

此外,从Web组件查看自定义元素,它们看起来完全不同.所以现在有两种不同类型的自定义元素.这没有任何意义,或者这两者是否可以共存?

javascript html5 w3c web-component

5
推荐指数
1
解决办法
494
查看次数

不使用自定义HTML标记的原因是什么?

鉴于目前的HTML5规范,允许创建自定义HTML元素(只要他们的名称中包含一个破折号),而事实上,Web组件似乎是一个功能,在这里留下来,我想知道为什么是创建自己的自定义HTML元素不满意?

请注意,我不是在问是否使用Web组件 - 它仍然是一个移动目标,即使像Polymer这样的大型polyfill也可能尚未准备好进行生产.我问的是创建自己的自定义HTML标记并设置样式,而不需要附加任何JS API.

html5 custom-tag custom-element

5
推荐指数
1
解决办法
216
查看次数

如何在CEKEditor中添加自定义html标签?

我想添加一个这样的自定义标签:

<myTag>text</myTag>
Run Code Online (Sandbox Code Playgroud)

如何将HTML属性应用于自定义标记?

drupal ckeditor drupal-8

5
推荐指数
1
解决办法
294
查看次数

Vue.js 2、在css中使用自定义组件标签名称?

<template>
    <header>
        <hamburger></hamburger>
        <app-title></app-title>
        <lives></lives>
    </header>
</template>

<script>
export default {
    name: 'Titlebar',
    data() {
        return {

        }
    }
}
</script>

<style lang="scss" scoped>
    @import "../styles/variables";

    header {
        padding: $padding-titlebar;
        position: relative;
    }
    lives {
        position: absolute;
        right: 2.5vh;
    }
</style>
Run Code Online (Sandbox Code Playgroud)

是否可以像任何常规 HTML 标签一样使用组件标签来实现样式目的,就像我在 中写下的那样lives { }
我发现在 css 中编写<lives class="lives">和使用.lives { }是可行的,但这似乎有点多余,如果可以只使用组件标签,宁愿省略添加其他类。
我知道 Vue 编译<lives>成 HTML 代码,并且编译后的 css 没有“lives”标签可供使用,但仍然想知道。

javascript vue.js vue-component vuejs2

5
推荐指数
1
解决办法
4450
查看次数