html - CSS 伪元素大小问题

标签 html css pseudo-element

请告诉我为什么 :before 伪元素在这种情况下不像常规 img 那样:

enter image description here

左边一个是 div 里面有一个 img 并且 img 的宽度和高度等于 100% 。右边的是div:before:before的宽高也是100%,但是效果不一样!

(我知道我可以使用 background-image 解决方法,但是当 content 属性为 :pseudo 出了什么问题>url() ?)

fiddle :http://jsfiddle.net/Tp9JG/4/

最佳答案

不幸的是,当通过内容指定图像时,您无法控制图像的大小, 但如果您将其用作背景,则可以:

.with_before:before{
    content:'';
    background-image: url('http://i.stack.imgur.com/CAAFj.jpg');
    background-size: 100% 100%;
    width: inherit;
    height: inherit;
    display: inline-block;
}

检查这个jsFiddle

关于为什么我们不能为生成的内容设置样式的问题: 我们不能,因为生成的内容会呈现到生成的框中,您可以设置该框的样式,但不能设置内容的样式。

引用文献:

  1. check this post
  2. another lengthy discussion on this subject

请注意不同的浏览器表现出非常不同的行为。

关于html - CSS 伪元素大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18482219/

相关文章:

当位于 :fixed pseudo-element 位置时,CSS 背景图像不会显示在 IE11 上

html - 强制布局中的一列优先

html - 如何将这个 4 列表转换为单列表,但仍保持表的可访问性

css - 透明图像未出现在菜单中

html - 伪元素 100% 宽度不占用容器大小

css - 将 CSS 样式添加到除焦点文本区域之外的所有内容

javascript - javascript对象和html dom之间的内存利用率

javascript - 如何使用js清空第二个文本区域中的第一个文本区域值

javascript - ajaxForm 插件不断重定向到操作页面,忽略返回 false;

javascript - 为什么显示/隐藏 div 在 firefox 中有效,但在 google chrome 中无效?