2016-01-15 23 views
-2

我有一張桌子,我需要禁用第一行的第一個單元格上的輸入,只能使用CSS。 這可能嗎?只用CSS禁用表中第一行的第一個單元格?

我試着content: " "但它不工作(不是:after:before,因爲這不會禁用單元上的輸入)

小提琴:https://jsfiddle.net/79n3pr74/

+0

請發佈與您的問題相關的JavaScript/jQuery,CSS和HTML。使用任何或所有以下服務創建演示: [jsFiddle.net](https://jsfiddle.net/), [CodePen.io](https://codepen.io/), [Plunker。 (http://plnkr.co/), [JS Bin](https://jsbin.com/) 或片段(位於文本編輯器工具欄或CTRL + M上的第7個圖標)。 – zer00ne

+0

我試過'content:''''運氣不好。我可以把背景顏色,但沒有其他的東西禁用 –

+0

@ zer00ne我認爲你還沒有讀過這個問題......,我正在尋找一種方法來禁用表格單元與JavaScript ..你想寫什麼JavaScript? ? –

回答

2

你可以不喜歡這樣,與pointer-events

tr:first-of-type td:first-of-type input{ 
 
    opacity:.5; 
 
    pointer-events:none; 
 
} 
 
<table> 
 
    <tr> 
 
    <td><input></td> 
 
    <td><input></td> 
 
    </tr> 
 
    </table>

這有兩個問題。其中,IE 10和更低版本將無法正常工作,輸入只會稍微透明。二,用戶仍然可以將tab放入其中。

一個更好的解決辦法是完全隱藏輸入,並與被風格看起來像一個禁用輸入:after替換:

tr:first-of-type td:first-of-type input{ 
 
    display:none; 
 
} 
 
tr:first-of-type td:first-of-type:after{ 
 
    content:""; 
 
    display:inline-block; 
 
    width:150px; 
 
    height:1em; 
 
    padding:2px; 
 
    background:white; 
 
    border:1px solid grey; 
 
    cursor:not-allowed; 
 
    vertical-align:top; 
 
    opacity:0.5; 
 
    } 
 
    
<table> 
 
    <tr> 
 
    <td><input></td> 
 
    <td><input></td> 
 
    </tr> 
 
</table>

You can play with this jsfiddle

相關問題