geek-logo.jpg

メモをとるのは面倒くさいし、検索するのも面倒くさい。散らかるブックマークも好きじゃない・・・そんな理由も何かにつながる

テーブルに行番号を振る

スタイルシートだけでテーブルに行番号を振る。の、メモ。

<table>
  <thead>
    <tr>
      <th></th>
      <th>見出し1</th>
      <th>見出し2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td></td>
      <td>値1−1</td>
      <td>値1ー2</td>
    </tr>
    <tr>
      <td></td>
      <td>値2−1</td>
      <td>値2ー2</td>
    </tr>
    <tr>
      <td></td>
      <td>値3−1</td>
      <td>値4ー2</td>
    </tr>
  </tbody>
</table>

というHTMLがあったとする。

table{
  counter-reset: rowCount;
}
tbody tr{
  counter-increment: rowCount;
}
tbody tr td:first-child::before{
  content: counter(rowCount);
}

2行目:カウンタをリセット(初期値として0を設定)する。
5行目:TR要素が出現するたびにカウンタの値を+1する。
8行目:カウンタ値をcontentプロパティとして表示させる。

そこに、こういうCSSをあてると

見出し1見出し2
値1−1値1ー2
値2−1値2ー2
値3−1値3ー2

と、きちんと行番号を振ってくれました。

文字列を一定の長さで省略表示(...)する

新着情報にあるような、日付とタイトルを一覧したりするときタイトル部分が2行にならないようにCMS側でフィルターかけたり、Feedを読み込んでJavaScriptで文字列を切り取ったり・・・

なんとなく無駄だなぁ〜って思ってた。

スタイルシートだけで出来ちゃうんですね!!

li{
  width: 300px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

2行目:<LI>タグの幅を300ピクセルに設定

3行目:空白文字の扱いを定義するプロパティ white-spacenowrap を指定し、改行を半角スペースとして表示させる。

4行目:要素からはみ出したコンテンツに対する指定をするプロパティ overflowhidden を指定し、はみ出し部分を表示させない。

5行目:はみ出し領域の表示方法を指定するプロパティ text-overflowellipsis を指定し、はみ出した際に末尾に「…」が付加させる。


ただし、<LI>タグなどに適用する場合、list-style-positionoutside にしてもリストのスタイルは表示されませんので要注意です。


実際にやってみると

  • 2013年11月05日  【メモ】文字列を一定の長さで省略表示(...)する


スタイルシートを覚えるなら

CSS3 スタンダード・デザインガイド【改訂第2版】 (Web Designing Books)

新品価格
¥3,024から
(2013/11/5 14:23時点)