利用data-*动态显示数据(attr()\calc())

利用data-*动态显示数据(attr()\calc())_第1张图片
在消渴丸项目中有一个效果,客户希望能每月更新柱状图上的数字,我是用了以下方法来解决的:



<div class="p11-1-1 curmonth" data-content="1">div>
<div class="p11-1-2" data-content="2">div>
<div class="p11-1-3" data-content="3">div>
<div class="p11-1-4" data-content="4">div> 
...



.p11-1>div div.curmonth:after{
    content:attr(data-content);
    position: absolute;
    top: -22px;
    left: 3px;
    font-size: 14px;
    color: #fff;
}

这样只要控制curmonth的类,就能很方便地一次性定位好要显示数字的位置
注意 这里用到了一个attr()函数

attr()
使用这一函数需要结合 :before或 :after的伪类样式,在设置content中使用attr()可以获取该元素的任意属性值,而自定义的data-*属性就可以很便捷地设置我们想要传递的信息。

calc()
使用calc()做算术。这个函数能让你执行简单的算术计算,例如计算元素的长宽,免去了你写不易维护的Javascript代码。这个函数支持所有简单的基本算术运算,包括加减乘除。

比方说,你想创建一个元素,使它的宽度占满它的父元素,但还要留出一部分像素宽做其它用处:

.parent {
    width: 100%;
    border: solid black 1px;
    position: relative;
    }

    .child {
    position: absolute;
    left: 100px;
    width: calc(90% - 100px);
    background-color: #ff8;
    text-align: center;
    }

注意:calc()能计算的计算表达式里,在加号(“+”)和减号(“-”)两边要留空格,而乘号(“”)和除号(“”)没有这个要求

你可能感兴趣的:(css)