2013-07-19 4 views
15
例えば

CSSでは、折り返しの前に最後の要素を選択できますか?

は私が並んでのdiv者側の束を持って、それぞれのdivが国境権利を有する:1pxの

親要素がある程度の幅があるが、余分なdivのラップ、ある時点でそう次の行に移動します。

本質的には、折り返しの前に最後のdivの境界線が必要ではありません。

これが意味をなさない場合、私はフィドルを作成できます。私はちょうどラップの前に最後のdivをターゲットにすることができます知りたいです。 (最後の子は、必要でない次の行にある最後のdivをターゲットにします)

+0

それは意味をなさないが、fiddlを作成するとにかく。私はdivを並べて表示する方法を知りたい。フロート、ディスプレイ:インラインブロックなど? –

+2

とにかく、私の腸の感覚は、divsに境界線左を与えてから、その境界線をコンテナの左側に隠す方が簡単だと言います。 –

+1

@MrListerそれは、動的に形成された各行の最初の子を見つけようとしている以外は同じ問題を引き起こしませんか?負のマージンを残して、その境界をコンテナに隠す予定がない場合は、しかし、国境が右にある必要があります。その場合、境界左は折り返し前の最後の要素では機能しません。 – Huangism

答えて

3

ハードコードされているかJSで現在の幅で取得している列数を調べてからnth-childセレクタ。例えば

、各divcolのクラスを有する行ごとに3つの列を持っている場合、それは第nの子セレクタは、多くの列がdivの各行にあるしかしに応じて変更することができる

div.col:nth-child(3n){border-right:none;} 

あろうs。

+3

要素に不規則な幅がある場合、これは機能しません。 – cimmanon

+0

もし不規則な幅を持っているならば、彼はちょうど同じ考え方でCSSクラスをつけることができます。ちょっとしたJSで、彼は各エンドキャップdivをターゲットにしてクラスを配置することができました – Jnatalzia

2

複数の行から最後の項目を選択する方法はありません。:last-childのみです。

エレメントが列に並んでいる場合、マルチカラムモジュールが関心を引くかもしれません。これには、罫線に似た列ルールプロパティがありますが、列の間には縦にしか表示されず、外のエッジには表示されません。

http://cssdeck.com/labs/febtiiet

.container { 
    columns: 20em; 
    column-rule: 1px solid; 
} 

プレフィックスが必要になることがあります:http://caniuse.com/#feat=multicolumn

をそうでない場合、あなたはMrListerとして左の境界線を置くに切り替える必要があります示唆:

http://cssdeck.com/labs/f8qjngd4

.container { 
    overflow: hidden; 
    padding: 0; 
    border-style: none; 
} 

.child { 
    border-left: 1px solid; 
    position: relative; 
    left: -1px; 
    display: inline-block; 
    width: 20em; 
} 
関連する問題