首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >HTML中的多个类属性

HTML中的多个类属性
EN

Stack Overflow用户
提问于 2012-03-01 15:38:07
回答 2查看 14.4K关注 0票数 23

当一个元素有多个class属性时会发生什么?

<div id="test" class="one two three" class="four">

我试图在WordPress插件中的post_class();输出中添加一个类,但函数本身创建的是整个部分class="one two three"

它等同于class="one two three four"吗?还是第一个或第二个获胜?或者它是未定义的行为,在这种情况下,主要的浏览器做什么?

如果你知道在这个代码片段中添加类的正确方法(WordPress插件),那么也将不胜感激!

<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-01 15:38:59

当一个元素有多个类属性时会发生什么?

当为单个元素多次声明属性时(顺便说一句,这是无效的HTML ),行为方面,第一个值将覆盖同一属性的所有后续值。因此,在本例中,您的元素将只有类one two three

the HTML5 spec, 8.2.4.35 Attribute name state中解释了这种行为,"...如果元素上已经有一个同名的属性,那么这是一个解析错误,必须删除新的属性...“

如果你知道在这个代码片段中添加类的正确方法(WordPress插件),那么也将不胜感激!

通常,如果您需要向WordPress帖子动态添加自定义类,您可以挂接到post_class过滤器,并根据需要操作$classes数组。下面是我的主题中的大致内容:

function nv_post_class( $classes ) {
    // Most recent post on the front page
    global $count;
    if ( is_home() && 1 == $count )
        $classes[] = 'latest-post';

    return $classes;
}

add_filter( 'post_class', 'nv_post_class' );

如果只需要添加一个或多个静态类,请将它们作为空格分隔的字符串直接传递给post_class()

<div id="post-<?php the_ID(); ?>" <?php post_class( 'myclass1 myclass2' ); ?>>

有关这方面的更多信息,请参阅WordPress Codex

票数 29
EN

Stack Overflow用户

发布于 2012-03-01 15:44:10

则该文档将无效,并且浏览器将尝试执行错误恢复。

HTML 5 specification

如果属性的名称已在属性列表中,则返回到标记为attributes的步骤。

因此,如果使用的是HTML5解析器,则应该应用第一个属性。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9512330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档