ラベル [e-11]JavaScript の投稿を表示しています。 すべての投稿を表示
ラベル [e-11]JavaScript の投稿を表示しています。 すべての投稿を表示

2023年11月6日月曜日

PCソフトウェア>bloggerで画像を並べて表示

bloggerでやりにくいのが、画像のaタグに必ず style="display: block; padding: 1em 0; text-align: center;"が入ってきて、自由が効かなくなる点だ。また、これが入っているとスマホの表示エリアから少しはみ出てちょっと気になる。

まず、エディッタをHTMLビューに切り替える。いろいろ調べてみたが、やり方として3通りほどあるようだ。

(1)display:flex を使用する

画像の間隔を指定しなくても、適当にあけてくれる。間隔の事が無ければ(3)を使えばいいかなと思うが・・・・。

①並べる画像のグループを、以下のdivタグのコードでくくる。

< div style="clear: both; display: flex; height: auto; justify-content: space-around;" >
  ~
< div >

②各画像個別に付いている divタグ を削除する。

③aタグのstyle要素(display: block; padding: 1em 0; text-align: center;)を削除する。

④このままだと、スマホで表示した時に画像が歪んでしまうので、imgタグ中の height要素は削除しておく。画像の大きさは、widthで指定する。

(2)表の tableタグ を使用する

画像の途中で改行しないが画面からはみだす事がある。説明を画像個別に入れたい時は、もう一列セルを入れそこに書き込む。ほとんど使われないと思うが、説明を入れたい時に便利だ。

①tableタグで表を作る

②tableタグの要素部分は以下のようにする

border="0" bordercolor="#000000" cellpadding="3" cellspacing="0"
style="border-collapse: collapse; width:100%; "

③tdタグ間に、必要な数だけセル(tr)を作る

④各セルに、divタグを除いた、aタグとimgタグの部分を入れる

⑤aタグのstyle要素(display: block; padding: 1em 0; text-align: center;)を削除する。しないと不自然に間隔があいて、全体が画面からはみ出る。

⑥このままだと、スマホで表示した時に画像が歪んでしまうので、imgタグ中の height要素は削除しておく。画像の大きさは、widthで指定する。

(3)img要素をそのまま並べる

特に余計なCSSやHTMLを書かなくても良い。最もオーソドックスなやり方だと思う。

①各画像個別に付いている divタグ を削除する。

②画像全体を divタグ で囲む。画像をセンター表示したい時は、style="tetx-align:center;" を入れる

③aタグのstyle要素(display: block; padding: 1em 0; text-align: center;)を削除する。ただ、画像間を空けたいときは、2枚目以降の padding: 1em 0; を残す。1枚目にいれてしまうとスマホで見た時に、余計なスペースが入り画面からはみ出してしまう。特に「display: block;」の部分が1枚で改行されてしまう原因となっている。。

④このままだと、スマホで表示した時に画像が歪んでしまうので、imgタグ中の height要素は削除しておく。画像の大きさは、widthで決める。

⑤説明を入れたいときは、spanタグで記載し、style要素を (display:block; text-align: left;) とする。spanタグの前後は br タグではさむ。

(4)おしゃれなボックスデザインのcssを応用する

画面が広い場合は画像ごとに改行しない、画面が狭い場合(スマホ)は改行する。写真単体毎に説明文が入れられ、改行しても説明文が泣き別れしない。画像のheightは削除、widthのみ残す。感覚的にはimgタグをそのまま並べたような感じになる。

--------CSSのコード------

.box29 {
    display: inline-block;
    text-align: left;
}

@media screen and (max-width: 300px) {
.box29{
     display: inline;
     text-align: left;
  }
}

.box29 .box-title {
     text-align: left;
}

.box29 p {
}

------HTMLのコード-------

<div class="box29">
  <div class="box-title">ここに写真の説明</div>
  <p>imgタグを書き込む</p>
</div>

2015年12月13日日曜日

PCソフトウェア>FixedMidashiの動作異常

FixedMidashi※は、HTMLのtableタグにおいて、EXCELのように簡単に、見出しセルを固定できる便利なユーティリティであり、ありがたく使わせていただいている。

なんだかんだ言っても、tableタグは便利だし、簡単に表がつくれて重宝しているのだが、HTMLが進化しても全然使い勝手が良くならない。

FixedMidashiは使いやすく、微妙なずれ(数ピクセル)はあるが、個人使用に関しては十分過ぎる性能を持っている。具体的な使用方法は、他に譲るとして、動作異常が起きたので解消方法について記録しておく。

[状態]

見出し部分は固定されるが、見出し表示に異常が出る。(IE Ver.すべて、chromeにて確認)
本体部分は問題なく表示される。

[症状]

スクロールすると見出しのみがウインドウをはみ出して、表示される。
見出しと本体表の罫線が合わない
見出しのみ少し右にずれる場合もある。
リンク部分の表示がスクロールされない。(置き去りにされる)

[原因]

見出し部分の1行全体に縦書き指定があると、正常に動作しない。
本体表に縦書きの行が2つ以上あると、正常に動作しない。
セル単位で部分的に指定してあると問題ない(?)

[対策]

知識がなく、FixedMidashi.js部分の書き換えはできないので、対策といっても単なる回避方法しか思いつかない。
  • 縦書き指定をはずす。(ごもっともな対策だが縦書き使いたい)
  • 1文字づつ<br/>を挿入、中央揃えにし、擬似的に縦書きにする。(面倒だが確実、ダサい。折り返しが出来ない)
  • テキスト部分を<div>で囲み、そこにCSSで横幅を1emで指定する。(具体的にはよくわからない、折り返しがうまく出来ない)
限られた画面スペースで表を作らなければいけないので、横幅を節約するために、最近のブラウザで簡単に縦書き指定できるのはありがたい。しかし、この縦書き、IEでは一応期待どおりになるのだが、chromeでは変な表示になる。chromeのユーザーとしてはこの点を改良してもらいたいのだが。

※FixedMidashi:http://hp.vector.co.jp/authors/VA056612/fixed_midashi/manual/index.html

2015年6月26日金曜日

PCソフトウェア>Bloggerのブログ文書内にjavascriptを埋め込む

bloggerのブログ文書内にjavascriptを埋め込む(記述する)場合、普通に書いても、エディッタに無視され空白になるか、余分な<br>タグなど入ってしまい、javascriptが正しく実行されない。
サーバーから送られるブログのHTMLの内容が、変えられてしまうのだが、これの回避方法について、調べてみた。

(1)ガジェット部分に記述する

ガジェット部分に記述されたものは、改変されずそのまま送信されるので、確実に実行できる。しかし、ガジェット部分でしか実行できないので、たとえば本文中の画像などに何か効果を与えるなどの場合には、適用できず、ブログの文書の仕掛けなどには、使えない。ガジェット部分に記載する時計とか、カレンダーなどに使用することができる。実際、このブログでは、そのように使用している。


(2)ブログの文書内に記述する

記事の入力で、HTML入力モードにして、

<script type="text/javascript">
<!-- ←①

 ここにコードを書く

//--> ←②
</script>
のように記述するのだが、①②の部分は書かず、いきなりコードを記述する。この様にすると、ソース部分は改変されない。


コード記述について

①コードは、<pre><code>~</code></pre>のタグで囲む
②中に入れる文字(コード)は、文字参照を使用する。コンピューターは、HTMLのコードと、通常の文章の中にある文字を区別できないので、&で始まる文字としてあらわす。
 一括変換のツール:http://amenti.usamimi.info/ltgtamp.html
③javascriptは、<head>~</head>間に書かなければいけないが、<body>~</body>でもエラーが出ず、何とか動いている。


出典元:http://www.kuribo.info/2012/05/blogger-html-javascript-css.html

2014年6月19日木曜日

PCソフトウェア>JavaScriptで演算子の'+'が機能しない

[現象]
数式を記述し、'+'で数値演算を行っているつもりだが、なぜか文字列の結合になってしまう。
'-'など他の演算子は、正常に動く。

[原因]
変数の宣言が不十分

[解説]
JavaScriptでは、変数の型を宣言しなくとも、スクリプトの実行には特に障害がない。それは、JavaScript(あるいはブラウザ?)側で、適当に解釈し、文字列処理か数値演算かを判断・実行しているため。
文字列処理と判断されると、
'3'+2='32'
3+2=5・・・・・・・・・>こちらではない
と文字の結合になってしまう。

[回避方法]
①'+'を使用しない
演算子の'+'を使用せず、'-'を使用する。ぱっと見、わかりにくい。
× a=a+b;
○ a=a-(-b);

②varで変数の宣言を行う
宣言とか特にしなくとも、動作するが、varとNumberオブジェクトで、変数をNumberオブジェクトに格納し、数値型に変換して、演算をする。こちらの方が、後から見た時、わかりやすい。

var Number(b);
a=a+b;

※varを省略すると、グローバル変数として認識される。

③演算の前に、変数が数値型である事を明示する
具体的には、使用する数値に、値の変わらない演算をしておく。後から見返すと、よくわからなくなる。

b=b-0;
a=a-0;
a=a+b;

④文字列→数値へ変換する関数、parseInt()、parseFloat()を使用する

parseInt(文字列 {、基数})→整数に変換
parseFloat(文字列 {、基数})→小数に変換

・パラメーター
文字列:変換する文字列
基数:省略可。進数を指定(2,8,10,16)。省略時は10進法となる

・戻り値
文字列の先頭が数値でない・空文字→NaNを返す
数字で始まり、途中から数字でないものを含む文字列→数字の部分までを数値に変換する


※スクリプト関連の予約語('JavaScript'など)を、半角文字で記述すると、本エディッタが混乱するのか、文法チェックでエラーとなり保存できないので、全角文字にしてある。

(単なる、メモ書きなので、間違いがあるかもしれない。)
+++