2011-06-12 97 views
0

对不起,奇怪的标题。根据div中的文本数量更改悬停属性

无论如何,我在C#中添加一个div和一些文本到像这样的控件。

lit.Text = "<div class=\"event\">" + text + "</div>"; 

我的风格是这样的:

​​

我想的背景变化仅是只要文本,而不是整个股利。我怎样才能做到这一点?

更新:将它包裹在一个跨度中,并且在一定程度上对跨度进行造型。我没有提到我将它添加到的控件是一个表格单元格。我有:

style="width:50%" 

这是迫使细胞占用恰好有一半表,尽管多少文本是它或同一行的第二个单元格。随着跨度,这不再是真实的,表格是错位的。我如何解决这个问题?

+0

你不能;除非使用CSS('b','a','em','span' ...)封装文本,否则文本不能用CSS来定位。 – 2011-06-12 19:36:07

+0

如果我理解正确,div类'事件'必须是50%宽度才能正确格式化单元格,对不对?如果是这样,看到我更新的答案,否则请更好地解释它 – 2011-06-12 19:54:27

回答

1

比你必须将它应用到文本。

lit.Text = "<div class=\"event\"><span>" + text + "</span></div>"; 

    .event 
    { 
     width:50%; 
    } 


    .event span:hover 
    { 
     background-color: #F0F0F0; 
    } 

应该这样做;

+0

完美,谢谢你的朋友。 – Jeremy 2011-06-12 20:06:53

1

如果您希望div的宽度只与内容一样宽(并且不具有与内容一样宽的背景),那么我会建议您通过this question进行阅读。

如果您只希望背景的宽度与文本一样宽,然后将文本包裹在另一个元素(例如span)中,然后在其上设置背景。

1

我不能完全肯定你是什么之后,但也许:

lit.Text = "<div class=\"event\"><div>" + text + "</div></div>"; 

与CSS:

.event:hover > div 
{ 
    background: #F0F0F0; 
} 

或代替可能:

lit.Text = "<div class=\"event\"><span>" + text + "</span></div>"; 

与CSS:

.event:hover > span 
{ 
    background: #F0F0F0; 
} 
1

您必须包装在像跨度内联元素文本:

lit.Text = "<div><span class=\"event\">" + text + "</span></div>";