【问题标题】:edit css style of an element with a space in its class name编辑类名中带有空格的元素的 CSS 样式
【发布时间】:2011-01-14 20:51:23
【问题描述】:

我正在为它们创建一个 tumblr,我必须编写一个外部 CSS 文件,但我在编辑帖子元素的 css 样式时遇到了问题。

这是它的结构:

<li class="post quote">
    {other code}
</li>


问题是类名中有一个空格。

我将如何创建一个 CSS 类来访问它?是的,我知道我可以在元素标签中添加一个样式属性,但我有点希望有另一种选择。

【问题讨论】:

标签: html css space tumblr


【解决方案1】:

问题是类名中有空格。

这在 CSS 中是不可能的。你正在做的是给元素两个类。

你可以这样称呼他们:

.post.quote { .... }

但在您的情况下,最好使用有效的分隔符,例如

post_quote

【讨论】:

  • 这是一个类名覆盖...但是你说“这在 CSS 中是不可能的”?? InDesign5+ 这样做,很多网页设计师...有一条 W3C 规则说“它是无效的”?
  • @Peter 带空格的类名是不可能的——你会如何引用它们?考虑.class name { font-size: 10px } - class 指的是一个类,name 指的是一个子元素。不可能,试试看。
  • 是的,class="a b" 不是唯一的类名,例如 class="a_b"。我的问题是关于 HTML renderizarion 中的预期覆盖效果(b 在此示例中覆盖 a)... 有 W3C 有效标准吗?还是 Adob​​e Indesign(导出 HTML)的发明?
  • @Peter 我不确定你所说的“覆盖”到底是什么意思?
  • 示例:在 css 定义中我们有“.a { font-weight: bold;} .b { font-weight: normal;}”,在 HTML 正文中我们有 &lt;p class="a b"&gt;not bold text&lt;/p&gt;...因此,如果浏览器以普通文本呈现,我们可以说类b 覆盖a。好吧,我的浏览器并不总是这样做...好的,我正在提交一个新问题,请参阅stackoverflow.com/q/13808846/287948
【解决方案2】:

这个元素实际上有两个类——它被postquote类标记。因此,您可以使用以下选择器来访问它:

// css
.post { ... }   // elements with the post class
.quote { ... }  // elements with the quote class

// jQuery
var postLis = $('.post');
var quoteLis = $('.quote');

您还可以堆叠选择器以返回满足选择器中所有条件的所有元素,方法是将不同的选择器包含在一起:

// css
.post.quote { ... }  // elements with both the post and quote classes

// jQuery
var postAndQuoteLis = $('.post.quote');

【讨论】:

  • 我没有使用 jQuery。我将如何在 CSS 中做到这一点: .post .quote { }?
  • 选择器(上面引号中的位)在css中是一样的
【解决方案3】:

这可能有效:

$('li').each(function() {     
    if($(this).attr('class').indexOf(" ")>-1) {
       $(this).css('border','1px solid #ff0000')
    }  
}

【讨论】:

    猜你喜欢
    • 2018-06-26
    • 2016-05-27
    • 2015-11-08
    • 1970-01-01
    • 2019-07-17
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多