html - 当文本区域处于焦点时,如何让 div 出现? (两者都是同一表单元素的子元素)

标签 html css forms css-selectors

我无法让我的 CSS 工作 :(

HTML

<form action="/api/submit/" method="post">
    <textarea name="post" rows="2"></textarea>
    <input type="url" name="url" />
    <div>
        <input type="radio" name="someName" value="someValue" />
    </div>
    <button type="submit">Submit</button>
</form>

CSS

form > input {
    display: none;
    position: absolute; top: -2.5em; left: 0;
}
form > textarea:focus + input {
    display: block;
}
form > div {
    display: none;
    position: absolute; top: 0; left: -6.66%;
}
form > textarea:focus + input + div {
    display: block;
}

我想要的是让 divinput 元素在 textarea 处于焦点时出现。目前,只有 input 元素在做它应该做的事情。

此外,如果我不在 textarea 上使用 :focus,我可以选择 div,这很奇怪。

最佳答案

你可以使用 css3

form > textarea:focus ~ div {
    display: block;
}

其中 ~ 是一般的前一个兄弟选择器 w3c css3 selector recommendation

演示:jsfiddle

关于html - 当文本区域处于焦点时,如何让 div 出现? (两者都是同一表单元素的子元素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3242899/

相关文章:

php - 程序生成的 div 相互堆叠。我怎样才能垂直对齐它们?

php - 开放层 : remove multiple popups

javascript - 带有许多无序列表项的溢出 div 区域

html - 我的媒体查询不起作用。包括元标记;链接 rel 链接

html - 随机空白 HTML5

html - 两个边界重叠,大小不同

javascript - Firefox 会默默地忽略一些不违法的 CSS 值

html - Chrome 对齐元素 : baseline for select and input elements

javascript - Ajax 帖子表单 - 如何重新提交?

Angular - FormGroup 上的 ngOnChange