質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

2回答

5238閲覧

hrを使った横線に文字を追加したい

Uga917

総合スコア6

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1グッド

0クリップ

投稿2020/05/06 03:01

HTMLのみを用いて、以下のような破線の中央に文字を追加することはできるのでしょうか?
また、このように間隔を開けて破線を引くには、CSSでコーディングするしかないのでしょうか。
本当に初歩的な質問で申し訳ありませんが、ご回答いただけると幸いです。
イメージ説明
自分は上記の画像のようにコーディングしたいのですが、やったこととしては下記のようなコードをhtmlにてうち、下記の画像のようになってしまいます。
上記の画像になるようにしたいです。

html

1<hr width="50px" align="left" style="border: 1px dashed;"> 2<hr width="50px" align="left" style="border: 1px dashed;"> 3<hr width="50px" align="left" style="border: 1px dashed;"> 4 5

イメージ説明

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2020/05/06 04:58

「style="」に書かれているのはCSSですよ。
guest

回答2

0

HTMLのみを用いて、以下のような破線の中央に文字を追加することはできるのでしょうか?

HTML は文書の構造を示すもので、一般的には CSS を用いて装飾を行います。 hr 要素は意味論的な用語により定義されているため、水平な点線を引きたいだけであれば、 CSS を使用することになります。

単一の要素と CSS を使うとすれば、以下のように linear-gradient 関数を用いることで、質問者さんの実現したいことを行えます (動作確認用リンク)。

HTML

1<span class="omitted">中略</span>

CSS

1.omitted { 2 --w: 3px; 3 display: grid; 4 place-items: center; 5 width: 200px; 6 height: 150px; 7 background: linear-gradient(to right, #fff 2em, transparent) center / 2em 1.5em no-repeat, linear-gradient(to right, transparent 6px, #fff 6px calc(6px + var(--w)), transparent 9px) 0% 0% / 10% 10% repeat, linear-gradient(to bottom, #000 var(--w), transparent var(--w)) 0% 0% / 100% calc((100% - var(--w) * 3) / 2 + var(--w)) repeat #fff; 8}

投稿2020/05/06 09:07

s8_chu

総合スコア14731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

HTMLだけでは実装不可能と思われます。
ソースが長くなってしまっていますが、以下のようにHTMLとCSSを記述すると実現できるようです。

追記:
https://codepen.io/new1ro/pen/BaoYBxx

HTML

1<div class="hr"> 2 <span>中略</span> 3</div>

CSS

1.hr { 2 margin-top: 40px; 3 padding: 40px; 4 text-align: center; 5 6 border-top: 2px dashed #000; 7 border-bottom: 2px dashed #000; 8 position: relative; 9} 10.hr span { 11 padding: 0 5px; 12 background: #fff; 13 position: relative; 14 z-index: 1000; 15} 16.hr::before { 17 content: ""; 18 border-top: 2px dashed #000; 19 margin: auto 0; 20 height: 0; 21 position: absolute; 22 top: 0; 23 left: 0; 24 right: 0; 25 bottom: 0; 26}

CSSだけで対応しようとすると、Firefoxでは実装できましたが
Chromeでは表示できませんでした..。

CSS

1<!-- HTMLファイルに<style>...</style>を貼り付けるとCSSが使用できます。 --> 2<style> 3hr { 4 height: 0px; 5 margin: 7px 0; 6 border: none; 7 8 /* 追加 */ 9 border-top: 2px dashed #000; 10 text-align: center; 11} 12 13/* 追加 */ 14hr::before { 15 content: "中略"; 16 color: #000; 17 font-size: 16px; 18 font-weight: bold; 19 line-height: 1; 20 display: inline-block; 21 background: #fff; 22 transform: translate(0, -6px); 23} 24</style>

投稿2020/05/06 05:10

編集2020/05/06 05:24
new1ro

総合スコア4528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問