

自分の日記用にホームページを作っています。
現在スマホで見られるようにフォントサイズを調整したのですが、そのサイズだとパソコンで表示したときはあまりにも大きくなってしまいます。
そこで、スマホで見たときと、パソコンで見たときそれぞれ別々のフォントサイズで表示できるようにしたいのですが、どうすればいいでしょうか。
スマホサイトを作っても良いかなと思ったのですが、もともとのデザインが1カラムのシンプルなもので、パソコンでちょうど良い文字サイズに合わせるとスマホでは見にくい、以外は問題ないので、一からスマホ用のサイトを作るのはすこし手間かなと思っています。
現在は div.mainというclassをつくっており、
div.main {
margin-left: 8px;
line-height: 1.5em;
font-size: 27px; /* このサイズがiPhoneで見たとき最も見やすい */
color: #0b0b0b;
font-family: "メイリオ",sans-serif;
}
このように調整しています。

No.3
- 回答日時:
<meta name="viewport" はスマホで必要になる記述です。
記述を無しにするとPCイメージがそのまま縮小された形式で、フォントや画像が小さく強制的に押し込められます。
記述を入れると、スマホの横幅に応じた見え方にして呉れます。
ですので、一番良いのはCSSをPC用、スマホ用に2本立てにして、BODYの横幅やテーブルサイズ等も別々にして、pc/スマホの表示領域の大きさに応じた記述をすることになります。
使うCSSファイルの切り替えもhtml側で行ないます(レスポンスの関係)。
スマホ用cssではbodyの横幅指定を止め("viewport"に依存させる)、containerやtableの横幅は親要素に対する相対%で指定します。
例:width: 100%; とか width: 80%;
親が居ない場合はbodyに対する%になります。
詳細は「レスポンシブデザイン」で検索して下さい。
html側でのcssクエリ部分は以下の様になります。
切り替えポイントの幅を調整して下さい。
pc用、タブレット用、スマホ用の3段階切り替えも出来ます。
(切り替えポイントを変えながらmedia=のクエリを3個記述する)
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" media="screen and (min-width: 481px)" href="style-css-pc.css" />
<link rel="stylesheet" media="screen and (max-width: 480px)" href="style-css-smart.css" />
ありがとうございます。
<meta name="viewport" content="width=device-width, initial-scale=1">
を加えると、すでに拡大された状態で表示されてしまいます。
ダブルタップで縮小すると、containerの横幅もちょうどよく、文字サイズもちょうどよい状態で表示されるのですが。。。
これは、viewportの設定が悪いということで良いでしょうか?

No.2
- 回答日時:
①max-width: 320px の横幅を調整して見て下さい。
480pxにするとか・・。②pcでブラウザの横幅を狭くして行くと、横幅のポイントでフォントの大きさが切り替わりますか?

No.1
- 回答日時:
ブラウザの横幅で適応するcssステートメントを替える。
方法は色々あるけど、以下は例。参考に!
div.main {
margin-left: 8px;
line-height: 1.5em;
font-size: 16px; /* このサイズはPC用 */
color: #0b0b0b;
font-family: "メイリオ",sans-serif;
}
@media screen and (max-width: 320px) /*スマホ専用*/
{
div.main {
font-size: 27px; /* このサイズがiPhone専用サイズ */
}
}
回答ありがとうございます。
うまくいくかと思ったのですが、携帯で動作しませんでした・・・。
このdiv.mainを#container1というdivの上に置いているのが原因なのでしょうか。
HTML
<div id="container1">
<h2>タイトル</h2>
<div class="main">
本文~~~~<br>
本文~~~~<br>
</div>
</div>
CSS
#container1 {
width: 948px;
margin: 0px auto;
min-height: 100%;
overflow: hidden;
padding: 1px;
background: #FFF;
}
省略
div.main {
margin-left: 8px;
line-height: 1.5em;
font-size: 27px;
color: #0b0b0b;
font-family: "メイリオ",sans-serif;
}
これによってまず縦に長い1カラムを作り、その上にdiv.mainを置く形になっています。
(補足では字数が足りませんので、お礼で失礼します。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS htmlの文字が縦書きになる 2 2023/03/01 21:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
タグが反映してくれません
-
Excel VBA メール作成について ...
-
ブラウザ依存のボタンのデザイ...
-
ビルダーでCSSで指定した文...
-
リストの前後の行間をなくす方...
-
IFRAME にsrc でデータを呼び出...
-
行間幅、文字幅を設定するスタ...
-
cssでの文字の設定
-
文字の位置、上下のマージンが...
-
サニタイジング化されてしまっ...
-
perlの文字サイズ
-
background-color: #ddd;の意味...
-
全角半角含めて等幅で表示したい
-
アコーディオンメニューが思う...
-
ホームページビルダー作成HPがi...
-
スタイルシートで指定したアン...
-
スタイルシートでの段組指定に...
-
下付き文字にするには?
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リストの前後の行間をなくす方...
-
文字の位置、上下のマージンが...
-
Excel VBA メール作成について ...
-
background-color: #ddd;の意味...
-
Format 関数 表示書式指定文字...
-
リンク文字
-
Excel VBA メール作成について ...
-
テキストエリア内の文字の装飾
-
HTMLで特定の文字だけ色を変え...
-
全角半角含めて等幅で表示したい
-
<pre>にフォントを・・・。
-
fontサイズ指定の ”-(マイナ...
-
htaコードですが、IE6に対応さ...
-
jquery.validationEngine.jsカ...
-
特定の文字のみcssを適用するに...
-
CSSを一部無効にしたい
-
CSSのid名class名の重複回避方...
-
テキストボックス途中で切れて...
-
フォームのスタイルについて教...
-
CSSで14px/1.4の部分の記述は正...
おすすめ情報
補足:現在このように記述しています。
HTML
<div id="container1">
<h2>タイトル</h2>
<div class="main">
本文~~~~<br>
本文~~~~<br>
</div>
</div>
CSS
#container1 {
width: 948px;
margin: 0px auto;
min-height: 100%;
overflow: hidden;
padding: 1px;
background: #FFF;
}
(tableやh2の装飾などのcssが間に入ります)
div.main {
margin-left: 8px;
line-height: 1.5em;
font-size: 27px;
color: #0b0b0b;
font-family: "メイリオ",sans-serif;
}
①413px、480px、500pxを試しましたが変化はありませんでした。
ただ、回答いただいた記述をいただく前から横幅自体はiPhone側が調整?しているようです。
(同じフォントサイズにし、PCとスマホで見ると改行の位置が違ってくるので)
@media ... の部分のフォントサイズを27px以上に変えても変化しませんでした。
②PCで横幅を狭くしていってもフォントサイズに変化はありませんでした。
②について、誤りがありました。width 375px に設定したところ、PC上でそのサイズ以下になったらフォントサイズに変化がありました。
ただ、iPhoneで見たときには変化はありませんでした。
再度失礼します。
対象のhtmlに<meta name="viewport" content="width=device-width, initial-scale=1">
という記述を加えてみたところ、うまくいきました。(No.1さんの記述を加えたうえで)
しかし、いったい何が起こっているのかよくわかりません。
引き続き回答を募集します。