CSSで、特定のクラスのdivで、見出しがそれぞれ次のサイズになるようにすることはできますか?つまり、h1はh2サイズ、h2はh3サイズ、というようになりますか?しかし、実際にそれらのサイズを指定せずに?
h1、h2、h3を一度設定してから、特定の場合にそれらをすべて1つ下にシフトできるようにしたいと思います。
CSSで、特定のクラスのdivで、見出しがそれぞれ次のサイズになるようにすることはできますか?つまり、h1はh2サイズ、h2はh3サイズ、というようになりますか?しかし、実際にそれらのサイズを指定せずに?
h1、h2、h3を一度設定してから、特定の場合にそれらをすべて1つ下にシフトできるようにしたいと思います。
HTML5 CR(4.4.11見出しとそのセクションarticle
を参照)により、 or要素を目的に使用できます。これは、 orsection
要素が新しいネストレベルを開始するため、たとえば、h1
内側がh2
外側に対応するためです。最新バージョンのブラウザは、一般的にこれを実装しています。たとえば、ブラウザで次のように表示できます。
<!doctype html>
<title>Headings</title>
<h1>Heading</h1>
<h2>Heading</h2>
<article>
<h1>Heading</h1>
</article>
<section>
<h1>Heading</h1>
</section>
ただし、サポートはまだ制限されており、長い間そうなるでしょう。IE 8(およびそれ以前)は何年もの間私たちになります。そして、それらのブラウザに新しいHTML5要素を実装するためのポリフィルがありますが、たとえば、有名なhtml5shiv.jsは見出しを処理しません。
したがって、最も堅牢なアプローチは、フォントサイズを明示的に設定することです。ただし、コンテキストセレクターを使用できます。
<style>
h2, .article h1 { font-size: 130%; }
</style>
...
<div class=article>
<h1>...</h1>
...
</div>
(またはarticle
html5shivで要素を使用するかもしれません)。
Jukkaの答えは1つの方法ですが、これを別の方法で解決します。これは、応答性の高い方法で問題を解決する場合に、より堅牢になる可能性があります。
これは、コピーの適切なベースラインの構築に関するSmashing Magazineの記事です。これは、コピーの重いインターフェイスを構築している場合に役立ちます。
したがって、テキストの適切なベースラインを設定することから始め、次にパーセンテージを使用して、ベースラインに基づいて見出しのサイズをスケーリングします。
body { font-size: 1.2em } /* Baseline */
article { font-size: 80% } /* 0.8 of ^ Baseline */
aside { font-size: 60% } /* 0.6 of ^ Baseline */
/* x% of the parent font-size */
h1 { font-size:160% }
h2 { font-size:140% }
p{ font-size:100% }
etc...
これは、、&内のすべてのコピーに影響し、テキストサイズはベースラインサイズに比例して拡大縮小されます。body
article
aside
<h1>Font size = 1.2em * 160% = 1.92em</h1>
<p>Font size = 1.2em * 100% = 1.2em</p>
<article>
<h1>Font size = 1.2em * 80% * 160% = 1.536em</h1>
<p>Font size = 1.2em * 80% * 100% = 0.96em</p>
</article>
<aside>
<h1>Font size = 1.2em * 60% * 160% = 1.152em</h1>
<p>Font size = 1.2em * 60% * 100% = 0.72em</p>
</aside>
これにより、クエリごとに異なるベースラインを簡単に設定@media
でき、すべてのテキストサイズを適切に設定できます。
メディアクエリを使用してベースラインを変更します。
/* Small screen, so beef up the font size */
@media only screen and (max-width: 320px){
body { font-size:1.4em }
}
これは、以前のすべてのスタイルに次のように影響します。
<h1>Font size = 1.4em * 160% = 2.24em</h1>
<p>Font size = 1.4em * 100% = 1.4em</p>
<article>
<h1>Font size = 1.4em * 80% * 160% = 1.792em</h1>
<p>Font size = 1.4em * 80% * 100% = 1.12em</p>
</article>
<aside>
<h1>Font size = 1.4em * 60% * 160% = 1.344em</h1>
<p>Font size = 1.4em * 60% * 100% = 0.84em</p>
</aside>
2c