No.2ベストアンサー
- 回答日時:
No1です。
>ですのでdivの高さを変えずにspanの上下1ピクセルを透明にする簡単な方法を~
ブラウザの通常のサイズ計算では、表示要素ができるだけ表示できるように自動調整しますので、「高さを変えずに」ということは、これを起こさないように設定する必要がありますが、その内容はご質問文からは読み取れません。
本来なら、div内で折り返しが発生すれば(=例えば、ユーザがウィンドウ幅を縮めるなどした場合)、自動的にdivの高さが広げられますけれど、その辺の制御はどうしているのでしょうか?
line-heightを固定値で設定してあるって意味なのかなぁ?
spanの高さをline-heightより2px小さくしたいのなら、
display:inline-block;
line-height: calc(1.5em - 2px);
が簡単だとは思いますけれど・・・
(1.5emはデフォルトのline-heightなので、ご指定の状況に合わせて修正してください)
あるいは、上記同様にinline-boxで、spanの高さをline-heightに指定しておいて、box-sizing: border-box;として、上下に透明のborderを設けるという方法でも実現できると思います。
他には、beforeなどで要素より高さの小さな要素を作成して、背景色代わりに利用するなどというのも考えられそうではありますが、実際にはどのような状態が設定されていて、どのような制限条件があるのかもなんだかよくわからない状態なので・・
無難そうなのはlinear-gradientを利用して背景色を設定しておく方法でしょうかね。
linear-gradientは、本来グラデーション用のCSSですけれど、単色指定にすれば単色表示になります。
記述は若干長くはなりますけれど、
background: linear-gradient(to bottom, transparent 1px, #ff0 1px calc(100% - 1px), transparent calc(100% - 1px) );
とか。
質問文が不十分ですみませんでした。
なるべく短い質問文にしているのは、回答者が帰らないようにする対策でもあります。
何卒ご容赦ください。
より詳しく書くと、表示はjavascriptモジュールが担当していて、私はこのモジュールが提供する関数に文字列を渡しているだけなのでした。
ですから親要素がdivであるかも実は分かっていません。
試しにウィンドウ幅を縮めてみたのですが、スクロールバーが出るだけで、既に描画されたドキュメントは改行されないような制御が働いているようです。
display: inline-block
line-height: calc(1.5em - 2px)
でうまくいきました。
1.5emはデフォルトのline-heightなのですね。
しかし、これだと将来デフォルトのline-heightが変更されたときに泣きを見そうですが、「簡単は正義」という私の方針に従い、採用させていただきます。
linear-gradientを使えば、将来デフォルトのline-heightが変更されても正常に動いてくれそうですので興味があります。
しかし、これも最初の質問では端折らせていただきましたが、実はspanで横方向のlinear-gradientを設定しています。
これは同じく単色指定で状況によって横方向に伸び縮みする棒グラフのような描画になるようにしています。
この横方向のlinear-gradientを維持したまま、追加で縦方向のlinear-gradientを設定する書き方が分からず、この方法はいったん中断しました。
しかし、この有益な情報は私の質問履歴からいつでも参照できますので、ひとまずline-heightを設定する方法で対処しようと思います。
No.3
- 回答日時:
No2です。
>なるべく短い質問文にしているのは、回答者が帰らないようにする対策でもあります。
全く違う条件で無駄に考えさせられれば、アホらしいので回答者は離れます。
後出しジャンケンは不愉快だし、自分が困るわけでも無いので、「勝手に好きにしてれば?」となります。
気を悪くさせてすみません。
なるべく短い質問文にしているのは、回答者が帰らないようにする目的も少しありますが、
単純に書き忘れただけだったり、その時は、この質問文で十分な回答が得られると思っていたという理由が大きく、このたび先生に無駄に考えさせてしまったのは意図的ではありません。
何卒ご容赦ください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS HTMLで特定の文字だけ色を変えたいのですが、指定した色と違う色が反映してしまいます。 下記、「前」 5 2023/06/27 12:08
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- JavaScript スクリプト 11 2021/11/10 13:45
- JavaScript 【JavaScript】検索がヒットした場合、プルダウンをオープンで表示させる方法 2 2023/09/06 14:02
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
smallにtext-allignが効かない
-
NからZへの全単射を具体的に構...
-
emとstrongの反対
-
親要素・子要素
-
【ヒトの神秘】美男美女から何...
-
imgタグをそのまま使うことは正...
-
含む含まないという概念自体の...
-
CSSのセレクタに指定するbodyと...
-
input type="hidden"で取得した...
-
HTMLで <p>~</p>内で2回以...
-
html タグの閉じスラッシュ前の...
-
CSSでjavascriptが中央寄せにな...
-
aの中にspan
-
質問1.
-
タグは大文字と小文字どちらが...
-
textareaの幅を画面と合わせたい
-
figcaption要素の中にul要素
-
vb/vb.net XMLの大量データの作...
-
CSSセレクタの子孫要素について...
-
初歩的な質問です。<div>のwidt...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ヒトの神秘】美男美女から何...
-
smallにtext-allignが効かない
-
含む含まないという概念自体の...
-
質問1.
-
2個のFormを横並びにしたい
-
「諸要素」とはどういう意味で...
-
input type="hidden"で取得した...
-
NからZへの全単射を具体的に構...
-
角丸画像の背景色を透明にした...
-
改行ほどは行かないけど、若干...
-
マージソートの計算量について-...
-
親要素・子要素
-
border: noneでボタンの境界線...
-
C言語 並び替え(配列)について
-
tdに対してmin-heightの定義、...
-
HTMLでTextareaを横に2つ並べ...
-
テキストボックスの中にリンク...
-
CSSで改行後の行間調整
-
H1タグを画像にしたい
-
ある要素の中身を全部グレーア...
おすすめ情報