2016-12-24 7 views
3

私は4つのテキストフィールドを持っており、それらの間に10ピクセルのスペースを作ろうとしています。私はそれを働かせましたが、最初のアイテムも10px移動しましたが、私はそれをしたくありません。私は最後の3つのテキストフィールドのクラスについて考えましたが、これはうまくいくでしょうが、私はまだ良いアイデアを探しています。助言がありますか?要素間のスペース。どのように最初の項目の間隔を避けるために?

HTML:

<span>text</span> 
<span>text</span> 
<span>text</span> 
<span>text</span> 

はCSS:選択

span:first-child { 
    margin: 0; 
} 

:first-child

span { 
    margin:0 10px; 
} 
+0

最初のクラスを追加します。これらのクラスを使用することもできます。 –

答えて

3

:first-child擬似セレクタを使用最初の<span>の最初の子(この場合は<body>)を使用し、その要素にのみスタイリングを適用します。 :last-childの場合も同じですが、の最後の子にはスタイリングが適用されます。

また、:last-childセレクタを使用して均等にすべてのものを分割する必要があり、左右対称であることを覚えておいてください、あなたは、同様の要素に小さな例を余白左と右を適用する必要があります:

span { 
 
    margin: 0 10px; 
 
} 
 

 
span:first-child { 
 
    margin: 0 10px 0 0; // right 10px 
 
} 
 

 
span:last-child { 
 
    margin: 0 0 0 10px; // left 10px 
 
}
<span>text</span> 
 
<span>text</span> 
 
<span>text</span> 
 
<span>text</span>

2

変更CSS:

span:first-child { 
    margin: 0; 
} 

span { 
    margin:0 10px; 
} 

:first-child擬似セレクタは最初のspan要素と異なるマージンを与えます。ない(セレクタ)セレクタ 指定された要素/セレクタではありませんすべての要素にマッチする:最初の要素のためのmarginを回避するために

3

より良い解決策は

、私たちにCSSのセレクタ:notです。最初のspanタグを残し

、他の3つは10pxmargin-rightmargin-leftを持っている必要があります。私たちは、:notセレクタでこれを行うことができます。

span:not(:first-child) { 
 
    margin:0 10px; 
 
}
<span>text</span> 
 
<span>text</span> 
 
<span>text</span> 
 
<span>text</span>

+0

また、それらを組み合わせることもできます:not(:f irst-child):not(:last-child) '行を保存する:)。 – Roberrrt

+0

はい@Roberrrtですが、ここでOPは最初のタグでこれを実行します:-) – frnt

2

最初のものを:)除外するためのもう1つの簡単な方法は:

span + span { 
 
    margin:0 10px; 
 
}
<span>text</span> 
 
<span>text</span> 
 
<span>text</span> 
 
<span>text</span>

関連する問題