标签: css-content

是否可以选择css生成的内容?

假设我有标记:

<div data-generated="world!">Hello </div>
Run Code Online (Sandbox Code Playgroud)

..带CSS:

div:after {
    content: attr(data-generated);
}
Run Code Online (Sandbox Code Playgroud)

这会产生文本:Hello world!- FIDDLE

div:after {
    content: attr(data-generated);
}
Run Code Online (Sandbox Code Playgroud)
<div data-generated="world!">Hello </div>
Run Code Online (Sandbox Code Playgroud)

但...

如果我尝试选择/复制文本 - 只能选择'hello'部分.

在此输入图像描述

有没有办法选择css生成的文本?

注意:

1)我已查看有关生成内容的规范(此处此处),我没有看到任何对此问题的引用.

这里这里的规范似乎说生成的内容应该是可选择的

生成的内容应该是可搜索的,可选择的,并且可用于辅助技术

2)如果这个问题的答案是"不 - 这是不可能的" - 请链接到一个可靠的来源,说明这一点.

html css selection pseudo-element css-content

31
推荐指数
3
解决办法
3488
查看次数

CSS伪元素计数器:你能增加一个字母"a","b","c"等而不是数字?

如此处所定义:

http://www.w3.org/TR/CSS21/generate.html#propdef-counter-increment

您可以使用以下代码来增加伪元素中的数字.

H1:before {
    content: "Chapter " counter(chapter) ". ";
    counter-increment: chapter;  /* Add 1 to chapter */
}
H1 {
    counter-reset: section;      /* Set section to 0 */
}
H2:before {
    content: counter(chapter) "." counter(section) " ";
    counter-increment: section;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以使用相同的代码来增加像"a","b","c"等字母?

谢谢!

css pseudo-element css-content

29
推荐指数
1
解决办法
2万
查看次数

为什么我需要在:: after伪元素上使用空的`content`属性?

我从上一个问题中得到了http://jsfiddle.net/8p2Wx/2/,我看到了这些问题:

.cf:before,
.cf:after {
    content:"";
    display:table;
}

.cf:after {
    clear:both;
}
Run Code Online (Sandbox Code Playgroud)

如果我带走content:"",它会破坏效果,我不明白为什么它是必要的.

为什么需要添加一个空content:after:before伪元素?

css pseudo-element css-content

24
推荐指数
2
解决办法
4万
查看次数

Css Content,Attr和Url在同一句话中

我已经使用了content属性很长一段时间了,今天我想尝试新的东西.而不是使用JS来显示图像工具提示,我想知道是否可以使用CSS动态地执行它.

所以我尝试过:

.TableLine:hover:after{
  content: url("../Img/Photo/"attr(id)".jpg"); 
}
Run Code Online (Sandbox Code Playgroud)

其中attr(id)应该返回的图片(字母数字)的ID这也是图象的名称.

它根本不起作用,它没有效果.我认为该块没有解析,因为向块添加边框或背景似乎也没有效果.

当我只使用attr(id)单独的,没有url的东西,它完美的工作.当我用attr(id)图片的真实名称替换它时,它也有效.

在网上搜索了一段时间后,我没有发现任何相关内容,所以我在这里.这是一个已知的错误还是我的错误?:)

css url attr css-content

19
推荐指数
2
解决办法
1万
查看次数

CSS`content`属性是如何为WebKit中的`img`元素工作的?

很久以前有一个CSS3生成内容规范的草案,它允许任何HTML元素content属性(不仅是::之前的:: ::伪元素之后),对空元素或替换元素没有任何正式限制.有人曾经被Opera的Presto支持(1,2),并且至少在一定程度上,通过WebKit的(3).到2011年底,WebKit的for 元素实现似乎有效地将它从空替换元素转换为非替换元素(甚至更改了上下文菜单,删除了"将图像另存为..."等选项).它还可以应用伪元素.contentimgspanimg::before

在当前的Blink(Chrome等)实现中,seeting content属性到img元素没有可见效果.但是img元素显然具有不同的结构,具体取决于它是正确加载还是被破坏:如果加载,它由DOM Inspector显示为一个简单的空元素,但如果被破坏,它会暴露内部的Shadow DOM结构,如下所示:

<div id="alttext-container" style="overflow: hidden; border: 1px solid silver; display: inline-block; box-sizing: border-box; padding: 1px;">
  <img id="alttext-image" width="16" height="16" align="left" style="margin: 0px; float: left; display: inline;">
  <div id="alttext" style="overflow: hidden; display: block;">Alt text</div>
</div>
Run Code Online (Sandbox Code Playgroud)

可能是因为在img阴影divs 的帮助下显示了破碎,在这种情况下可以将伪元素应用于它(4).

当前的WebKit不支持伪元素img.但是,有趣的是,至少iOS 9.2.1 Safari在为该content属性设置属性后开始支持它们img(5).

为什么这个属性会做出这样的改变?我想如果一个空元素获得任何内容(甚至生成),浏览器必须提供一些东西来显示这个内容,有效地用某种容器(如Blink的阴影div …

css webkit image pseudo-element css-content

19
推荐指数
1
解决办法
1362
查看次数

颜色"透明"不起作用

我有IE的问题(还有什么?):

我用CSS生成内容,它也有背景图像.我看起来像那样:

#nav ul li:after {
    content: "--";
    position: relative;
    z-index: 99;
    background: transparent url(image.png);
    color: transparent;
}
Run Code Online (Sandbox Code Playgroud)

文本颜色在非IE浏览器中是透明的,但在所有IE浏览器(IE6-IE8)中它都是黑色的,你可以看到它.我怎么能让文字透明/不可见?

我已经尝试过了:可见性 - 不透明度 - 过滤器 - 文本缩进...但是没有一个人能够正确地完成他的工作,要么它消失了(带有我需要的背景),要么属性不适用.

css internet-explorer css-content

18
推荐指数
3
解决办法
4万
查看次数

为什么:before和:after伪元素需要'content'属性?

鉴于以下场景,为什么:after选择器需要内容属性才能运行?

.test {
    width: 20px;
    height: 20px;
    background: blue;
    position:relative;
}
			
.test:after {
    width: 20px;
    height: 20px;
    background: red;
    display: block;
    position: absolute;
    top: 0px;
    left: 20px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="test"></div>
Run Code Online (Sandbox Code Playgroud)

注意在指定content属性之前如何看不到伪元素:

.test {
    width: 20px;
    height: 20px;
    background: blue;
    position:relative;
}
			
.test:after {
    width: 20px;
    height: 20px;
    background: red;
    display: block;
    position: absolute;
    top: 0px;
    left: 20px;
    content:"hi";
}
Run Code Online (Sandbox Code Playgroud)
<div class="test"></div>
Run Code Online (Sandbox Code Playgroud)

为什么这是预期的功能?你会认为显示块会强制元素出现.奇怪的是,您实际上可以在Web调试器中看到样式; 但是,它们不会显示在页面上.

css pseudo-element css-content

18
推荐指数
4
解决办法
7869
查看次数

是否有可能在伪元素之前/之后设置iframe样式?

正如标题所说,有没有办法设置iframes伪before/ after?没有用另一个包装iframe div,或者?`

我试着像任何其他元素一样设计样式,但没有成功:

iframe::before {
    content: 'foo';
    position: absolute;
    top: 0;
    left: 0;
}

iframe::after {
    content: 'bar';
    position: absolute;
    top: 0;
    right: 0;
}
Run Code Online (Sandbox Code Playgroud)

http://fiddle.jshell.net/ppRqm/

更新

一个已知的解决方法是将前/后添加到源文件中的元素:http: //fiddle.jshell.net/ppRqm/2/

但有时您无法访问源文件.

css iframe styling pseudo-element css-content

17
推荐指数
1
解决办法
9897
查看次数

带有前导零的嵌套css计数器

是否可以将css counters()函数与前导零组合,生成如下列表:

Item 01
  Item 01.01
  Item 01.02
    Item 01.02.01
Run Code Online (Sandbox Code Playgroud)

可以使用前导零,并且可以使用content: counter(name, decimal-leading-zero)组合嵌套计数器content: counters(name, ".").

我知道如果已知嵌套级别的解决方法(即我知道列表只会嵌套3级深度),但有人知道是否可以将这些组合用于未知嵌套级别的列表?

css css-content

14
推荐指数
1
解决办法
7666
查看次数

在伪元素没有出现在代码中之后

我正在尝试使用after伪元素为网站添加一些效果.

<div class="product-show style-show">
  <ul>
    <li>
      ....
      <div class="...">
        <div class="readMore less">...</div>
        <a href="3" class="readMoreLink" onclick="return false;">Read More</a>
      </div>
      ....
    </li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

和样式表:

.product-show .readMore.less {
   max-height: 200px;
   height: 100%;
   overflow: hidden;
}

.product-show .readMore.less:after {
   background: rgba(255, 255, 255, 0);
   display: block;
   position: absolute;
   bottom: 0;
   left: 0;
   width: 100%;
   height: 30px;
 }
Run Code Online (Sandbox Code Playgroud)

我看到.product-show .readMore.less的样式正在应用,但是当我从Chrome(最新版本)/ MacOS检查网站时,我在HTML块中没有看到::.我读过老浏览器有时会出现问题,但我认为如果我正确定义了样式,我应该能够至少看到:: after伪元素表示法.我究竟做错了什么?

html css pseudo-element css-content

14
推荐指数
2
解决办法
8797
查看次数