【问题标题】:How to set the default browser style outline on child when parent is on focus当父母处于焦点时如何在孩子上设置默认浏览器样式大纲
【发布时间】:2015-10-07 08:33:38
【问题描述】:

当父母处于焦点时,我想在孩子而不是父母身上显示轮廓。我有这个code

a {    
   display:inline-block;
   width:300px;
   height:300px;
   outline: 0;
}

a:focus > .b {
   outline: 1; /* can be initial, does not work */
}

如果样式是,轮廓会显示在孩子身上,

a:focus > .b {
   outline: red solid 3px;; 
}

如何在孩子身上设置默认的鲍泽风格轮廓?我有 Chrome、FF 和 IE9+

我有兴趣为大纲引入默认浏览器样式

【问题讨论】:

  • 你有这样的结构吗?:<a href="..."><element class="b"></element></a>。或者你有这个结构吗?:<a href="..."><b></b></a> 很不一样!其次,您需要删除选择器中的点a:focus > b
  • @MarcosPérezGude 检查小提琴
  • 对不起,该结构在 JSFiddle 中。类似于<a href="..."><element class="b"></element></a>

标签: html css


【解决方案1】:

您不能在没有轮廓的元素中显示轮廓。那是一个边界。您删除 <a> 标记中的轮廓,这很好,然后为 .b 元素添加边框:

 a:focus > .b { border: 1px solid red; }

编辑

主动测试

 a > .b:active {
     outline: 1px solid red; 
 }

【讨论】:

  • 您可以设置outline for a span。我不想更改默认的大纲样式,以免影响可访问性。
  • 是的,但是 span 无法集中注意力。你必须改成:active伪类
  • 我不想在焦点或活动时设置跨度的样式。我只希望在父级接收焦点时将焦点的样式应用于子跨度而不是父级。我希望我已经表达了我的问题。
  • 我认为您需要找到另一个与span 不同的标签。可以聚焦的标签。 :active 适用于 onmousedown 的任何标签,但 onmouseup 显然消失了。可以关注的标签:a, select, input, textarea, button, area。我认为我没有错过任何事情
  • 谢谢,我用按钮试试。
猜你喜欢
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-12
相关资源
最近更新 更多