我目前正在研究“tic tac toe like”游戏。 这是link。
我开始升级其某些功能,并遇到问题。
我用下面的图像作为游戏的背景图像,我定位了九个输入字段,每个图像边缘/一边用css。
我不想再使用背景图片。
有没有什么办法可以用css,javascript和/或html绘制这些线条?
请我会很高兴,如果它可以与纯HTML,CSS和做JavaScript或使用jQuery 如何使用html,css和javascript在网页上绘制线条
1
A
回答
2
您可以使用2个元素和它们的伪元素绘制在绝对定位和transform: rotate()
线
div {
width: 25%;
border: 1px solid black;
margin: auto;
overflow: hidden;
}
span {
display: block;
padding-bottom: 100%;
}
div,span {
position: relative;
}
div::after,div::before,span::after,span::before {
content: '';
position: absolute;
background: black;
}
div::after {
top: 50%;
left: 0; right: 0;
height: 1px;
}
div::before {
width: 1px;
left: 50%;
top: 0; bottom: 0;
}
span::before,span::after {
height: 1px;
top: 50%;
left: -25%;
right: -25%;
background: red;
}
span::before {
transform: rotate(45deg);
}
span::after {
transform: rotate(-45deg);
}
<div><span></span></div>
1
你也可以使用渐变:
想法
background:
linear-gradient(0deg,black,black) repeat-y center,
linear-gradient(0deg,black,black) repeat-x center,
linear-gradient(26deg, transparent calc(50% - 2px), black calc(50% - 1px) , black calc(50% + 2px), transparent calc(50% + 2px)),
linear-gradient(-26deg, transparent calc(50% - 2px), black calc(50% - 1px) , black calc(50% + 2px), transparent calc(50% + 2px)) yellow;
background-size: 3px 100%, 100% 3px, auto,auto;
这里是输入更新太保证金和大小的一个片段,片断还采用了背景颜色和阴影。
body {
color: black;
width: 26.8cm;
overflow: scroll;
background-color: white;
}
.welcome{
padding:20px;
text-align: center;
background: #ccc;
}
.transit{
transition: 5s;
}
#player{
color: green;
}
.gamelet { /*This style is for the boxes containing the hexadecimal color codes*/
width: 5.6cm;
display: inline-block;
vertical-align: top;
}
.gamelet2 {
margin-top: 4.3cm;
}
.fr { /*This style is for the red box only*/
margin-left: -0.3cm;
width:0.6cm;
}
.sr { /*This style is for the green box only*/
margin:0 9.6cm;
width:0.6cm;
}
.tr { /*This style is for the blue box only*/
margin-right:-0.3cm;
width:0.6cm;
}
div:nth-child(1),
div:nth-child(2),
div:nth-child(3){margin-top:-0.3cm;}
div:nth-child(7),
div:nth-child(8),
div:nth-child(9){margin-bottom:-0.3cm;}
.gamelet1 {
border-radius: 90px;
width: 0.6cm;
cursor: pointer;
}
.board {
background:
linear-gradient(0deg,black,black) repeat-y center,
linear-gradient(0deg,black,black) repeat-x center,
linear-gradient(26deg, transparent calc(50% - 2px), black calc(50% - 1px) , black calc(50% + 2px), transparent calc(50% + 2px)),
linear-gradient(-26deg, transparent calc(50% - 2px), black calc(50% - 1px) , black calc(50% + 2px), transparent calc(50% + 2px)) yellow;
background-size: 3px 100%, 100% 3px, auto,auto;
box-shadow: 0 0 0 0.6cm yellow;
border:solid;
margin: 2cm 3cm;
}
/*//styles from bootstrap*/
.alert-danger {
color: #a94442;
background-color: #f2dede;
border-color: #ebccd1;
text-align: center;
padding:20px;
display: none;
}
.alert-success {
color: #3c763d;
background-color: #dff0d8;
border-color: #d6e9c6;
text-align: center;
padding:20px;
display: none;
}
.alert-info {
color: #31708f;
background-color: #d9edf7;
border-color: #bce8f1;
text-align: center;
padding:20px;
}
<script src="https://kofimokome.github.io/tic-tac-toe/TTT_files/TTTscript.js"></script>
<form name="game" class="board">
<div class="gamelet fr"><input onclick="C_11(cplayer); autoname(0);" name="C11" type="text" class="gamelet1" /></div>
<div class="gamelet sr"><input onclick="C_12(cplayer); autoname(1);" name="C12" type="text" class="gamelet1" /></div>
<div class="gamelet tr"><input onclick="C_13(cplayer); autoname(2);" name="C13" type="text" class="gamelet1" /></div>
<div class="gamelet fr"><input onclick="C_21(cplayer); autoname(3);" name="C21" type="text" class="gamelet1 gamelet2" /></div>
<div class="gamelet sr"><input onclick="C_22(cplayer); autoname(4);" name="C22" type="text" class="gamelet1 gamelet2" /></div>
<div class="gamelet tr"><input onclick="C_23(cplayer); autoname(5);" name="C23" type="text" class="gamelet1 gamelet2" /></div>
<div class="gamelet fr"><input onclick="C_31(cplayer); autoname(6);" name="C31" type="text" class="gamelet1 gamelet2" /></div>
<div class="gamelet sr"><input onclick="C_32(cplayer); autoname(7);" name="C32" type="text" class="gamelet1 gamelet2" /></div>
<div class="gamelet tr"><input onclick="C_33(cplayer); autoname(8);" name="C33" type="text" class="gamelet1 gamelet2" /></div>
</form>
注:
ID可以只被每个文档使用一次,使用类,而不是如果多个使用的形式(#gamelet
代码段变成.gamelet
)
+0
好的答案!但是你在stackoverflow snipperts中有一些JavaScript错误。 –
+0
非常感谢@GCyrillus的回答。我目前正在更新游戏。您可以检查暂存分支。我在上面使用的样式在我的项目中不再有效,我也在更新代码。上面的代码是在我几年前还在学习HTML时编写的 –
相关问题
- 1. 如何使用JavaScript在HTML页面上绘制曲线?
- 2. 如何在网页中绘制线条?
- 3. 在窗体上绘制线条网格
- 4. 如何使用css,html绘制多条对角线[右侧散列线]?
- 5. 如何用GWT或HTML + CSS + JavaScript绘制对角线?
- 6. 在Android上使用surfaceView绘制线条
- 7. Windowsforms:如何在DataGridView上绘制线条?
- 8. 如何在图表上绘制线条?
- 9. 如何在iPad上绘制线条图?
- 10. 如何在JPanel中使用paintComponent绘制轴线和线条图
- 11. 如何在HTML文本上绘制一条线
- 12. 在gtk.TextView上绘制线条
- 13. 用php,javascript,html和css压缩网页
- 14. 如何使用SVG绘制线条?
- 15. 如何使用XNA绘制线条?
- 16. 使用CSS和HTML制作的网页上的列
- 17. 如何在ImageViewZoom中使用的位图上绘制线条?
- 18. 如何使用quantmod在chartSeries图上绘制一条线?
- 19. 如何使用点在QPixmap上绘制一条线
- 20. 如何用两条斜线绘制一条线使用python
- 21. 使用CGContext绘制线条
- 22. 使用UIPinchGeustureRecognizer绘制线条
- 23. 使用asp.net绘制线条
- 24. 使用CGPath绘制线条
- 25. 如何使用JavaScript为动画元素绘制线条动画
- 26. 用PyQt在图像上绘制线条
- 27. 如何绘制使用html javascript在画布上的点
- 28. 如何在普通的HTML中绘制线条(如谷歌地图),CSS
- 29. 使用Shiny和ggplot2在单个图上绘制多条线
- 30. 在DrawingFrame上绘制线条与外线
https://codepen.io/so lartic/pen/qEGqNL看看这个设计 –
谢谢@SterlingArcher,但游戏并不是真正的tic tac脚趾。这是tic tac toe的另一种形式,我不知道如何称呼它。 我想让线条像图像中的线条一样绘制 –
@kofimokome您可以在这里上传您的游戏截图吗?因为连接到您的网站可能会在一段时间后死亡。 –