You can't do this only with CSS. You'll need Javascript because the selected option of your select is not a sibling of your input-box in the DOM :
<select name="mySelect" id="mySelect">
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="other">Other</option>
</select>
<input type="text" name="input-box" id="inputBox" cols="30" rows="10" class="hidden"/>
With a checkbox it's possible because the input-box directly follow your box :
<input type="checkbox" name="checkme" id="checkme"/>
<input type="text" name="myInput" id="myInput" />
So in Javascript, you'll need an event listener on your select to hide/show the input-box. Something like this should do the trick : http://jsfiddle.net/1cevh233/
JS
var selectEl = document.getElementById('mySelect');
var inputBox = document.getElementById('inputBox');
var listener = function(e){
if(selectEl.value == "other"){
inputBox.className="";
}else{
inputBox.className="hidden";
}
}
selectEl.addEventListener('change',listener);
CSS
.hidden{
display:none;
}