0

我计划创建一个非常简单的网页,显示所有 Domino 0-12,然​​后允许用户悬停并单击每个 domino 以隐藏或更改其透明度。这个想法是根据已播放的内容显示剩余的内容。我正在为我的妻子做这个项目,以帮助我更好地理解 html/css 以及我最近获得的 jquery 和 javascript 知识。

在这一点上,我的问题只是关于使用 CSS 将这些多米诺骨牌打印到页面的最佳方法。我可以使用下面的代码创建 0、1-0 和 1-1 件,但我很头疼,试图弄清楚如何将点对角放置 0-2。如果有人有耐心在这里用最好的方法帮助我,将不胜感激:)

<html>
<head>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div class="dominoe"> 
        <span class="one">
            <div class="circle"> </div>
        </span>
        <div class="line"> </div>
        <span class="one">
            <div class="circle"> </div> 
        </span>
    </div>
</body>
</html>

    * {  
    border: 0.50px dashed blue; /*guide rulers*/
}

.dominoe {
/* Dominoe shape */
    position: relative;
    height:76px;
    width:40px;
    background-color:white;
    border: 1px solid black;

/* Rounded Corners 
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    border-radius: 10px;
    padding:2px;
    */
}

.circle {
    border-radius: 50%;
    width: 5px; /* width and height can be anything, as long as they're equal */
    height: 5px; 
    background-color:black;
    position: relative;
    margin:auto;

}

.line {
    position:relative;
    width:90%;
    height:2%;
    background-color:black;
    display:block;
    margin:auto;
}

.one {
    height:5px;
    width: 5px;
    display: block;
    margin:auto;
    margin-top:5%;
    margin-bottom:5%;
    padding:34%;
}

我尝试使用 CSS 创建的多米诺骨牌示例:http: //i.stack.imgur.com/Rfwrf.jpg

4

3 回答 3

2
  1. 使用 div 而不是 span,默认情况下,它们是更适合块显示的元素(在这种情况下是合适的)
  2. 在逻辑上重新格式化您的多米诺骨牌结构,即使用嵌套的 div。
  3. 为每个点位置创建 3 个类:左、中、右

解决方案在这里:http: //jsbin.com/ikurip/2/edit

参考代码:

HTML:正如你在下面看到的,多米诺骨牌首先分成两半,然后分成三部分。在此之后,水平定位点是小菜一碟。

<div class="dominoe"> 
     <div class="half">
       <div class="part">
         <div class="left"></div>
         <div class="right"></div>
       </div>
       <div class="part">
         <div class="middle"></div>
       </div>    
       <div class="part">
         <div class="left"></div>
         <div class="right"></div>
       </div>
     </div>
     <div class="line"></div>
     <div class="half"></div>
  </div>

CSS:如您所见,我用 .part > div 选择器替换了 circle 类;所以你不必创建另一个类。

* {  
    border: 0.50px dashed blue; /*guide rulers*/
}

.dominoe {
/* Dominoe shape */
    position: relative;
    height:76px;
    width:40px;
    background-color:white;
    border: 1px solid black;

/* Rounded Corners 
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    border-radius: 10px;
    padding:2px;
    */
}

.part > div {
    border-radius: 50%;
    width: 5px; /* width and height can be anything, as long as they're equal */
    height: 5px; 
    background-color:black;
    margin-top: 1px;
}

.line {
    width:90%;
    height:2%;
    background-color:black;
    margin-left: 5%;
}
/* Added CSS */
.dominoe { margin-right: 10px; float: left; }
.half { 
  width: 70%;
  height: 32%;
  padding: 14%;
} 
/* setting padding removes the need to position the top-left, top-right, bottom-left and bottom-right elements */

.part {
  width: 100%;
  height: 21.333%;
  padding: 8% 0% 8% 0%; 
  /* eliminates need for vertical positioning */
}
.part:first-child {
  padding-top: 0%;
}
.part:last-child {
  padding-bottom: 0%;
}
.right {
  float: right;
}
.left {
  float: left;
}
.middle {
  margin: auto;
}

此外,如果您想使用水平多米诺骨牌而不是垂直多米诺骨牌,您可以将其添加到您的 CSS 中:

.horizontal {
     transform: rotate(90deg);
    -webkit-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
}

只需将“水平”类添加到多米诺骨牌 div。

于 2013-05-06T03:09:46.380 回答
2

我知道这是你一年多前在看的东西,但我今天看到了你的帖子。

几个月前,我尝试只使用 HTML 和 CSS 创建一个拼图。

我遇到了这个页面:

http://sergeylukin.com/css-jigsaw-puzzle-piece/

在研究使用的方法时,我受到启发,使用了 Lukin 先生在拼图上使用的相同技术,使用 css 和 html 创建了多米诺骨牌。在我弄出一张多米诺骨牌后,其他 27 张就很容易了。

结果是这样的:

http://dominocodes.net

我为瓷砖创建了一个类选择器,它会给它一种 3D 的感觉。

.domino {
    float: left;
    font-size: 20px;
    width: 6em;
    height: 12em;
    margin: 40px;
    position: relative;
    -webkit-border-radius: .8em;
    -moz-border-radius: .8em;
    border-radius: .8em;
    -moz-box-shadow:    .3em .3em 0em .2em #333;
    -webkit-box-shadow: .3em .3em 0em .2em #333;
    box-shadow:         .3em .3em 0em .2em #333;
 }

然后是一个分组的类选择器来处理 .domino 类的背景颜色和点子所在的跨度。

.domino, .domino span { 
    background-color:#000
  }

另一组在瓷砖上画一条线:

.domino .line {
    width: 5.5em;
    height: .2em;
    position: absolute;
    top: 5.7em;
    left: .25em;
    background-color: #fff;
}

然后我为多米诺骨牌上的每个可能的点想出了一个类选择器,顶部有 7 个,底部有 7 个,总共有 14 个类选择器。我不会在这里列出每个的 css。一旦你研究了这里的两个例子,你就可以推断并弄清楚其余部分是如何完成的。(或者你可以去我的页面并使用浏览器中的 Inspect Element 工具来查看以查看或抓取 css。)

我为每个 pip 的类选择器使用了以下命名约定:

名称中的第一个字母指定点是用于瓷砖的 (T)op 还是 (B) 底部。第二个字母指定它是在 (L)eft 侧、(C)enter 还是 (R)right 侧。剩余的数字决定了点子将属于哪个数字组合。此命名约定适用于垂直平铺。

例如:位于牌顶中央的点被命名为 TC135,这意味着 TC135 是参与牌的中心点,牌的上半部分有 1、3 或 5。BR23456 将是显示二、三、四、五或六的下半部分的点。

每个点具有相同的宽度、高度、半径和颜色。每个类选择器的唯一区别是顶部和左侧的值。

您会注意到,我没有使用 px 作为宽度、高度、顶部和左侧,而是像 Lukin 先生在他的拼图示例中所做的那样使用 em。这允许您仅更改 domino 类选择器的 font-size 属性中的一个值,结果是页面上的所有 domino 将按比例重新调整大小。使用一点 jquery 和 spinner 元素,我可以让访问者只用一行代码就可以动态调整图块的大小。我仍然是 jquery 新手,所以我还没有尝试过。

这是 TC135、BL23456 和 BR23456 类选择器的 css:

  .domino .TC135 {
    width: 1.2em;
    height: 1.2em;
    position: absolute;
    top: 2.4em;
    left: 2.5em;
    -webkit-border-radius: 4em;
    -moz-border-radius: 4em;
    border-radius: 4em;
    background-color: #fff;
 }

  .domino .BL23456 {
    width: 1.2em;
    height: 1.2em;
    position: absolute;
    top: 9.6em;
    left: 1.0em;
    -webkit-border-radius: 4em;
    -moz-border-radius: 4em;
    border-radius: 4em;
    background-color: #fff;
 }

  .domino .BR23456 {
    width: 1.2em;
    height: 1.2em;
    position: absolute;
    top: 6.4em;
    left: 4.0em;
    -webkit-border-radius: 4em;
    -moz-border-radius: 4em;
    border-radius: 4em;
    background-color: #fff;
 }

这是您将用来构建一个顶部有一个点,底部有两个点的图块的 HTML。

<div class="domino">
   <span class="TC135"></span>
   <span class="line"></span>
   <span class="BL23456"></span>
   <span class="BR23456"></span>
</div>
于 2014-06-06T17:48:32.753 回答
0

您可以简单地将 Unicode 字符用于多米诺骨牌。有一整套,纵横两面,从U+1F030开始,到U+1F093结束。

例如,2-3 水平多米诺骨牌在 U+1F042,看起来像:

这是一张图表,显示了完整的多米诺骨牌系列。

于 2013-05-06T03:32:36.793 回答