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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

SCSS

SCSSは、SassのCSSメタ言語です。Webページのスタイルを指定するCSSを効率的に記述することができます。ネストと呼ばれる入れ子構造で記述するため、CSSの全体の記述量を減らせる点が特徴です。さらに変数も利用できるため、変更や修正の際に少ない作業量で対応することもできます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

2回答

468閲覧

電話番号とメールアドレスのフォームの間の余白を狭めたいです。

ghtew2

総合スコア245

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

SCSS

SCSSは、SassのCSSメタ言語です。Webページのスタイルを指定するCSSを効率的に記述することができます。ネストと呼ばれる入れ子構造で記述するため、CSSの全体の記述量を減らせる点が特徴です。さらに変数も利用できるため、変更や修正の際に少ない作業量で対応することもできます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2022/09/05 02:56

概要

電話番号のフォームの下に「電話番号を正しく入力してください」といメッセージを表示するように<div class="alert2">を追加したのですが、ボタンを押すまでは、<div class="alert2">の文字は見えないようになっています。

付属画像のように
スマホ横幅300px以下になると、電話番号とメールアドレスのフォームの余白が勝手に広がるのですが、多分、HTMLにある電話番号を正しく入力してください」の文字が折り返され、広がっていると思うのですが余白を狭めたいです。
イメージ説明

<div class="alert2">のfontサイズを小さくしても、効果がないようです。 input.tel{margin:3px 0px;} input.email{margin:3px 0px;もマージンを小さくしても余白が狭くならないです。

該当コードはjavascriptも記載していますが、HTMLとcssだけだと思います。

html

1<!DOCTYPE html> 2 3<html lang="ja"> 4 5<head> 6 <meta content="text/html; charset=utf-8" /> 7 <meta name="viewport" content="width=device-width, initial-scale=1"> 8 9 <title></title> 10 11 <style> 12 13 14 15</style> 16 17 18 19 20</head> 21<body> 22 23 <form action="LPmouth1.php" method="post" id="form"> 24 25<div class="auto-style15"> 26<input type="text" class="tel" name="tel" id="tel" placeholder="例)070-1234-5678" value="" /> 27<div class="alert2">・電話番号を正しく入力してください</div><!--赤いテキストエラーメッセージこの付近--> 28</div> 29 30 31<div class="auto-style15"> 32 33<input type="text" class="email" name="email" id="email" placeholder="例)taro@docomo.com" 34value="" /> 35 36</div> 37 </form> 38 39 40 41 </body> 42 43 44 45 46</html>

css

1 2input.tel{margin:3px 0px;} 3 4input.email{margin:3px 0px;} 5 6 7/* 出現文字show2 alert2 */ 8.alert2 { font-size: 0.85em; font-weight: bold; color: crimson; } 9.alert2 { visibility: hidden; } 10.alert2.show2 { visibility: visible; } 11.alert2.show2{ 12transform: translate(0px, -114px);/* 右側のpx上下調節 */ 13font-size: 11px; 14font-family:' sans-serif','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','メイリオ','MS ゴシック','YuGothic','Yu Gothic'; /* 文字の種類 */ 15} 16 17 18#tel { 19 20 border: 3px solid #40ce03; /* 枠線 */ 21 padding: 0.5em; /* 内側の余白量 */ 22 23 height: 2em; /* 高さ */ 24 font-size: 0.84em; /* フォームの四角の内の表示文字サイズ */ 25 line-height: 1.2; /* 行の高さ */ 26 margin-top: 16px; 27 28 29 } 30 31 #email { 32 33 border: 3px solid #40ce03; /* 枠線 */ 34 padding: 0.5em; /* 内側の余白量 */ 35 36 height: 2em; /* 高さ */ 37 font-size: 0.84em; /* フォームの四角の内の表示文字サイズ */ 38 line-height: 1.2; /* 行の高さ */ 39 margin-top: 16px; 40 41 42 }

javascript

1<script> 2 { 3 const 4 form = document.getElementById('form'), 5 inputs = [...form.querySelectorAll('input[type="text"]')], 6 Checker = (elm)=>{ 7 const cls = elm.nextElementSibling.classList; 8 const flag = elm.value.trim() == ""; 9 if(flag) cls.add('show'); else cls.remove('show'); 10 11 if(flag) cls.add('show2'); else cls.remove('show2');// javaでテキスト赤エラーメッセージの表示alert2 12 13 return flag; 14 }; 15 16 form.addEventListener('change', e=>{ 17 if(inputs.indexOf(e.target) >= 0) Checker(e.target); 18 }); 19 form.addEventListener('submit', e=>{ 20 if(inputs.map(e => Checker(e)).indexOf(true) >= 0) e.preventDefault(); 21 }); 22 } 23</script> 24 25 26<script> 27 // javaでエラーメッセージの表示 28 const key = 'date_key'; 29 const form = document.querySelector('#form'); 30 31 const tel = document.querySelector('#tel'); 32 const email = document.querySelector('#email'); 33 34 35 form.addEventListener('submit', function(event) { 36 let msg = ""; 37 38 39 40 if (msg != "") { 41 event.preventDefault(); 42 alert(msg); 43 } 44 }); 45 46 47 </script> 48 49 50 51 52

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

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

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

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

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

guest

回答2

0

自己解決

display:none;では文字の折り返しは改善したのですが、エラーメッセージ自体が表示されませんでしたが、
以下のコードで解決できました。

/* HTMLの文字の自動折り返しを防ぐalert */
.alert{

white-space: nowrap;
}
.alert1{

white-space: nowrap;
}

.alert2{

white-space: nowrap;
}
.alert3{
white-space: nowrap;
}

投稿2022/09/05 08:04

ghtew2

総合スコア245

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

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

0

visibility: hidden;
ではなく、
display: none;
で非表示にしましょう。

投稿2022/09/05 03:08

kerokko

総合スコア21

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

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

ghtew2

2022/09/05 08:04

回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問