2016-08-02 5 views
-1

私は自分のウェブサイトをデザインしようとしています。私は簡単なクロスワードパズルを使って私についていくつか説明したかったのです。同様に、すべての行は異なる単語ですが、別の単語を綴る「中」の列があります。基本的に私がやりたいことをイメージしたものです: CrosswordHTMLとCSSシンプルなクロスワード

言葉は私によってあらかじめ定義されています。
HTMLとCSSだけを使ってこれを行う最も簡単な方法を知りたいと思います。私はテーブルを使用することを考えましたが、単語に応じて各行を移動させるために、各行は異なる表でなければなりません。
私はイメージを使用していないし、サイト上に置いて、私は毎回それを望むので、ユーザーが各単語を置く、それは右/左の意味/説明を示しています。
とにかく助けがあれば、私はブートストラップを使用することができます。

アイデア?

+0

テーブルは適切なCSSスタイルでうまく動作します。一度あなたが何かを持っている、さらなる質問の場合にコードを共有し、他の人が助けます – lucas

答えて

4

我々はレイアウトにテーブルを使用しないとき以来?余白を付けた5つのdivを追加して、nth-childをスタイルします。あなたが好きなら、その方法でアニメーションを追加することもできます。

+0

だからちょうどそれをクリアする。各divの中で、それぞれの文字を 'span'で折り返し、divに' nth-child(1n) 'を使って境界を追加しますか? –

+0

はいそのようなもの:) –

+1

あなたはそれが必要であれば、それを反応的にすることもできます。テーブルがより煩雑になります。 –

0

私は最善の方法は、最初の正方形を表しコンテナを定義するだろうと言うだろう:

.square { 
    position: absolute; 
    height: 32px; 
    width: 32px; 
} 

あなたはその後、したがって、これらのそれぞれを配置することができます

<div id="square-0" class="square" style="top: 32px; left: 32px;"> 
    A 
<div> 
<div id="square-1" class="square" style="top: 32px; left: 64px;"> 
    B 
</div> 
<div id="square-2" class="square" style="top: 64px; left: 64px;"> 
    C 
</div> 

限り、あなたのようにあなたのdivのそれぞれの高さと幅の正確な倍数である上下の値を使用してそれらを配置します。

ただのアイデアだが、それは私がおそらくそれを行う方法です。それらにsquare-0やsquare-1のようなIDを渡してください。将来的にプログラム上で展開することを決めるのが簡単です。

+0

私はそれがテーブルを作るだけで簡単になると思います。 – Taylor

+0

あなたの必要に応じているかもしれません。私は、javascript/jqueryを使って潜在的にできることをもっと考えています。それはできる方法がたくさんあります。 – Nunchy

2

実際にはテーブルが最善の策だと思っています。空の四角形ごとに余分に<td>タグを追加するだけです。 CSSにtd {width: 40px}を追加することで、それぞれの四角形を同じ幅にすることができます。

table { 
 
    text-align: center; 
 
} 
 

 
td { 
 
    width: 40px; 
 
    height: 40px; 
 
} 
 

 
.letterData { 
 
    border: 2px solid #000; 
 
}
<table> 
 
    <tr> 
 
    <td></td> 
 
    <td></td> 
 
    <td class="letterData">O</td> 
 
    <td class="letterData">N</td> 
 
    <td class="letterData">E</td> 
 
    <td></td> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
    
 
    <tr> 
 
    <td></td> 
 
    <td class="letterData">T</td> 
 
    <td class="letterData">W</td> 
 
    <td class="letterData">O</td> 
 
    <td></td> 
 
    <td></td> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
    
 
    
 
    <tr> 
 
    <td class="letterData">F</td> 
 
    <td class="letterData">O</td> 
 
    <td class="letterData">U</td> 
 
    <td class="letterData">R</td> 
 
    <td></td> 
 
    <td></td> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
    
 
    <tr> 
 
    <td></td> 
 
    <td></td> 
 
    <td></td> 
 
    <td class="letterData">T</td> 
 
    <td class="letterData">H</td> 
 
    <td class="letterData">R</td> 
 
    <td class="letterData">E</td> 
 
    <td class="letterData">E</td> 
 
    </tr> 
 
    
 
    <tr> 
 
    <td class="letterData">E</td> 
 
    <td class="letterData">I</td> 
 
    <td class="letterData">G</td> 
 
    <td class="letterData">H</td> 
 
    <td class="letterData">T</td> 
 
    <td></td> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
</table>

+0

ええ、私はそれを考えましたが、 "余分な"罫線を取り除くには、実際には多くのスタイリングが必要です。もっとシンプルな解決策があると私は思っていました(キーワード)。 –

+0

境界線をすべてに囲まないようにするには、境界線を持つ個々の要素「​​」をスタイルすることができます。 letterDataという名前のクラスを文字でボックスに作成し、 "letterData {border:1px solid#000}"をCSSに追加してください。私は私のポストを更新します。 – Taylor

+0

これは相対位置のすべてよりも簡単かもしれません。 – Taylor

関連する問題