1

我的问题有两个部分:

1)有没有办法在CSS中继承另一个控件的属性和样式?假设控件没有父/子层次结构并且可以是完全不同的控件类型:

IE:

#MyFirstControl
{
  width: 100px;
}

#MySecondControl
{
  width: MyFirstControl.styles.width; /* This doesn't work */
}

2) 假设标签标签是任何其他标签的子标签。width 属性不能与“inherit”或“auto”一起使用。怎么了?

IE:

<style>
  div
  {
    width: 100px;
  }
</style>

<div>
  <!-- This label does what it wants for width. It's not the width of the containing div -->
  <label style="width: inherit">Some Text</label>
<div>
4

3 回答 3

2

第 1 部分:您想使用类名而不是 id 来控制样式:

.control_a {
  width: 100px;
}

<blah id='MyFirstControl' class='control_a'/>
<blah id='MySecondControl' class='control_a'/>

这使您可以跨任意数量的标签共享样式。另外,请记住,您可以在单个元素上使用多个类名:

.control_a {
  width: 100px;
}

.red { background: #f00; }    
.blue { background: #00f; }

<blah id='MyFirstControl' class='control_a red'/>
<blah id='MySecondControl' class='control_a blue'/>

这使您可以为单个元素选择许多不同的样式来源。

于 2009-03-13T02:19:27.833 回答
1

没有办法继承 CSS“对象”。您可以从其他标签内的标签继承样式,但继承的是标签而不是样式本身。如果您将标签放在具有另一种样式的标签内,它将继承自该样式。

如果将 CSS 样式视为对象可能会很有趣,因为您可以避免大量编码,但是由于您可以创建一个可以应用于不同类型的对象的类,甚至可以将多个类应用于一个标签,它更比必要的有趣。

我不确定第二个问题,但我想这与您应用标签名称的事实有关,而不是使用类或 id。我将不得不再玩一些,看看我是否能解决问题。

于 2009-03-13T02:22:14.100 回答
0

1) 由于 CSS 不允许自引用,因此您可以在同一样式中指定两个单独元素的共同方面:

#MyFirstControl, #MySecondControl
{
  width: 100px;
}

2)如果要相信我的 IDE 和浏览器,在这种情况下inherit不是有效值width,但我不确定为什么。这可能就是您的示例不起作用的原因。

于 2009-11-30T19:25:43.727 回答