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

メディアクエリでウインドウサイズに合わせて、細かく文字サイズの指定をしているんですが、ウインドウサイズに合わせて、無段階で文字サイズを変更するような仕組みを考えています。Javascriptなどで実現可能なのでしょうか?

@media screen and (min-width: 1201px) and (max-width: 1280px) { body { font-size: 11px; } }
@media screen and (min-width: 1281px) and (max-width: 1380px) { body { font-size: 12px; } }
@media screen and (min-width: 1381px) and (max-width: 1450px) { body { font-size: 13px; } }
@media screen and (min-width: 1451px) and (max-width: 1500px) { body { font-size: 13.2px; } }
@media screen and (min-width: 1501px) and (max-width: 1550px) { body { font-size: 13.5px; } }
@media screen and (min-width: 1551px) and (max-width: 1600px) { body { font-size: 14px; } }
@media screen and (min-width: 1601px) and (max-width: 1620px) { body { font-size: 14.3px; } }
@media screen and (min-width: 1621px) and (max-width: 1640px) { body { font-size: 14.5px; } }
@media screen and (min-width: 1641px) and (max-width: 1650px) { body { font-size: 15px; } }

A 回答 (2件)

書き方は


body { font-size: 11px; }
@media (min-width: 400px){ body { font-size: 10px; } }
@media (min-width: 480px){ body { font-size: 12px; } }/* ウィンド幅1.2倍 */
@media (min-width: 580px){ body { font-size: 14.4px; } }
@media (min-width: 550px){ body { font-size: 17.2px; } }
@media (min-width: 590px){ body { font-size: 20.8px} }
@media (min-width: 830px){ body { font-size: 25px; } }
@media (min-width: 996px){ body { font-size: 30px; } }
@media (min-width: 1120px){ body { font-size: 36px; } }
@media (min-width: 1430px){ body { font-size: 43x; } }
でよい。理解せず受け売りするからそうなる。(^^)

ただ、これは通常は行いません。というのは、ウェブはユーザー優先だからです。
ユーザーは基本的には、自分が見やすいフォントサイズを指定しています。そして字が小さいときは、Ctrl++で拡大してみてますし、アドオンで画像は除いてフォントだけ拡大するFont Size( https://addons.mozilla.org/ja/firefox/addon/font … )とかしています。

★ ユーザーが小さくて読みにくいときは、Ctrl++、そうでないときはCtrl+-で文字サイズを変えていることを忘れてはなりません。
 私もこの回答フォームに入力するときは、すこし大きくしている。

 逆に言うとフォントサイズでデザインが変わるサイトは作ってはならない。

 なお、ipadやスマホだと、本来のpx(0.26mm)ではありません。
CSS2.1以降のpx________
 デバイスからの腕の長さ(71cm)離れた距離において、96dpiのピクセル密度におけるデバイス上の1ピクセルとの視角として定められています。実際の画素数とは関係ない。視角は約0.0213度で、1pxは約0.26mm(1/96インチ)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで
でしたが、
 スマホの場合は、320px幅のディスプレイでも、960px・・実質1/3のサイズに縮んで表示されます。また、拡大してみるときはスマホを横にします。

 デザイン上、どうしても合わせたい場合は、ボックスサイズも併せて指定して、段階的にするほうが良いでしょう。
body{font-size:16px;}
header,section,footer{max-width:1000px;margin:0 auto;}
section{position:relative;}
section>*{margin:0 210px;}
section>nav,section aside{position:absolute;width:200px;height:100%;top:0;margin:0;}
section>nav{left:0;}
section>aside{right:0;}
@media (max-width: 840px){
 body{font-size:14px;}
 section>*{margin:0 0 0 210px;}
 section aside{position:static;width:auto;margin:0 0 0 210px;height:auto;}
}
@media (max-width: 640px){
 body{font-size:12px;}
 section>*{margin:0;}
 section>nav{position:static;width:auto;margin:0;height:auto;}
}
とか・・

簡単なサンプル
★タブは_に置換してあるので戻してください。
★Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html# )
 のDATA(右上)で検証済みHTML5+CSS2.1


<!doctype html>
<html>
<head>
_<meta charset="utf-8">
_<title>サンプル</title>
_<meta name="description" content="">
_<meta name="author" content="ORUKA">
_<link rel="stylesheet" href="css/style.css">
<style media="screen">
<!--
h1,h2,h3,p,ul{margin:0;line-height:1.6em;}
header,footer{background-color:aqua;}
section{background-color:silver;}
section nav{background-color:lime;}
section aside{background-color:orange;}

body{font-size:16px;}
header,section,footer{max-width:1000px;margin:0 auto;}
section{position:relative;min-height:300px;}
section>*{margin:0 210px;}
section>nav,section aside{position:absolute;width:200px;height:100%;top:0;margin:0;}
section>nav{left:0;}
section>aside{right:0;}
@media (max-width: 900px){ body { font-size: 14.4px; } }
@media (max-width: 810px){ body { font-size: 13px; } }

@media (max-width: 810px){
_body{font-size:14px;}
_section>*{margin:0 0 0 210px;}
_section aside{position:static;width:auto;margin:0 0 0 210px;height:auto;}
_@media (max-width: 660px){ body { font-size: 10.5px; } }
}
@media (max-width: 590px){
_body{font-size:10px;}
_section>*{margin:0;}
_section>nav{position:static;width:auto;margin:0;height:auto;}
_section>aside{margin:0;}
}
-->
</style>
</head>
<body>
_<header>
__<h1 id="title">Your title</h1>
__<nav>
___<ul>
____<li><a href="#">Some</a></li>
____<li><a href="#">navigation</a></li>
____<li><a href="#">links</a></li>
___</ul>
__</nav>
_</header>
_<section>
__<h2>A smaller heading</h2>
__<p>
___デバイスからの腕の長さ(71cm)離れた距離において、96dpiのピクセル密度におけるデバイス上の1ピクセルとの視角として定められています。実際の画素数とは関係ない。視角は約0.0213度で、1pxは約0.26mm(1/96インチ)
__</p>
__<aside>
___<h3>Something aside</h3>
__</aside>
__<nav>
___<h3>ナビゲーション(目次)</h3>
___<ul>
____<li><a href="#">Some</a></li>
____<li><a href="#">navigation</a></li>
____<li><a href="#">links</a></li>
___</ul>
__</nav>
_</section>
_<footer>
__<h3>A nice footer</h3>
__<p>本文と直接関係ない(asideな)記事</p>
_</footer>
</body>
</html>
    • good
    • 0

ビューポートに合わせて、fonto-sizeを自動計算設定するだけだと思いますが・・・・。



body{
font-size: 2vw;
}
の様に・・・。
    • good
    • 0

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