Html 半星和体透明星

Html 半星和体透明星,html,css,svg,css-shapes,Html,Css,Svg,Css Shapes,我需要在css中创建评级星,到目前为止,我有两个要求 半色星 有边框但身体透明的星星 到目前为止,我能够使用CSS创建一个全彩色的星星。但有了这种结构,我无法达到上述要求 这就是我现在所拥有的,我遵循这个作为我的参考 .star{ 位置:相对位置; 显示:内联块; 宽度:0; 身高:0; 左侧边缘:.9em; 右边距:.9em; 边缘底部:1.2米; 右边框:.3em实心透明; 边框底部:.7em实心#FC0; 左边框:.3em实心透明; /*控制星星的大小*/ 字体大小:24px; } 明星

我需要在css中创建评级星,到目前为止,我有两个要求

  • 半色星
  • 有边框但身体透明的星星
  • 到目前为止,我能够使用CSS创建一个全彩色的星星。但有了这种结构,我无法达到上述要求

    这就是我现在所拥有的,我遵循这个作为我的参考

    .star{
    位置:相对位置;
    显示:内联块;
    宽度:0;
    身高:0;
    左侧边缘:.9em;
    右边距:.9em;
    边缘底部:1.2米;
    右边框:.3em实心透明;
    边框底部:.7em实心#FC0;
    左边框:.3em实心透明;
    /*控制星星的大小*/
    字体大小:24px;
    }
    明星:以前,
    明星:之后{
    内容:'';
    显示:块;
    宽度:0;
    身高:0;
    位置:绝对位置;
    顶部:.6em;
    左:-1米;
    右边框:1em实心透明;
    边框底部:.7em实心#FC0;
    左边框:1米实心透明;
    变换:旋转(-35度);
    }
    明星:之后{
    变换:旋转(35度);
    }
    
    

    根据您的要求,我将使用SVG。我会这样做:

    .star{边框:1px实心#d9d9d9;宽度:30px;}
    .star{填充:金色;笔划:橙色;笔划宽度:5px;}
    .star.full use:第n个子项(2){显示:无;}
    .star.一半使用:第n个孩子(1),
    .star.空使用:第n个孩子(2)
    {显示:无;}
    .star.empty{fill:none;}

    根据您的要求,我将使用SVG。我会这样做:

    .star{边框:1px实心#d9d9d9;宽度:30px;}
    .star{填充:金色;笔划:橙色;笔划宽度:5px;}
    .star.full use:第n个子项(2){显示:无;}
    .star.一半使用:第n个孩子(1),
    .star.空使用:第n个孩子(2)
    {显示:无;}
    .star.empty{fill:none;}
    
    
    您的意思是,您所有的内容都是从链接的So问题中100%复制的。您自己没有添加/更改任何内容。现在你想让我们满足你的要求。对吗?@connexo你可以比较一下代码,先生。我遵循这个模式。我研究了我的需求,但没有找到任何答案。我发现他们正在使用unicodes和svg。但实际上我想在css中实现这一点。因为我在网上找不到任何答案,所以我发布了这个问题。如果你真的觉得这是一个无用的问题,你有足够的力量来解决这个问题。谢谢你。你可以通过应用一些剪辑或者类似的东西来获得半颗星;但是,为了只得到一个星形的边框,这种技术实在不适合于IMHO。@misorude谢谢您的回复,先生。它能用纯css实现这一点吗?或者我需要svg或其他支持吗?你是说,你所拥有的只是100%复制自链接的So问题。您自己没有添加/更改任何内容。现在你想让我们满足你的要求。对吗?@connexo你可以比较一下代码,先生。我遵循这个模式。我研究了我的需求,但没有找到任何答案。我发现他们正在使用unicodes和svg。但实际上我想在css中实现这一点。因为我在网上找不到任何答案,所以我发布了这个问题。如果你真的觉得这是一个无用的问题,你有足够的力量来解决这个问题。谢谢你。你可以通过应用一些剪辑或者类似的东西来获得半颗星;但是,为了只得到一个星形的边框,这种技术实在不适合于IMHO。@misorude谢谢您的回复,先生。它能用纯css实现吗?或者我需要svg或其他支持吗?这是一个很好的方法,先生。谢谢你的回复。使用css也可以做到这一点吗?我认为SVG是最好的解决方案,它实际上就像HTML和css一样。您可以尝试使用css
    剪辑路径
    执行相同的操作,尽管浏览器支持不是很好。此外,我认为您可能需要使用阴影而不是笔划。这就是使用剪辑路径的方法:
    div.half-star{-webkit剪辑路径:polygon(47.6%75%,18.21%90.45%,23.82%57.72%,0.047%34.55%,32.9%29.77%,47.6%0%);}
    div.star{-webkit剪辑路径:polygon(47.6% 0%, 62.29% 29.77%, 95.15% 34.55%, 71.38% 57.73%, 76.99% 90.458%, 47.6% 75%, 18.21% 90.45%, 23.82% 57.73%, 0.05% 34.55%, 32.9% 29.77%); }
    Okie先生,这很好。谢谢您的时间和宝贵的回答。这是一个很好的方法,先生。谢谢您的回复。使用css可以做到同样的效果吗?我认为SVG是最好的解决方案,它实际上就像HTML和css一样。您可以尝试使用css
    剪辑路径
    做同样的事情,尽管浏览器支持不太好很好。我还认为你可能需要使用阴影而不是笔划。这是你使用剪辑路径的方式:
    div.half-star{-webkit剪辑路径:多边形(47.6%75%,18.21%90.45%,23.82%57.72%,0.047%34.55%,32.9%29.77%,47.6%0%);}
    div.star{-webkit剪辑路径:多边形(47.6%0%、62.29%29.77%、95.15%34.55%、71.38%57.73%、76.99%90.458%、47.6%75%、18.21%90.45%、23.82%57.73%、0.05%34.55%、32.9%29.77%);
    Okie先生,这很好。谢谢您的时间和宝贵的回答