ホームページ >ウェブフロントエンド >H5 チュートリアル >表でスラッシュヘッダー効果を実現する方法

表でスラッシュヘッダー効果を実現する方法

PHP中文网
PHP中文网オリジナル
2017-06-21 16:19:042476ブラウズ

テーブル、これはコード内でよく目にするものなので、テーブルにスラッシュ ヘッダーを追加する必要がある場合がありますが、この効果を実現するにはどうすればよいでしょうか?

以下の方法をまとめました:

1. 最も簡単で簡単な方法

会社のUIに直接アクセスし、写真を作成するように依頼し、それを背景画像としてここに配置し、それを塗りつぶします。シンプルではないでしょうか! ! !

2. 非常に簡単な方法です

実際、CSS3 を知っている友人は、この効果を見るとすぐに属性変換が頭に浮かびます。これは確かに可能ですが、非常に簡単な問題が 1 つあります。ブラウザの互換性の問題については、常に危機感を持っておく必要があります (IE はまだ存在します)。会社の要件が Chrome との互換性のみである場合は、この方法が適しています。

3. 非常に簡単な方法

.biaoTou {
                border-top: 200px #199fff solid; /*上边框宽度等于表格第一行行高*/  
                border-left: 200px #ff8838 solid; /*左边框宽度等于表格第一行第一格宽度*/  
            }
<td width="200"><div class="biaoTou"></div></td>

この方法も非常に簡単で、上記のフォーマットに従って書き出すだけです。ただし、この書き方には明らかな問題があります。この方法では、実際には 2 つの異なる色の枠線を使用してテーブルヘッダーの対角線を分割しています。この場合、対角線の両側の色を同じにすることはできません。プロモーション活動などの一部の形式では、この方法を使用できます。ただし、スラッシュの両側の色を同じにする必要がある場合、このアプローチは適用できません。慎重に使用してください。

4. 非常に簡単な方法

この効果は、CSS3 の別の新しいタグ、canvas を使用して実際に実現できます。これをキャンバスとして使用して斜めの線を描く方法は非常に簡単なので、詳細は説明しませんが、Chrome のみに対応している場合、よくある互換性の問題もあります。やりたいことは何でもできます (なぜ当社では忌まわしい IE について常に考慮する必要があるのでしょうか。また、Google と互換性のあるプロジェクトのみを実行したいと考えています)。

5. 単純なメソッドではありません

それが js メソッドです

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  <HTML>  <HEAD>  <TITLE>斜线表头</TITLE>  <meta http-equiv="content-type" content="charset=gbk">  </HEAD>  
  <body leftmargin=0 topmargin=0>  <br>  <div height="300">header</div>  <hr>  <TABLE border=0 bgcolor="000000" cellspacing="1" width=400  style="margin-left: 100px;">  <TR bgcolor="FFFFFF">  <TD width="111" height="52"><table width="100%" height="100%"  
                    border="0" cellpadding="0" cellspacing="0">  <tr>  <td id="td1"></td>  <td>成绩</td>  </tr>  <tr>  <td>姓名</td>  <td id="td2"></td>  </tr>  </table></TD>  <TD width="81">数学</TD>  <TD width="96">英语</TD>  <TD width="99">C语言</TD>  </TR>  <TR bgcolor="FFFFFF">  <TD>张三</TD>  <TD>55</TD>  <TD>66</TD>  <TD>77</TD>  </TR>  <TR bgcolor="FFFFFF">  <TD>李四</TD>  <TD>99</TD>  <TD>68</TD>  <TD>71</TD>  </TR>  <TR bgcolor="FFFFFF">  <TD>王五</TD>  <TD>33</TD>  <TD>44</TD>  <TD>55</TD>  </TR>  </TABLE>  <script type="text/javascript">  function a(x, y, color) {  
            document  
                    .write("<img   border=&#39;0&#39;   style=&#39;position:   absolute;   left:   "  + (x)  + ";   top:   "  + (y)  + ";background-color:   "  + color  + "&#39;   src=&#39;px.gif&#39;   width=1   height=1>")  
        }  function getTop(tdobj) {  
            vParent = tdobj.offsetParent;  
            t = tdobj.offsetTop;  while (vParent.tagName.toUpperCase() != "body") {  
                t += vParent.offsetTop;  
                vParentvParent = vParent.offsetParent;  
            }  return t;  
        }  
  function getLeft(tdobj) {  
            vParent = tdobj.offsetParent;  
            t = tdobj.offsetLeft;  while (vParent.tagName.toUpperCase() != "body") {  
                t += vParent.offsetLeft;  
                vParentvParent = vParent.offsetParent;  
            }  return t;  
        }  function line(x1, y1, x2, y2, color) {  var tmp  if (x1 >= x2) {  
                tmp = x1;  
                x1 = x2;  
                x2 = tmp;  
                tmp = y1;  
                y1 = y2;  
                y2 = tmp;  
            }  for ( var i = x1; i <= x2; i++) {  
                x = i;  
                y = (y2 - y1) / (x2 - x1) * (x - x1) + y1;  
                a(x, y, color);  
            }  
        }  //line(1,1,100,100,"000000");           line(getLeft(td1), getTop(td1), getLeft(td1) + td1.offsetWidth,  
                getTop(td1) + td1.offsetHeight, &#39;#000000&#39;);  
        line(getLeft(td2), getTop(td2), getLeft(td2) + td2.offsetWidth,  
                getTop(td2) + td2.offsetHeight, &#39;#000000&#39;);  </script>  </body>  </HTML>

さて、5 つのメソッドを完了しました。皆さんのお役に立てれば幸いです

以上が表でスラッシュヘッダー効果を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。