2021年5月5日水曜日

HTML5に沿った表の作成、テーブルtable要素の書き方‐HTML・CSSを学ぶ

HTML5に対応した表の作成方法


表は何らかのデータを比較したり、一覧で表示したり、項目ごとに分けて表示する際に役立ちます。

表の作成


以前は表自体がホームページの枠組みの役目をしていたのですが、HTML5になり検索エンジンロボットでも分かり易いHTML表記が望まれるようになり、ホームページ内のレイアウト用に表の多用は避けられるようになっています。


私もこの表の枠としての利用を多用していた一人なのですが、レイアウトを決めるうえで簡単に形作ることが出来るため、とても重宝していました。


表の中に表を作成、またその表の中に表を挿入と3重、4重の利用方法でしたので、検索エンジンロボットも理解不能となったことでしょう(笑)。


このような表の利用方法は検索エンジンロボットから評価の低いサイトとしてレッテルを張られ検索結果の表示順位に影響したり、最悪は全く表示されなくなるということもあるようなので気を付けたいと思います。


基本的な表の構造


table要素を使用


以下のタグで構成されています。

<table>

<tr>~</tr>                            /*表の行を囲む*/

<th>見出しセル</th>            /*見出しセル(太字)*/

<td>データセル</td>            /*データーセル*/

</table>


見出しセル、データセルを続けて横に記述することで列が作成できます。

見出しセル、データセルを続けて下に記述することで行が作成できます。


3行3列の表で一番上が見出しセルの表

HTML

<table>

<tr><th>見出しセル</th><th>見出しセル</th><th>見出しセル</th></tr>

<tr><td>データセル</td><td>データセル</td><td>データセル</td></tr>

<tr><td>データセル</td><td>データセル</td><td>データセル</td></tr>

</table>


このHTMLにデザインを構成する属性タグを付加して表を装飾していきます。


今までのHTML4.1で作成された表のHTML

HTML

<table cellspacing="0" cellpadding="2" width="100%" border="0" bgcolor="#cccccc" class="hpb-cnt-tb1" id="_HPB_TABLE_1_A_001">

<tbody>

<tr align="left">

<th valign="center" width="20%" class="hpb-cnt-tb-th1">見出しセル</th>

<th valign="center" width="20%" class="hpb-cnt-tb-th1">&nbsp;</th>

<th valign="center" width="20%" class="hpb-cnt-tb-th1">&nbsp;</th>

<th valign="center" width="20%" class="hpb-cnt-tb-th1">&nbsp;</th>

</tr>

<tr>

<td class="hpb-cnt-tb-cell1">データ セル</td>

<td class="hpb-cnt-tb-cell2">データ セル</td>

<td class="hpb-cnt-tb-cell2">&nbsp;</td>

<td class="hpb-cnt-tb-cell2">&nbsp;</td>

</tr>

<tr>

<td class="hpb-cnt-tb-cell1">&nbsp;</td>

<td class="hpb-cnt-tb-cell2">&nbsp;</td>

<td class="hpb-cnt-tb-cell2">&nbsp;</td>

<td class="hpb-cnt-tb-cell2">&nbsp;</td>

</tr>

<tr>

<td class="hpb-cnt-tb-cell1">&nbsp;</td>

<td class="hpb-cnt-tb-cell2">&nbsp;</td>

<td class="hpb-cnt-tb-cell2">&nbsp;</td>

<td class="hpb-cnt-tb-cell2">&nbsp;</td>

</tr>

</tbody>

</table>


上記のコードでHTML5では廃止された要素の属性を下記の図の赤枠で示しています。この属性をCSSに移し替えていきます。

HTML5では廃止された要素の属性


HTML5で作成された表のHTMLとCSS

既存のスタイルシートstyle.cssに以下のコードを追加します。

CSS

.style_table_00 {

background-color: #ffffff;

border-color: #6666bf #6666bf #6666bf #6666bf;

border-style: solid solid solid solid;

border-width: 1px 0px 0px 1px;

border-top: auto;

border-right: auto;

border-bottom: auto;

border-left: auto;

width: 100%;

}


.style_table_01 {

background-color: #cccccc;

border-color: #6666bf;

border-style: solid;

border-width: 0px;

padding-top: auto;

padding-right: auto;

padding-bottom: auto;

padding-left: 2px;

}


.style_table-th1 {

background-color: #6666bf;

border-color: #6666bf #6666bf #6666bf #6666bf;

border-style: solid solid solid solid;

border-width: auto;

padding-top: auto;

padding-right: auto;

padding-bottom: auto;

padding-left: auto;

width: 20%;

}


.style_table_cl1 {

}


.style_table_cl2 {

color: #666666;

background-color: #eeeeee;

font-size : 95%;

width: 20%;

}


HTML

<table class="style_table_00" id="_HPB_TABLE_1_A_001">

<tbody>

<tr class="style_table_01">

<th class="style_table-th1">見出しセル</th>

<th class="style_table-th1">&nbsp;</th>

<th class="style_table-th1">&nbsp;</th>

<th class="style_table-th1">&nbsp;</th>

</tr>

<tr>

<td class="style_table_cl1">データ セル</td>

<td class="style_table_cl2">データ セル</td>

<td class="style_table_cl2">&nbsp;</td>

<td class="style_table_cl2">&nbsp;</td>

</tr>

<tr>

<td class="style_table_cl1">&nbsp;</td>

<td class="style_table_cl2">&nbsp;</td>

<td class="style_table_cl2">&nbsp;</td>

<td class="style_table_cl2">&nbsp;</td>

</tr>

<tr>

<td class="style_table_cl1">&nbsp;</td>

<td class="style_table_cl2">&nbsp;</td>

<td class="style_table_cl2">&nbsp;</td>

<td class="style_table_cl2">&nbsp;</td>

</tr>

</tbody>

</table>


上記の表のコードをブラウザで表示してみたのが下記の画像です。

HTML5で作成した表

何とか形ができました(笑)。まだまだ満足できないところがあるのですが取り敢えず良しとします。

2021年5月4日火曜日

HTML4.1からHTML5.0では廃止(非推奨)となっているtable要素の属性を修正する‐HTML・CSSを学ぶ

table要素の属性を修正する

 table要素の中には数多くの属性が記述されています。前回でも取り上げましたが、HTML4.1で作成されたホームページのHTMLを一度に修復することはHTML5の知識が乏しい私にとっては難しい問題です。

前回の投稿は下記のリンクです。

HTML4.1で作成したホームページのHTMLでHTML5.0では廃止(非推奨)となっているタグ要素を修正する‐HTML・CSSを学ぶ


実際、少しずつでも修復できたらとの思いで取り掛かったもののなかなか作業が進みません。考えが甘かったのかな(笑)。それでも、なぜか隙間時間を見つけては毎日机に向かいHTMLと向かい合っています。

今迄のtable要素・タグ


table要素に装飾を施す属性が付加されているのですが、その属性をCSSに記述していきます。只それだけなのですがHTML5の知識が中途半端な上、一度覚えたつもりの要素や記述方法をなかなか覚えられないことも影響して要領を得ません(~_~;)。


年は取りたくないものです(笑)。


属性をスタイルシートstyle.cssに記述、追加

今回は下記の部分について編集していきます。


<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table01">


この中から「width="100%" border="0" cellspacing="0" cellpadding="0"」が廃止(非推奨)となっています。ほとんどですね(笑)。


上記属性を既存のスタイルシートstyle.cssに記述、追加していきます。


CSSとHTMLの記述方法

CSS

.table01{

background-color: #ffffff;

margin-top: 0px;

margin-right: 2px;

margin-bottom: 7px;

margin-left: 2px;

padding-top: 3px;

padding-right: 2px;

padding-bottom: 0px;

padding-left: 2px;

width: 100%;

}


HTML

<table class="table01">


属性を修正後のホームページの表示です。フレーム表示部分を表示しています。

属性を修正後のホームページの表示


既存のスタイルシートが適用(style.cssのclass="table01")されていますので、そのスタイルシートに追加、もしくは一部のプロパティを追加することでHTML5に対応したものに編集できます。

2021年5月3日月曜日

HTML4.1で作成したホームページのHTMLでHTML5.0では廃止(非推奨)となっているタグ要素を修正する‐HTML・CSSを学ぶ

HTML5.0では廃止(非推奨)となっているタグ要素

HTML5以降、それまでのHTML4.1で使用されていたタグ要素の一部が廃止となり非推奨扱いになっている為、これからのことを考えるとHTML5.0に対応できるようにタグ要素を修正していくことにしました。


ブログでも紹介していますが、HTMLの5.0へ対応するためcenter要素やiframe要素の修正をしていたところですが、まだ沢山の要素や属性があり修正には相当の時間と労力が必要です。赤枠が廃止タグ要素です。

廃止タグ要素


果たして完璧に修正できるかどうか、今のところ未知数ですがやってみる価値はあるかなと思っています。修正していく過程で、タグや要素について学習できると思うし、より理解が深められるのではないかと思っています。


一度に全部は無理ですが、少しづつ修正していければいいかなと気軽に考えています(笑)。


HTML4.1で作成したホームページ

ホームページの作成は主にホームページ作成ソフトを使用して作業をしています。HTMLやCSSについて碌な知識も持ち合わせていないので作業効率を考えるととても助かっています。


ですが、このソフトは10年前に購入したHTML4.1対応のものでHTML5.0に対応していない為かなりの修正が必要になってきます。


実際にホームページのHTMLを覗いてみるとtable要素やcenter要素、frame要素など、その属性を含めると至る所に使用されていることが分かります。


気の遠くなるような感じですが、やると決めた以上やるしかないですね。「よし、やるぞ!」意気込みだけは良いです(笑)。


HTML4.1で作成されたホームページを修正するには廃止タグを削除してデザイン部分を担っている属性をCSSに記述変更していく作業になります。


table要素の属性はそのほとんどが廃止(非推奨)となっている

取り敢えずtable要素の<td height="21" valign="top" class="table1">に含まれる廃止された属性などの削除、CSSへの記述を行っています。


廃止された属性などの削除、CSSへの記述

以下一部を紹介します。


height="21" valign="top" を削除します。以下のHTML、CSSを記述します。


HTML

<td class="table1">


CSS

.table1 {

color: #666666;

background-image : url(../../img/h02.gif);

background-repeat: no-repeat;

background-position: left bottom;

font-size : 110%;

font-weight: bold;

margin-top : 2px; /*上側のマージン*/

margin-right : auto;         /*右側のマージン*/

margin-bottom : auto; /*下側のマージン*/

margin-left : auto; /*左側のマージン*/

width: 100%;

}


少しづつですが、修正状況をまたこのブログで紹介していきます。

また、前回にiframeで枠に表示する別ページのテキスト文字が大きく表示される問題について、対策が見つかりましたので紹介します。


iframeで枠に表示する別ページの文字の大きさをCSSで小さい文字を指定する

iframeで枠に表示する別ページの文字の大きさをCSSで小さい文字に指定することで文字が枠以外の文字と同じぐらいの大きさにすることができました。以下のように修正しました。


HTML

<ul class="li">



CSS

<head>~</head>の間に記述します。

<style type="text/css">

.li{

  font-size : 80%;

}

</style>


ホームページの実際の表示

iframe要素の表示です。文字の大きさが修正できています。

iframe要素の表示

また、object要素も同じように文字の表示が修正されていました。ですが表示される他のページの上側に少しスペースができた状態で表示されました。ちょっと見栄えが悪いかな(笑)。

object要素

iframe要素とobject要素について下記のリンクで説明しています。参考にしてみて下さい。

2021年5月2日日曜日

HTML5で廃止された【frame要素】の代わりにiframe要素を使用する記述する方法‐HTML・CSSを学ぶ

 前回、HTML5で廃止された【frame要素】の代わりにobject要素を使用する記述方法を検証しました。非常に簡単でフレームを表示できたのでこれは良い方法を見つけたと思っていました。


object要素でフレーム表示すると文字が大きく表示される


ホームページに取り入れて実際の表示を見てみると、今までと変わりなくフレームが表示されていましたが、何かおかしな点があることに気付きました。


フレーム内に表示された別ページのテキストなのですが、そのテキストの文字がフレーム外の文字と比べると、幾分大きく見えるのです。なぜ、文字の大きさが変わったのでしょうか?

フレーム表示


同じスタイルシートで適用されているデザインなので変わらないと思うのですがよく分かりません。このフレーム内に表示されているテキストの文字の大きさを変えることはできないのかなと思って色々と調べてみました。


余り良い検索結果が出てきません。その中から、フレーム内に表示されるコンテンツがテキストページだと、文字は標準の大きさで表示されるというものでした。でも、何か方法はあるはず!?。


スタイルシートで指定すれば文字の大きさは変えられるのではと思っていたのですが、その方法が見つかりませんでした。結局他の方法を探すしかないのかなと結論付けしました(笑)。


とても簡単で使い易いobject要素だったので残念ですが、諦めるしかなさそうです。画像や動画などのコンテンツを表示することは問題ないのでテキストを除いて使用すればとても便利な要素タグなので今後も使用したいと思います。


object要素を使用してフレームに他のテキストページを表示する方法については下記のリンクを参考にしてください。

HTML5で廃止された【frame要素】の代わりにobject要素を使用する記述方法‐HTML・CSSを学ぶ


HTML5では<frame>タグの代わりにiframe要素を使用する


iframe要素はHTML4.1の時は非推奨とされていたが、HTML5では解除されています。良いものは見直され新たに採用されるのですね。でも本当はコロコロと変更してほしくない気分ですがこのiframeについては大歓迎します。


他に適当な対策案が見つからないですね。もっと本腰を入れて探せばあるのかもしれませんが、今は、私の実力範囲で対応できるもので対応したいと思います。


以前のiframe要素のHTML記述方法

<iframe src="sample/menu.html" width="100%" height="300" frameborder="0" marginheight="1" marginwidth="1" scrolling="AUTO" name="PasoNewFrm"></iframe>


HTML5では以下の要素が廃止となっている為、スタイルシートcssに記述して指定します。

width="100%" height="300" frameborder="0" marginheight="1" marginwidth="1" scrolling="AUTO"


スタイルシートCSSの記述例

このコードを<head>~</head>の間に記述します。CSSになります。

<!--iframeCSS開始-->

  <style>

    #ifm {

      border: none;

      width: 100%;

      height: 300px;

    }

  </style>

<!--iframeCSS終了-->


HTMLの記述例

<!--iframeタグ開始-->

<iframe id="ifm" src="text/menu.html"  name="menuFrm"></iframe>

<!--iframeタグ終了-->


object要素にしてもiframe要素にしてもフレームに表示されたテキストメニューの文字の大きさは標準表示となっているようでフレーム外の文字より大きく表示されています。これだとどちらを使用しても良いかなと思います。

メニューの文字の大きさは標準表示


まだ対応策があるかもしれませんので探してみてあったらまた紹介したいと思います。

追伸:下記リンクに対策が見つかりましたので記載しています。

HTML4.1で作成したホームページのHTMLでHTML5.0では廃止(非推奨)となっているタグ要素を修正する‐HTML・CSSを学ぶ


2021年5月1日土曜日

HTML5で廃止された【frame要素】の代わりにobject要素を使用する記述方法‐HTML・CSSを学ぶ

 HTML5で廃止された【frame要素】

私のホームページでは、このフレーム要素を結構使用していて、ある日サイトを表示してみたらこのフレームのところが何かおかしな表示になっていました。


今は元に戻って正常に表示されていますが、なぜ表示が崩れていたのかはよく分かりません。何れこの要素が正常に機能しなくなる日がやってきます。HTML5では廃止の指定をされているのです。

フレームで別ページを表示


HTML4.1で作成されたホームページでは非常に多く使用されているframe要素はフレーム枠の中に指定のページを表示するための要素です。HTML5で廃止された要素タグは、まだ他にも数種類の要素とその属性も含めるとかなりの数に上ります。


今はまだサポートされていて正常に機能しますが、もし完全に廃止されたら今までのホームページに多大な影響を及ぼします。


個人でホームページを運営されている方にとってはページ数にも依りますが、直ぐに対応できる問題ではないので今から少しずつ編集していきたいと思います。


私のホームページで実際はiframeになっていたのですがデザインのところで廃止されたタグが使用されていたのでやはりcssで書き換えが必要でした。例えばframeborder、marginheight、marginwidth、scrollingなどの記述が廃止となっています。


【frame要素】の関連要素


<frame>タグを含めて以下の3つのフレーム関連のタグがHTML5では廃止の指定をされています。この要素を組み合わせてフレームを構成しています。


<frame>

<frameset> /*フレームの分割*/

<noframes> /*フレームが表示されなかった時の代わりの表示*/


HTML5では<frame>タグの代わりに<ifreame>タグを使用


HTML5では<frame>タグの代わりに<ifreame>タグを使用します。「i」が付いただけなのかな?廃止の意味が分からないです(笑)。このifreameもHTML4.01で非推奨だったので、今使用しても大丈夫だろうかと不安になってきます。


ここでは、iframeでは無く、object要素を使用したやり方について検証してみます。iframe要素を使用してフレームに他のテキストページを表示する方法については下記のリンクを参考にしてください。

HTML5で廃止された【frame要素】の代わりにiframe要素を使用する記述する方法‐HTML・CSSを学ぶ


HTML5では<frame>タグの代わりにobject要素を使用する


iframeを使用して他のページのhtmlファイルを呼び込む記述方法よりはobjectを使用して他のページのhtmlファイルを呼び込む記述方法の方が簡単そうに思えたのでこちらを選択してみました。


下記がobject要素を使用したHTMLです。フレームにメニューページを表示してみます。objectに対応していないブラウザがあったときに、テキストを表示して別ウィンドウでメニューページを開くように誘導表示します。

<p>メニューを表示します</p>

<object data="text/menu.html" width="100%" height="300">

<p>ご覧の環境では、object要素がサポートされていないようです。<a href="text/menu.html" target="_blank">menuを別ウィンドウで開いてください</a></p>

</object>


以下の私の更新途中のホームページで、object要素が正常に機能するかどうかを見てみました。正常に機能して表示されました。(^o^)。

object要素でフレーム表示


この方法はテキストファイルの他、画像やアイコン、動画などにも応用できます。

おすすめドリンク

楽天
 
Amazon

私にとって記念すべきブログ投稿となります

記念すべきブログ投稿 ブログ記事を書いている時、なぜか「思えば、遠くへきたもんだ~♪」と昔懐かしい歌の歌詞を口ずさんでいました。現在では、「海援隊」と言うグループ名は知らなくとも「武田鉄矢」ならご存じですよね。 武田鉄矢さんが確か3人でユニットを組んで活動しておられた時の歌なので...