当我开始在文本区域中编写文本时,我希望带有类框的外部div将其边框变为实线而不是虚线,但不知何故:Focus在这种情况下并不适用.如果它可以与:Active一起工作,为什么它不能与:Focus一起工作呢?

知道为什么吗?

(注意,我希望DIV的边框变为实心,而不是文本区域)

div.box
{
    width: 300px;
    height: 300px;
    border: thin dashed black;
}

div.box:focus{
    border: thin solid black;
}

<div class="box">
    <textarea rows="10" cols="25"></textarea>
</div>

推荐答案

虽然单靠CSS/HTML无法实现这一点,但可以通过JavaScript实现(无需库):

var textareas = document.getElementsByTagName('textarea');

for (i=0;i<textareas.length;i++){
    // you can omit the 'if' if you want to style the parent node regardless of its
    // element type
    if (textareas[i].parentNode.tagName.toString().toLowerCase() == 'div') {
        textareas[i].onfocus = function(){
            this.parentNode.style.borderStyle = 'solid';
        }
        textareas[i].onblur = function(){
            this.parentNode.style.borderStyle = 'dashed';
        }
    }
}

JS Fiddle demo

顺便说一句,使用jQuery这样的库,上面的内容可以压缩为:

$('textarea').focus(
    function(){
        $(this).parent('div').css('border-style','solid');
    }).blur(
    function(){
        $(this).parent('div').css('border-style','dashed');
    });

JS Fiddle demo美元.

参考资料:

Css相关问答推荐

视频覆盖不适用于reactjs样式的组件

悬停时可展开的按钮与屏幕右侧对齐,如何保持未悬停的按钮正确对齐?

CSS媒体查询不显示所需的输出

设置项目的最大宽度和最大高度

测试响应式设计:手动拖动浏览器窗口与使用设备工具栏

使用CSS Grid是否可以跳过下一列?

Tailwind CSS: Select 单选按钮时不应用同行判断的边框

用css画3个三角形

Icomoon:如何避免重复索引(具有相同内容 ID 的不同图标)?

使用 MUI 动态绘制多个边框

Flexbox 子高度它的内容

选中时从 HTML 文本输入中移除蓝色光晕

如何使多个 div 显示在一行中但仍保留宽度?

在 IE9-10 中压缩 SVG 的背景大小

Flexbox 列自底对齐

内联块列表项中不需要的边距

为什么浏览器会为 CSS 属性创建供应商前缀?

打印html时在页面上打印页码

如何将页脚(div)与页面底部对齐?

如何在页面上居中 twitter bootstrap 选项卡?