2016-09-26 9 views
1

テーブルにリボンを作成していますが、いくつかの問題に直面しています。 私はテーブルのリボンを作ることができません。どのようにそれは非常に奇妙に見えるいくつか。多分テーブルのCSSを使用したリボン

.sash { 
 
    position: relative; 
 
    overflow: hidden; 
 
    width: 300px; 
 
} 
 
.sash:after { 
 
    content: "Sash"; 
 
    position: absolute; 
 
    width: 90px; 
 
    height: 30px; 
 
    background: red; 
 
    top: 0; 
 
    right: 0; 
 
    transform: rotate(49deg); 
 
}
<table style="border:1px solid black" class="sash"> 
 
    <tr> 
 
    <td>one line text</td> 
 
    <td>two line text</td> 
 
    <td>three line text</td> 
 
    <td>four line text</td> 
 
    <td width="100"></td> 
 
    </tr> 
 

 
    <tr> 
 
    <td>one line text</td> 
 
    <td>two line text</td> 
 
    <td>three line text</td> 
 
    <td>four line text</td> 
 
    <td width="100"></td> 
 
    </tr> 
 
</table>

+0

希望する視覚効果は、正確にはどのようなものですか? – Serlite

+0

http://www.cssportal.com/blog/create-corner-ribbon/と同じですが、テーブル構造を使用しています。 前、後などの疑似クラスを回避する方法はありますか? – Robin

答えて

3

.sash tr td:last-child { 
 
    position: relative; 
 
    overflow: hidden; 
 
    width: 300px; 
 
} 
 
.sash tr td:last-child:after { 
 
    content: attr(data-ribbon); 
 
    position: absolute; 
 
    width: 90px; 
 
    height: 30px; 
 
    background: red; 
 
    top: 5px; 
 
    text-align: center; 
 
    line-height: 30px; 
 
    right: -12px; 
 
    transform: rotate(49deg); 
 
}
<table style="border:1px solid black" class="sash"> 
 
    <tr> 
 
    <td>one line text</td> 
 
    <td>two line text</td> 
 
    <td>three line text</td> 
 
    <td>four line text</td> 
 
    <td width="100" data-ribbon="One"></td> 
 
    </tr> 
 

 
    <tr> 
 
    <td>one line text</td> 
 
    <td>two line text</td> 
 
    <td>three line text</td> 
 
    <td>four line text</td> 
 
    <td width="100" data-ribbon="Two"></td> 
 
    </tr> 
 
</table>
:各行について

.sash { 
 
    position: relative; 
 
    overflow: hidden; 
 
    width: 300px; 
 
} 
 
.sash:after { 
 
    content: attr(data-ribbon); 
 
    position: absolute; 
 
    width: 90px; 
 
    height: 30px; 
 
    background: red; 
 
    top: 5px; 
 
    text-align: center; 
 
    line-height: 30px; 
 
    right: -27px; 
 
    transform: rotate(49deg); 
 
}
<table style="border:1px solid black" class="sash" data-ribbon="Sach"> 
 
    <tr> 
 
    <td>one line text</td> 
 
    <td>two line text</td> 
 
    <td>three line text</td> 
 
    <td>four line text</td> 
 
    <td width="100"></td> 
 
    </tr> 
 

 
    <tr> 
 
    <td>one line text</td> 
 
    <td>two line text</td> 
 
    <td>three line text</td> 
 
    <td>four line text</td> 
 
    <td width="100"></td> 
 
    </tr> 
 
</table>

+0

ありがとうございます!疑似クラスを避けることのできる代替手段はありますか?サッシュの私の価値はダイナミックになるでしょう。 – Robin

+0

@ user769456はい、_clever_擬似を使っています...私は秒で答えを更新します。 – LGSon

+0

@ user769456 'data-ribbon'属性とCSS' attr() 'を使って更新しました – LGSon

関連する問題