如何使用HTML / CSS表绘制心脏?

时间:2016-10-04 09:39:00

标签: html css css-shapes css-tables

我想画心:

enter image description here

使用HTML表的第n个子属性,但无法弄清楚如何执行此操作:Codepen

table tr td:nth-child(n+3):nth-child(-n+7) {
    background-color: red;
}

2 个答案:

答案 0 :(得分:5)

如果您真的只想使用'nth-child',请使用以下内容:

第一行:

table tr:nth-child(1) td:nth-child(3),
table tr:nth-child(1) td:nth-child(5) {
  background-color:red;
}

所以,在你的表中,第一个tr后跟第三个和第五个td应该有红色背景。对以下所有行应用相同的逻辑。

对于第二行,您也可以使用nth-last-child:

table tr:nth-child(2) td:nth-child(n+2):nth-last-child(n+4) {
  background-color:red;
}

然后整个解决方案就像这样:

table tr:nth-child(2) td:nth-child(4),
table tr:nth-child(2) td:nth-child(6),
table tr:nth-child(3) td:nth-child(n+3):nth-last-child(n+3),
table tr:nth-child(4) td:nth-child(n+3):nth-last-child(n+3),
table tr:nth-child(5) td:nth-child(n+4):nth-last-child(n+4),
table tr:nth-child(6) td:nth-child(n+5):nth-last-child(n+5) {
  background-color:red;
}

如果您正在寻找描述心形的公式,那么您可以从这里开始,例如: http://mathworld.wolfram.com/HeartCurve.html

但是我认为实现这样的公式超出了CSS的范围。

答案 1 :(得分:4)

你可以使用盒子阴影!



div{
  height:200px;width:200px;
  background:lightgray;
  position:relative;  
  }
div:before{
  content:"";
  position:absolute;top:left:0;height:40px;width:40px;
  background:transparent;
  box-shadow:
    
    40px 0 tomato,                                     120px 0 tomato,
    0 40px tomato, 40px 40px tomato, 80px 40px tomato, 120px 40px tomato,160px 40px tomato,
    
    0 80px tomato, 40px 80px tomato, 80px 80px tomato, 120px 80px tomato,160px 80px tomato,
    
    
    
                   40px 120px tomato, 80px 120px tomato, 120px 120px tomato,
                          80px 160px tomato
    
  ;
  }

<div></div>
&#13;
&#13;
&#13;