2012-04-15 43 views
1

我試圖在一個表格單元格<td>中放置一些圖標,但結果是它們位於屏幕的右上角(表格單元格之外)。如何將我的圖標放置在表格單元格的右上方?

短版的我的代碼是這樣的:

<td class="td_name"> 
    <div class="actions"> 
    <div class="floatLeft iconset_16px update_sprite_bw_16px" title="Update"></div> 
    <div class="floatLeft iconset_16px settings_sprite_bw_16px" title="Settings"></div> 
    <div class="floatLeft iconset_16px delete_sprite_bw_16px" title="delete"></div> 
    </div> 
    <div class="gal_name"> 
    Some name 
    </div> 
</td> 

td_name位置設置爲相對action設置爲絕對。這應該起作用,但這次不行。

我在這裏錯過了什麼? Se full code example on jsFidle

注意

我想給action DIV 內定位的<td class="td_name">
如果你的jsFiddle stills在jsFiddle的HTML窗口的右上角顯示iconset_16px div,那麼你的例子也不起作用。

#sim_gallery .defaultList tr td.name { position: relative; width: 200px; height: 100px; } 
#sim_gallery .defaultList tr td .actions { position: absolute; top: 0px; right: 0px; margin: 5px;} 

注2:
這是大家不熟悉的表的使用。

在90年代初,它非常流行,使用表格進行頁面佈局非常簡單。但設計師很快就明白,改變佈局是a **中的一個痛點。桌子的使用也有several more disadvantages

所以是的,你可以設計任何東西而無需使用表格。

那你什麼時候使用表?表格通常用於顯示錶格數據。這是一種網頁的Excel工作表。我的經驗是,與列表元素和div相比,構建表格數據要容易得多。所以在某些情況下,我使用表格知道這對網站沒有任何負面影響。

所以,請不要開始討論使用表格有多糟糕。用你能幫助我解決我的問題:)

+1

爲什麼在'table'中使用'div'? – Sparky 2012-04-15 16:31:05

+0

「這應該是有效的」 - 如果只有這種情況總是如此! :) – Terry 2012-04-15 16:37:11

+1

@ Sparky672因爲有另一個名稱的div。看到我的示例代碼 – Steven 2012-04-15 16:50:13

回答

3

經過一些更多的測試後,它看起來像是無法定位表格單元格。哪一種是有道理的。但我並沒有試圖定位表格單元本身,而是單元格內的內容。

經過一些關於網絡的研究(以及一些無用的辯論),I found this article。這基本上給了我簡短的回答:不,這是不可能的。

在他們的例子中,他們使用jQuery。但是因爲我仍然想用CSS來做到這一點,所以我想出了一個替代解決方案。

我只是將我的內容包裹在表格單元格中的DIV中,並確保此DIV與表格單元格一樣大。瞧,一切都很好:)

.wrapper { width: 200px; height: 100px; line-height: 100px; position: relative; border: solid 1px #666; } 
.actions { position: absolute; top: 0px; right: 0px; } 
.iconset_16px { height: 16px; width: 16px; background-color: #87ceeb; margin: 3px;} 
.floatLeft { float:left!important; } 

<table> 
<tr> 
<td> 
<div class="wrapper"> 
<div class="actions"> 
    <div title="Update" class="floatLeft iconset_16px"></div> 
    <div title="Settings" class="floatLeft iconset_16px"></div> 
    <div title="delete" class="floatLeft iconset_16px"></div> 
</div> 

<div class="gal_name"> 
    <a title=" Adventure" href="#"> Adventure</a> 
</div> 
<div> 
</td> 
</tr> 
</table> 
0

不完全知道你正在嘗試做的, 什麼,但你嘗試過在你的<td>設置position: relative然後 調整你的圖標位置根據需要?

http://jsfiddle.net/Z3kpr/1/

+0

我試圖在'td class =「name」'裏面放置'action' div。如果你閱讀我的示例css。 '​​**被**設置爲'relative'。您的更改結果與我的相同。 – Steven 2012-04-15 16:52:01

+0

@Steven - 嗯,我沒有看到位置:在你的​​的css中相對設置,你的小提琴的輸出看起來與我改變的不同。 – mg1075 2012-04-15 16:54:37

+0

我在原來的問題中添加了css。它是jsFiddle底部的第3行和第4行。 – Steven 2012-04-15 17:03:44

0

divactions下元素是浮動留下您的!important標誌(壞主意,因爲這個原因),所以他們忽略了父母的定位。

取下浮子,它們將被正確定位。

這裏是您更新的小提琴其中一個他們固定,所以你可以看到區別。 http://jsfiddle.net/u9p4u/1/

+0

你錯了。在'action' div中浮動div是沒有問題的。刪除'floatLeft'什麼都不做。看你自己的例子。我試圖定位'行動'div ** isnide **'​​'。 – Steven 2012-04-15 16:53:35

相關問題