HTML / CSS解决方案,765740541字节
<style>[id]:not(:target){display:none}table{width:900px;height:12px;border-spacing:0}td:last-child{border-radius:0 12px 12px 0}#Sith td:first-child{border-radius:12px 0 0 12px}#Sith td{box-shadow:0 0 18px red}#Jedi{transform:rotate(-90deg);margin:350px 0}#Jedi td{box-shadow:0 0 18px #0f0}*+table{margin:200px 0 0 0}#Jedi *+table td{box-shadow:0 0 18px #00f}td:nth-last-child(2){background:#888;width:180px;box-shadow:none!important}</style><div id=Jedi><table><td><td></table><table><td><td></table></div><table id=Sith><td><td><td></table>
最近的重构使用:target
伪类而不是A <form>
和Javascript。
要输入任一输入,请将其添加到URL的末尾作为目标,例如test.html#Jedi
或test.html#Sith
这里还是空白和一些注释:
<style>
/* hide all but the anchored lightsaber (only lightsabers have ids) */
[id]:not(:target) { display:none }
/* tables are lightsabers */
table { width:900px; height:12px; border-spacing:0 }
td:last-child { border-radius:0 12px 12px 0 } /* curved tip */
#Sith td:first-child { border-radius:12px 0 0 12px } /* 2nd curved tip */
#Sith td { box-shadow:0 0 18px red }
#Jedi { transform:rotate(-90deg); margin:350px 0 }
#Jedi td { box-shadow:0 0 18px #0f0 } /* green */
* + table { margin:200px 0 0 0 } /* gap between Jedi lightsabers */
#Jedi * + table td { box-shadow:0 0 18px #00f } /* blue */
/* handles */
td:nth-last-child(2) {
background:#888; width:180px; box-shadow:none!important }
</style>
<div id=Jedi>
<table><td><td></table>
<table><td><td></table>
</div>
<table id=Sith><td><td><td></table>
光剑是<table>
通过其id
属性未隐藏的每个零件(刀片/手柄)具有一个单元的元素。
刀片涂有CSS box-shadow
,绝地剑经受了闪电transform: rotate()
。
图片或没有发生(单击以获取完整分辨率):
如果添加td{background:#fff}body{background:#000}
到CSS,您将获得很酷的深色视图。
在Firefox和Chrome(在Linux上)中进行了测试。请注意,这一点都不符合标准,因为我试图尽可能缩小尺寸。
感谢@manatwork提供的border-spacing
和:target
。