2011-06-24 7 views
9

HTMLで書式を設定したいテキストがあります。HTML/CSSでタブストップを行うには

Image of formatted text

注箇条書きと段落番号の灰色の線:ここでの画像です。箇条書きはページの中央に配置し、数字は正当なものにする必要があります。

私はこれをHTMLで行う方法を考えようとしていて、空白になっています。どのようにこの書式をキャプチャしますか?

+0

あなたは純粋に、HTML/CSSのソリューションをお探しですか? @Jonathan絶対に。 – Sampson

+1

それが必要ならCSS3。私は学びたい。この問題はいつも私を悩ませています。 –

+0

これはJavaScriptのビットで簡単に行うことができると思いますので、私はあなたの予想される解決策についてもう少し質問したいと思いました。 – Sampson

答えて

1

残りの内容(箇条書きの点)を右にして中心にします。残りの内容に、数値が幅より大きい等しい左右の余白を与えると、内容は中央に配置されます。

+0

ああ、面白いです。私は浮動小数点型を動かすためにどのようにハックするのだろうかと思いました均等な左右のマージンが単純に数よりも大きいとは思わなかった! –

0

私は考えることができるいくつかの方法があります。

  • フロート+絶対位置(私は純粋主義者はこの1つを説明してもらおう)
  • オールドスタイルテーブルは、それが最も簡単ですので、(私はこれを説明します):

面積の合計幅が300ピクセル

<table><tr> 
    <td width="30"></td> 
    <td width="240" align="center">bullets</td> 
    <td width="30" align="right">number</td> 
</tr></table> 

多く、たとえば、ある場合には人々は、純粋なCSSを使用して好むが、私は私のテーブルが好き、彼らはちょうど私のため

+1

申し訳ありませんが、テーブルの使用をdownvoteする必要があります。 – Yardboy

+2

レイアウト用の推奨テーブルが不適切です。 – Sparky

+0

私にブックマークして、私のところで私にdownvoteを準備してください:) – Rodolfo

15

を働くあなたがここに大きな効果を:before:after擬似要素を使用することができます。

http://jsfiddle.net/yNnv4/1/

これは、すべてで動作します最新のブラウザとIE8 +。 IE7のサポートが必要な場合は、この答えはあなたのためではありません:)

counterプロパティについて
#container { 
    counter-reset: nums; 
} 
p { 
    position: relative; 
    margin: 21px 0; 
} 
p:before { 
    content: '\2022 \2022'; 
    font-size: 2em; 
    position: absolute; 
    top: -8px; 
    left: 0; 
    line-height: 1px; 
    color: #888; 
    width: 100%; 
    text-align: center 
} 
p:after { 
    content: counter(nums); 
    counter-increment: nums; 
    font-size: 1.5em; 
    position: absolute; 
    top: -8px; 
    right: 0; 
    line-height: 1px; 
    color: #888; 
    font-family: sans-serif 
} 


弾丸を(自動的に)増分することはできません。

しかし、それはいくつかの怪しげな繰り返しを行うことができます。

http://jsfiddle.net/N4txk/1/

p:before { content: '\2022' } 
p+p:before { content: '\2022 \2022' } 
p+p+p:before { content: '\2022 \2022 \2022' } 
/* .... */ 

(あるいは、:nth-childは同じように繰り返すことができます:http://jsfiddle.net/N4txk/ - それはIE8で動作しません。 ; 2つの弾丸しかない)

弾丸の数には上限がありますsensibleは持っているので、必要に応じて何度もコピー&ペーストしても問題ありません。

+1

私は数字を – thirtydot

+3

で使い分けましたが、OPが弾丸にもしたいのかどうかはわかりません。オリジナル画像はこれを反映しているようです –

+0

素敵にやった!私は、JSに弾丸を入れる方法があると確信しています。 – joshmax

5

どうやってこのようなことができますか?

http://jsfiddle.net/6eTCf/

<div class="separator"> 
    * <div class="page_number">1</div> 
</div> 


.separator{ 
    margin: 5px 0 5px 0; 
    color:gray; 
    position:relative; 
    text-align: center; 
} 

.page_number{ 
    position:absolute; 
    right: 3px; 
    top: 0; 
} 
1

私はそのような右側の番号を取得するには、ラッパーと段落番号のdivの間の相対/絶対位置を使用し、その後、divの中で全体を包むでしょう。

ここには、方法を示すfiddleがあります。

+0

非常に良いです。デモをありがとうございます! –

0

私は考えることができるいくつかの方法があります。

段落の間に<div>を追加し、次に2つの<p><p class="dot"></p><p class="pnum">1</p>を追加します。

スタイルは、段落の幅、およびCSSで次のように設定する<div>

.dot{ text-align: center; } 
.pnum{ float: right; } 
+0

センターを左に偏らせる原因になりませんか?@jeroenはこれをスタイルワーク。 –

関連する問題