2011-06-12 33 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>";