【问题标题】:Pseudo element affecting outline [duplicate]影响轮廓的伪元素[重复]
【发布时间】:2015-08-10 03:25:00
【问题描述】:

很确定这是 Firefox 的一个错误,但也许有人可以权衡一下。

我正在围绕 100x100 的框应用轮廓。当您使用绝对定位的伪元素时,它应该将其从文档流中删除,但它似乎仍在影响大纲属性的流。 IE 和 Chrome 似乎像我预期的那样呈现这个,黑色轮廓保持在主要元素的位置。有什么想法吗?

.content
{
  width:100px;
  height:100px;
  outline:1px solid black;
  border:1px solid yellow;
  position:relative;
}

.content:after
{
  position:absolute;
  content:'pseudo';
  background-color:salmon;
  width:200px;
  top:150px;
}
<div class='content'></div>

http://jsbin.com/gatupogiwi/1/edit?html,css,output

【问题讨论】:

  • 更新了 IE、Firefox、Chrome 的图片
  • 我会说这是一个错误......而不是一个新错误。
  • 有人说这是一个错误:herehere,其他人说不是这样,我想它已经有一段时间了
  • 为什么不直接删除 position: relative jsfiddle.net/k7z7sqay/26
  • @AdamBuchananSmith 我需要根据节点的位置定位伪元素。不幸的是,对文档进行定位是行不通的。

标签: html css


【解决方案1】:

您可以将outline 样式更改为box-shadow

outline:1px solid black;

到:

box-shadow: 0px 0px 0px 1px black;

【讨论】:

  • 很好的建议。我做了一些快速测试,它有效。让我再做一些测试,我会接受
  • 请注意outline-style: auto(默认值)使轮廓的行为与outline-style: solid 不同,并且您不能仅使用box-shadow 来模仿 行为。不同之处在于,当您用鼠标单击链接 (<a>) 元素时,它 获得焦点,但在这种情况下,a:focus{ outline: ... auto ...; }不会 呈现。
猜你喜欢
  • 2021-12-26
  • 2021-01-15
  • 2016-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-19
相关资源
最近更新 更多