当前位置: 首页 > 面试题库 >

您可以对:before /:after伪元素(content:url(image))应用宽度吗?

向俊贤
2023-03-14
问题内容

这是我最近的问题的补充:是否可以使用伪元素来使包含元素包裹在绝对定位的元素周围(如clearfix)?
我正在尝试使用伪元素来“清除”绝对定位的图像。我已经尽力使相同的图像显示在幻灯片后面,但似乎无法对插入的图像应用宽度。我疯了吗,还是不能将宽度应用于内容为url(img/image.jpg)的伪元素?我尝试了display:block等的各种变化,但无济于事…

#slider ul:after {
  content: url(http://www.cs7tutorials.com/img/slide1.jpg);
  display: block;
  position:relative;
  width:70px;
}

我需要将伪元素图像的宽度设置为100%,将最大宽度设置为800px,以使其具有与幻灯片相同的尺寸。


问题答案:

您并不疯狂:确实不可能更改使用插入的图像的尺寸content。图像始终按原样渲染。这称为替换内容或[替换元素(除非我们在这里不讨论元素)。

然而,由于替换元素 可以
通过调整大小widthheight中所述的CSS2.1规范第10条,这引起了为什么似乎属性不适用于此问题。答案似乎是,属性确实适用,但适用于_伪元素框_ -您可以通过为伪元素赋予背景色来看到这一点。图像不会代替伪元素框本身,而是呈现为伪元素框的
元素,因此根本无法样式化(因为这将需要另一个不存在的伪元素)。

这就引出了另一个问题:为什么它不完全取代伪元素框?不幸的是,CSS2.1根本没有指定此行为,因此,已达成共识的实现是将内容呈现为伪元素框的子元素

CSS2.1并没有真正明确html" target="_blank">定义:: before和:: after上“ content”的处理模型,但是CSS 2.1中的信息示例,“
content”指定了事物 列表 以及对一致性的渴望导致UA行为如下:’content’属性指定了成为:: before或::
after框的子级的事物的列表。

希望这将在CSS生成的内容级别3中得到进一步解决,该级别的重写工作才刚刚开始。

同时,如果您希望能够调整:after伪元素和生成的图像的大小,则需要将其作为背景图像应用,并且(假设没有浏览器支持)将其background-sizewidth和一起使用并height缩放(基于这些属性改为应用于伪元素框的理解)。



 类似资料:
  • 问题内容: 我正在尝试为HTML5中的提出一些好的默认样式,并尝试了以下方法: las,内容从不显示。对于伪元素,双冒号和单冒号都不是问题。我都尝试过。拥有一个伪元素和一个伪类也不是问题。我已经尝试过不使用和了。在Chrome,Safari和Firefox中,我得到了相同的行为(Firefox没有和类,但是我尝试了不使用它们。) 在伪元素工作细,,,和元素-其中一些是块元件和一些是内联。 因此,我

  • 问题内容: 我正在尝试在字段上使用CSS伪元素,但是它不起作用。如果我将它与一起使用,则可以正常运行。 这有效(在“ buu!”之后和“更多”之前放置笑脸) 这是行不通的-它只将someValue涂成红色,但没有笑脸。 我究竟做错了什么?我应该使用另一个伪选择器吗? 注意:我无法在周围添加,因为它是由第三方控件生成的。 问题答案: 并且在Internet Explorer 7及更高版本中的任何元素

  • 问题内容: 有什么原因导致此CSS无法正常工作? ..在这个HTML上? 这个想法是在匹配的锚标签上有一个伪元素。但是我不希望它适用于包装图像的锚标签。而且由于我无法使用诸如来定位锚,所以我想也许可以通过找到一个与之类似的图像来定位:after伪元素。 任何见识将不胜感激。 问题答案: 您无法定位:之后,因为它的内容未在DOM中呈现且无法对其进行操作-为此,必须重新呈现DOM,而CSS不能像这样进

  • 问题内容: 在此MS兼容性表上,它说IE9不支持伪元素和,但是当我尝试时,它似乎支持伪元素… 难道我做错了什么?我认为并且将是隐藏IE9中内容的好工具,而实际上却不是。 问题答案: IE8和更高版本支持CSS2伪元素和(具有传统的单冒号表示法)。它们不是CSS3的新功能。 另一方面,双冒号表示法是CSS3的新功能。IE9 确实 支持and和CSS1伪元素and的新符号。然而,展望未来,没有新的伪元

  • 问题内容: 我正在使用和CSS伪元素,并且它在 IE8 和所有现代浏览器中都可以正常工作,但在 IE7中 却不能正常工作。在 IE7中 是否存在已知的解决方法? 问题答案: 我在项目中使用的是IE8.js(http://code.google.com/p/ie7-js/),我必须将其删除,因为它在10/15秒内阻止了IE7。 为了保留用:after和:before伪元素生成的内容,而没有IE8.j

  • 问题内容: 我正在显示链接的属性。title属性通过… 附加到链接。 现在,我想知道如何在移入和移出时动画化伪元素的不透明度。 html CSS 任何想法为什么这不起作用? 问题答案: WebKit(Chrome,Safari)不支持在伪元素上进行过渡。 它应该可以在Firefox中使用。 编辑: WebKit中的问题现在已解决。该修补程序已经可以在Chrome Carnery中找到,因此它将从版