2012-04-16 20 views
3

CSSと最新のChromeまたはFirefoxは、最初の<h1>タグから先頭の余白を自動的に取り除くことができますか、それでもjQueryを使用する必要がありますか?最新のCSSを使用して先頭の余白を取り除く

+1

現代のCSS3のように? 'h1:first-child {margin:top:0; } '? – Smamatti

+0

私はいつもHTML文書に「* h1」が1つだけあるべきという印象のもとで働いています... =/ –

+0

@DavidThomasいいえ、同じ重要度の内容の見出しである限り、多くのh1要素を持つことはできませんページ。 ** HTML5の概要(http://html5doctor.com/outlines/)**では、h1要素のみを使用でき、h1-h6を使用する必要があるHTML 4.01と同等の結果が得られます(スクリーンリーダーはブラウザから見出しの正確なレベルを得ることはできません。まだ存在する古いブラウザについては言及せず、HTML5仕様のことを決して実行しません。 – FelipeAls

答えて

8

あなただけh1:first-child { margin-top: 0px; }DEMO

+0

ページ内に多くのh1要素を持つことができ、すべての要素がページの最初の要素ではなく、それぞれの親要素の最初の子要素になります。 – FelipeAls

+0

私はちょうどこの答えに追加してください:古いIEをサポートしたい場合は、selectivzr.jsライブラリを使用することができます。 http://selectivizr.com/しかし、それはいくつかの問題があるので1.0.2バージョンを使用しないでください。 GitHubの1.0.3bバージョンを使用してください。 – mare

0
div#content h1:first-child { margin-top:0; } 

AFAIKこれはIE6では機能しません。IE7ではバグの可能性があります。

0

擬似セレクタ。これらはFailbrowsers(IE 7および以前)でサポートされていないので、あなたはまだjQueryのバックアップソリューションを必要とするかもしれないことを

h1:first-child { 
    margin-top: 0; 
} 

注意。

-1

のように、H1タグにクラスを追加します。何:first-of-pageセレクタを使用すると、ないのでありません

.first 
{ 
    margin-top: 0; 
} 
3

が必要になります。そして、CSSに

<h1 class="first">Your text</h1> 

CSSを使用することはできません。 CSSでは、親と先行する兄弟が何であれページからすべてのh1を抽出し、最初のものだけを取り出すことはできません。
h1要素についてもう少し知る必要があります。

例:

  • 、それはまた、(第1、またはのみ)body > headerの子(またはHTML 4.01で#ヘッダー)
  • だ場合、すべてのh1は、その後、兄弟である場合は、最初にH1を選択することができますh1:first-of-type最初のものです。
  • セクション内のメインナビゲーションの直後に最初のh1がある場合は、body > nav + section > h1が選択されます。または、おそらくbody > header > nav + section > h1:first-of-type