HTML (HTML5 ではありません!) で表のセル内に文字を繰り返し印刷する方法はありますか?
*(HTML のみを使用、または HTML と CSS のみを使用)
** "." を印刷する必要があります。セルの全長を通して。セルの正確な幅がわからない!
あなたの質問を詳しく説明した後、解決策があります。点線の下の境界線と白い背景のテキストが上にある div。
例 :
CSS:
.line{
border-bottom:1px dotted black;
position:relative;
height:16px;
}
.line span{
display:inline-block;
position:relative;
background:white;
bottom:-2px;
height:100%;
padding:0 5px;
}
.line .price{
position:absolute;
right:0;
}
HTML:
<div class="line">
<span class="title">name</span>
<span class="price">123.23$</span>
</div>
<div class="line">
<span class="title">name</span>
<span class="price">123.23$</span>
</div>
私は誤ってこの質問に出くわし、自分の答えを投稿するのを止めることができませんでした.
私はこの方法を数年前から使用していますが、そのシンプルさが気に入っています。全体的なアイデアはfloat: left|right
、テキストを含む要素に使用し、block
それを囲む要素がマージンを生成することです。overflow: hidden
ブロック要素に追加することで、これを利用します。
ここでのもう 1 つの改善点は::after
、実際のブロック要素の代わりに疑似クラスを使用することです。ドットはスタイルシートの一部のように動作するはずなので、これは完全に理にかなっています。
.line {
padding: 60px 0;
}
.title {
float: left;
}
.price {
float: right;
}
.line::after {
content: "\0020";
display: block;
min-height: 1em;
border-bottom: 1px dotted;
overflow: hidden;
}
<div class="line">
<span class="title">name</span>
<span class="price">123.23$</span>
</div>
背景画像を作って x を繰り返すのはどうですか?
background:url(character.png) repeat-x;
コーディングが好きなら、次のようなことを試すことができます。
var tag = [tag];
var h = tag[0].getBoundingClientRect().height;
while(h===tag[0].getBoundingClientRect().height){
tag[0].innerHTML+='-';
};
tag[0].innerHTML=tag[0].innerHTML.replace('-','');
プレーンな HTML を使用している場合 (サーバーで生成された HTML を使用していないことを意味します)、文字を複数回記述します。サーバーで生成された HTML (PHP、JSP など) を使用している場合は、文字を複数回記述したり、ループを使用したりできます。JavaScript を使用していない限り、これはクライアント側では実行できません。