如何使用:before和:after创build内联样式
我从http://www.ilikepixels.co.uk/drop/bubbler/生成了一个泡泡聊天
在我的页面里面放了一个数字
.bubble { position: relative; width: 20px; height: 15px; padding: 0; background: #FFF; border: 1px solid #000; border-radius: 5px; } .bubble:after { content: ""; position: absolute; top: 4px; left: -4px; border-style: solid; border-width: 3px 4px 3px 0; border-color: transparent #FFF; display: block; width: 0; z-index: 1; } .bubble:before { content: ""; position: absolute; top: 4px; left: -5px; border-style: solid; border-width: 3px 4px 3px 0; border-color: transparent #000; display: block; width: 0; z-index: 0; }
我想通过rgb
根据里面的数字来改变气泡的background-color
所以如果我的div是
<div class="bubble" style="background-color: rgb(100,255,255);"> 100 </div>
我想要的颜色是rgb(100,255,255)
事情是这不影响三angular形。
我如何编写内联的CSS,所以它将包括:before和:after?
你不能。 使用内联样式,您直接定位元素。 你不能在那里使用其他select器。
你可以做的是在你的样式表中定义不同的类,定义不同的颜色,然后将类添加到元素中。
关键是要使用background-color: inherit;
在伪元素上。
请参阅: http : //jsfiddle.net/EdUmc/
你可以使用CSSvariables 。
- 在你的style属性中设置你的variables:
style="--my-color-var: orange;"
- 在样式表中使用variables:
background-color: var(--my-color-var);
浏览器兼容性
最小的例子:
div { width: 100px; height: 100px; position: relative; border: 1px solid black; } div:after { background-color: var(--my-color-var); content: ''; position: absolute; top: 0; bottom: 0; right: 0; left: 0; }
<div style="--my-color-var: orange;"></div>
如果您真的需要内联,例如,因为您正在dynamic加载一些用户定义的颜色,则可以在内容之前添加<style>
元素。
<style>#project-slide-1:before { color: #ff0000; }</style> <div id="project-slide-1" class="project-slide"> ... </div>
PHP和一些(WordPress的启发)虚拟函数的示例用例:
<style>#project-slide-<?php the_ID() ?>:before { color: <?php the_field('color') ?>; }</style> <div id="project-slide-<?php the_ID() ?>" class="project-slide"> ... </div>