假设你有这样的东西:
<div class="parent">
<input class="childInput" type="text" />
<div class="sibling"></div>
</div>
我想在子元素获取焦点时改变父元素/兄弟元素的外观。是否有任何 CSS 技巧可以实现这样的操作?
编辑:
我的问题原因如下:我正在创建一个需要可编辑文本字段的 Angular 应用程序。它应该看起来像一个标签,直到被点击为止,此时它应该看起来像一个普通的文本输入框。我使用 :focus 样式来设计文本字段以实现这种效果,但是文本被文本输入框的边界截断了。我还使用了 ng-show、ng-hide、ng-blur、ng-keypress 和 ng-click 来基于失焦、按键和单击之间的转换在标签和文本输入框之间进行切换。这个方法除了一个问题之外都很好:在标签的 ng-click="setEdit(this, $ event)" 更改由 ng-show 和 ng-hide 使用的编辑布尔值为 true 之后,它使用一个 jQuery 调用来 .select() 文本输入框。然而,直到 ng-click 完成时才完成 $digest,所以文本输入框再次失去焦点。由于文本输入框实际上从未获得焦点,因此使用 ng-blur 返回到显示标签是有问题的:用户必须先单击文本输入框,然后再次单击以返回到显示标签。 编辑: 这里是一个示例 plunk,演示了这个问题:http://plnkr.co/edit/synSIP?p=preview