CSS 下拉菜单显示 selection/change 的文本区域

CSS drop down menu to show text area for selection/change

我想在下拉菜单中显示一个文本区域,并能够在菜单 dropped/clicked 时将其更改为保持打开状态,这是我正在尝试使文本区域保持打开状态的代码并使用 css 激活?

http://jsfiddle.net/davidgiffo/4p7tc3q8/

HTML

<ul class='menu'>
<!-- list 1 -->
<li><a href='#' tabindex='1'>List 1</a> 
<ul>
<textarea rows="5" placeholder="Please put first list here"></textarea>
</ul>
</li>
<!-- list 2 -->
<li><a href='#' tabindex='1'>List 2</a> 
<ul>
<textarea rows="5" placeholder="Please put first list here"></textarea>
</ul>
</li>
</ul>

CSS

ul { 
    margin: 0; 
    padding: 0; 
    list-style: none;
}
a { 
   text-decoration: none; 
}
a:focus { 
   outline: none; 
}
.menu > li { 
    padding: .3em; 
}
.menu ul { 
   padding-top: .5em; 
   display: none; 
}
.menu a { 
     display: block; 
}
.menu > li > a:after { 
     padding-left: 130px;
     font-size: 1em; 
     content: '▼'; 
}

.menu a:focus + ul,
 menu a:active + ul {
        display: block;
 } 

首先 textarea 不是 ul 的有效子项,因此您需要更改标记,然后使 textarea 的 CSS 也能正常工作:

ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
a {
  text-decoration: none;
}
a:focus {
  outline: none;
}
.menu > li {
  padding: .3em;
}
.menu textarea {
  padding-top: .5em;
  display: none;
}
.menu a {
  display: block;
}
.menu > li > a:after {
  padding-left: 130px;
  font-size: 1em;
  content: '▼';
}
.menu a:focus + textarea,
.menu a:active + textarea {
  display: block;
}
.menu li > textarea:focus,
.menu li > textarea:active {
  display: block;
}
<ul class='menu'>
  <li><a href='#' tabindex='1'>List 1</a> 
    <textarea rows="5" placeholder="Please put first list here"></textarea>
  </li>
  <li><a href='#' tabindex='1'>List 2</a> 
    <textarea rows="5" placeholder="Please put first list here"></textarea>
  </li>
</ul>