個人的忘備録です。


webのクライアントはPC/タブレット/スマホ辺りが主流だと思います。

これらは搭載している画面サイズがマチマチで、webサイト作ると色々書き方が面倒だという事は判りましたが、ネットで検索するとレスポンシブがどうたらなど、非常に苦労されているようです。

※本情報はAndroid10/Windows10で検証しているので、それ以前のOSは加味していません

 

極論ですが、自前でサイト構築するなら、そこまでの情報は不要であると考えcssで沢山のクライアントに対応できないか考えてみました。

 

stylesheet部分

@charset "utf-8";
 

p.page {
width: 100%;
text-align: center;
}

p.page img {
width: 90%;
height: auto;
}
 

html本文

<body>

<p class="page">

<img src="image1.jpg">

</p>

</body>

 

こうすると、どのクライアントでも表示領域の横幅90%で画像を表示できるっぽいです。

firefoxやchromeを使っているなら開発ツールを利用する事でスマホなんかのレビューもできるし、PC内でイメージが捉えられますね。

 

【解説】

p.pageはpタグ専用ののpageクラスである事を明示します

p.page imgはpタグのpageクラスの子階層にあるimgタグにのみ影響を与える事を明示します。

width: ??%は画面幅(子階層の場合は親階層の幅)に対して何%の大きさで表示するかを定義します

height: auto; は幅に連動して高さを自動調節します(縦横比を継承)

 

【まとめ】

コーディングの手間を惜しんで、ソースを統一し、デバッグ工数を少なくしたい場合にどうかな?と考えました。

サーバはjavascriptを経由しないとクライアントの表示可能サイズが不明なので、苦肉の策です

 

他にやるならパッと思いつくものだと

1)cssでcalcという関数が使えるようになったみたいなので、自前で演算する

2)User-Agentを解析して、エージェントのOS事にそれっぽいコードを書く

等が考えられますが、コード量とかデバッグ考えると現実的じゃないと思います。