dポイントプレゼントキャンペーン実施中!

HPを上部、その下に左右の3フレームにしてあり、下の左の表示をメニューの様にしています。

そのメニュー幅に文字数が収まらないので、下に<br>で下ろしています。
文字にはリンクを付けてアンダーラインを入れています。

文字を右にずらすのに、スペースを使っており、このスペースにアンダーラインが表示されます。
これを消す方法はないものかと・・。

簡単な方法はないでしょうか?

申し訳ありませんが素人です。

質問者からの補足コメント

  • どう思う?

    文字を折り返して、スペースで位置調整しますので、このスペースが文字間の為、方法が無いのかも知れませんね。


    「あいう   えお」の、「う  え」の中間のスペースにもアンダーラインが入るのでこれを消したいという相談です。

    文字に色を付けて、アンダーラインを止めた方が良いのかな?

      補足日時:2019/10/13 08:44
  • どう思う?

    アンダーライン無しで、
    リンク文字「あいう  えお」にマウスを重ねると、色が変る方法を調べましたが翌解りませんn。

    下記情報がありましたので、追記してみましたが・・・
    文字として表示されてしまいました。
    何が足りないのでしょうか?

    a:hover {
    color: skyblue;
    font-size: 2em;/*文字サイズ2倍*/
    font-weight: bold;
    }

      補足日時:2019/10/13 10:18

A 回答 (3件)

こんにちは



直接の回答ではありませんが、大切なことと思いますので。

>文字を折り返して、スペースで位置調整しますので、~~
この発想が諸悪の根源(?)ですね。
そもそもの文章として、スペースが必要でないところに、レイアウトのためだけにスペースを入れるようなことをすると、文章の内容自体が崩壊します。

特にhtmlの場合は、閲覧者の環境は、PC、スマホ、タブレットなど様々です。
固定幅でレイアウトしているのならまだしも、可変幅でレイアウトしていると、ご説明のようなスペースを使った調節では、画面幅が変わるとレイアウトが滅茶苦茶になる可能性があります。
その際に、不要なスペースが文章を読み取る障害となります。
レイアウトが多少崩れても、文章がちゃんとしていれば読み取れますが、妙なスペースは邪魔にしかなりません。

最近のHTMLでは文章とその構成をHTMLでマークアップし、表示のレイアウトはCSSで行うという考え方が確立してきましたので、それに沿ったマークアップをなさるのが宜しいと思います。
>「あいう   えお」の、「う  え」の中間の~
文章として「あいうえお」とあるものを「あいう  えお」と記すのは、著者が「あいう  えお」という意味として読んで欲しい時だけです。
折返し(インデント)を調整したいのかも知れませんが、このサイトの質問蘭に長い文章を入れれば、自然と折り返してくれるように、文章の折り返しを利用するのが普通の考え方と思います。
そうするこてで、表示するスペースの幅が変わっても、その幅に応じた位置で折返しがされるからです。

>そのメニュー幅に文字数が収まらないので、下に<br>で下ろしています。
文章の区切り以外に改行(<br>)を用いることも、文章構成として不自然なことです。
  文章の区切り
  以外に改行(
  <br>)を用いる
  ・・・
のような不必要な書き方であり、筆者の意図がそこにない限りは、好ましい表現とは言えないでしょう。

もしも、HTMLやCSSの基本的な考え方をご存じないのであれば、まず、そのあたりをざっと押さえておかれるのが宜しいと思います。
https://developer.mozilla.org/ja/docs/Learn/Gett …

https://developer.mozilla.org/ja/docs/Learn/CSS/ …
https://developer.mozilla.org/ja/docs/Learn/Gett …


さて、ご質問にあるような折り返しを、スペースを用いずに実現するには、対象となっている要素をブロック(または、インラインブロック)にしておいて、その要素が幅を持つようにしておきます。
その上で、ブロック全体の位置を調節(左マージンや、フロートなどなど)すると、内容の文章がその幅を超えれば折返しが行われ、(ブロックなので)見かけ上インデントされているように見えるはずです。

・・・などと書いても、意味が通じないように思いますので、ごく簡単な一例を・・・
質問者様のレイアウトがどうなっているのかわからないので、回答にはなっていませんが、少なくとも『スペースでインデントを調整する必要はない』ということはおわかりいただけるのではないかと思います。
下記の例は、固定幅にしてありますが、可変幅でも同様の考えは可能です。
また、レイアウトは単純なfloatの例ですが、flexやgridによる方法など、文書の構成に合わせていろいろな方法が考えられるものと思います。

<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>

<style type="text/css">
#test { width:12em; }
#test a {
display:block; width:5em;
margin:0 0.2em 0.3em;
clear:right; float:right;
}
</style>
</head>
<body>
<div id="test">
<a href="#">あいうえおかきくけこ</a>
<a href="#">さしすせそたち</a>
<a href="#">なにぬねのはひふ</a>
テストテストテスト
</div>
</body>
</html>
    • good
    • 0
この回答へのお礼

有り難うございます。

皆さんのアドバイスを元に、どの様にするべきかを考えると下記ご指摘は最もですね。
文字間にブランクがあると文字と同じ認識になりますので。

>この発想が諸悪の根源(?)ですね。
そもそもの文章として、スペースが必要でないところに、レイアウトのためだけにスペースを入れるようなことをすると、文章の内容自体が崩壊します。

テストサンプルを確認しました。
当初私が考えていた、左側の大項目と右側の中項目のレイアウトにして、折り返し文字の先頭位置をこの様にしたかったのですが、知識がありませんでした。

今は、html構文にcssでレイアウトするアドバイスも頂きなんとか形になりました。
リンクの色は統一し、マウスONで色を変えてリンク文字が判るようにしました。
それでも色と文字サイズを指定したいところは指定して、見られるようになりました。
(「マウスONでリンク文字色を変えたい」で質問追加させていただき、こちらでアドバイスを頂いています)

紹介されたURLを見ながら、作成出来ればと思います。
詳しく記載されており、素人の私にも理解が出来そうです。

ご迷惑をおかけしますので、この質問はこれで閉じたいと思います。

お礼日時:2019/10/15 11:06

new_hanaさん



>・・・・これを消す方法はないものか・・・・・・・・・・

そもそも何をしたいのか分かりません。
最初から問題のページソースを掲載したら分かりやすいのですが。

取り敢えず、ご参考に↓

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<style>
.frame1, .frame2{ width:180px; }
.frame2{ display:flex; }
.frame21, .frame22 { flex:1; padding-left:1em; background:#eee; }
a:hover {
color: skyblue;
font-size: 2em;/*文字サイズ2倍*/
font-weight: bold;
}
</style>
</head>
<body>
<div class="frame1">上部フレーム</div>
<div class="frame2">
<div class="frame21"><a href="">2019/10/13 あいうえお</a></div>
<div class="frame22">下部右フレーム</div>
</div>
</body>
</html>
    • good
    • 0
この回答へのお礼

有り難うございます。
ご指摘の様に聞きたいことが漠然としていて、アドバイスするにもどうすれば良いのかという事で申し訳ありませんでした。

頂いたソースを確認しました。
見た目はこの様なものです。
この左下に表示される文字数が幅に収まらないので、下の行へ折り返すことになり、頭そろえでスペ-ースを入れましたので、それがアンダーラインも付いてしまうことになりました。

それを何とか出来ないものかと思った次第です。

申し訳ありませんが、追加で質問させていただきそちらで大まか解決できました。
しかし文字色のコントロールが上手くいかず、マウスONの場所は色を統一して対応するしか無いと思っています。
(メニューのリンクに、意味を持たせて二種類にしていました)

お礼日時:2019/10/13 21:54

<A HREFの前にスぺースを入れる。

    • good
    • 0
この回答へのお礼

有り難うございます。

試しました。
1行目の先頭にスペ-巣が出来て、2行目には影響しませんでした。

説明が不十分だったかも知れません。
1行目の先頭に日付が有、その後ろに1行目の文字が入りますが、入りきれずに、折り返した文字を先頭と併せるためにスペースを入れようとしています。

お礼日時:2019/10/12 18:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!