洋風濡れ縁(ウッドデッキ)を作ってみた。
今回は材料を以前買ってあった安価な輸入品のツーバイ材(息子のところにごみ置き場を造るため)とDIY店で売っていた赤松のシラタの角材。
脚になる部分を3脚作成。太い角材の上に溝を彫って、横に木を渡し、下にも横木を嵌めて作成
それを長いツーバイ材でつなぎとめる。いたって簡易な方法。もちろんス全てボルト締め。
但し庭に置くので、底が平らになっていなければならず、今回ここが一番大変だった。穴を掘ってブロックを一個半平らにおいた簡易なもの。
羽根突きの置石も考えたが、これだと脚を低くしなければならず、置石が出っ張ってしまうのでこの形にした。
後はツーバイ材を貼っていくだけだが、柱の間に横木を入れて、止めておきその上で3脚の柱の横木に止める。ここもビス止めだが、ダボで化粧している。
部屋の床とほとんどフラットの高さにした。何とか水平は保てているようだ。
塗装は組み立てる前にあらかじめ塗装しておいて、天板のみ後からもう一度塗った。キシラデコールのチークを使った。
なお、設置後高さがかなりあるので、かみさんの要望で踏み台も作った。二つ作って普段は横に置いて置くことにする。
作りはほとんど同じだが、やや頑丈に作ったつもり。
これで完成。これからは冬だがあったかい日にはここで喫煙・お茶ができそう。木工もここでやれるかも。と楽しみにしている。
レスポンシブデザインのメニューについて
以前既存のサイトをレスポンシブ化する際のメニューについてslicknavというのを紹介した。しかしこれは適さないという向きもあるだろう。
既存の横メニューを2段や1段に表示させたいという場合があるかもしれない。
その場合の技を書いてみる。
いろんなやり方があるだろうが、ポイントはメディアクエリー内でfloatが効かないということとここでもスマホデフォルトで考えるということだ。
具体的に言おう。
普通横メニューはlistを使って、それを左からfloatさせ、メニューの数によってwidthを%で決める。
スマホデフォルトということはfloatを止めて、widthを100%近くにすれば縦にメニューが並ぶ形になる。
しかし、こうするとPC表示の時に改めてfloatさせなければならなくなる。しかし、メディアクエリー内でfloatが効かない。
どうするか。
スマホデフォルトでfloatをそのままにしておいて、widthを100%近くにすればいいのだ。そしてメディアクエリー内で%を変えてやればいい。
例えばメニューが4個だとすれば、50%に近ければ2段になり、25%に近くすれば1段になる。
これが簡単な方法だということに今更気付いたので。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
div#nav ul li{ float:left; width:98%; color:black; padding-top:5px; padding-bottom:5px; text-align:center; font-size:1.5em; border:4px solid black; font-family: 'Nova Square', cursive; background-color: rgba(128, 128, 128, 0.4); } @media only screen and (min-width:768px){ div#nav ul li{ width: 49%; } div#nav ul li:nth-child(odd){ border-right:none; } } @media only screen and (min-width:1024px){ div#container{ margin: 0 auto; width:1024px; } div#nav ul li{ width: 248px; } div#nav ul li:nth-child(2){ border-right:none; } } |
Jimdo無料版でpopup表示
先日Jimdoのサポートをしていて、ユーザーからポップアップ表示がしたいという要求があった。Jimdoそのものには簡単に実装できるアイコンがない。(無料版ですが)
そこで、独自に実装する方法を考えた。
ポップアップ表示はJavascriptやJqueryを使えば、いわば難なくできる。
しかし、Jimdoでそれを使うとなるとちょっと敷居が高い気がする。
特にJqueryはJimdoがもともとPrototype.jsを使っているということもあって、コンフリフトを避ける設定をしなければならなかったり、いろいろ面倒そうだ。
そこで、cssのみで実装できるポップアップ表示を見つけたので、それを試してみた。
http://javascript123.seesaa.net/article/133792048.html
を参考にさせて頂いた。
Jimdo無料版でpopup表示の方法
設定から「ヘッダー部分を編集」を開き
先ずヘッダに以下を書き加える。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<style type="text/css"> <!-- .pop a:hover{ /*マウスが乗ったら*/ position: relative; top: 0px; left: 0px; } .fukidasipop { /*吹き出し本体*/ position: absolute; top:17px; left:20px; display: none; /*何も表示しない*/ padding: 5px; /*内側の余白*/ max-width: 300px; /*ブロックの幅 font-weight: bold; /*文字の太さ*/ text-decoration: none; /*文字飾り*/ color: #ffffff; /*文字色*/ background-color: #b22222; /*背景色*/ border-top:white solid 10px; border-left:#b22222 solid 10px; filter: alpha(opacity=85); /* IE */ -moz-opacity:0.85; / *Firefox・Netscape */ opacity:0.85; /* Opera・Safari */ } a:hover .fukidasipop { display: block; /*ブロック要素で表示*/ } --> </style> |
もちろん、これはあくまで噴出しの設定(css)なので文字色や幅、背景色等はいくらでも設定変更してかまわない。ボーダーをうまく使って噴出しの形を実現しているが、これとて変えてもかまわない。
今度はHTMLだ。
Jimdoでは記事の編集で隠れているメニューを出すと、記事のHTMLが編集できる。
そこに
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<p class="pop">このマスクは、 <a href="javascript:void(0);"> プリーツ構造<span class="fukidasipop"> 吹き出しポップアップ</span></a>です。 <a href="javascript:void(0);"> 新型インフルエンザ <span class="fukidasipop">吹き出しポップアップ </span></a>対策 <br> <br> 吹き出しが少し透けて見えます。CSSでオブジェクトの透明度を操作する <br>Opacityプロパティを使って半透明を実現しています。 </p> |
要するにポップアップで注釈等を付けたい文字列に<a href=”javascript:void(0);”>を付け
ポップアップ自体は<span class=”fukidasipop”>で囲んでやればいい。
ちなみに”javascript:void(0);”はクリックを無効化するおまじない?のようだ。
実際は以下を見ていただければ
http://ogu-tex.jimdo.com/it/
追記 なお、このJimdoサイトでは「プリーツ構造」「新型インフルエンザ」という文字にマウスを載せるとポップアップが表示されるようになっています。
要するに:hoverを使っていますので、iPad等ではうまくいきませんのでご承知おきを。
これについてはまた後日。
tableのresponsive化2
TablePressで作成した以外のtableのresponsive化
これについては以下のサイトに詳しく書かれているのでそれを参考にすればいい。
http://design-spice.com/2012/11/01/responsive-table/
基本的にはやはりmedia_queryを使って、横に長い表を縦の組み替えるか、リスト表示に変えるかする方法。
ここでもdisplayプロパティがよく使われる。
これをワードプレスで使うにはカスタムフィールドが必要になる。
以前の表で一部やってみた。表は以下。
商品番号 | 商品名 | 容量 | 税込卸価 | 詳細 | 購入 |
---|---|---|---|---|---|
01K201 | 家庭用カビ取り剤サール | 1L | 1,296 | 詳細 | 購入 |
02KS01 | 業務用除カビ洗浄剤S1 | 1L | 1,512 | 詳細 | 購入 |
04KS05 | 業務用除カビ洗浄剤S5 | 5L | 6,480 | 詳細 | 購入 |
05K116 | 業務用除カビ洗浄剤S6 | 16L | 20,304 | 詳細 | 購入 |
06KJ31 | 頑固なカビ取り剤J3本セット | 100g | 1,944 | 詳細 | 購入 |
07KJ50 | 頑固なカビ取り剤 | 500g | 2,052 | 詳細 | 購入 |
すでにここではcssをカスタムフィールドにインストールしてある。
これに以下をsample_02.cssとして追加してみる。
1 2 3 4 5 6 7 8 9 10 11 |
@media only screen and (max-width: 420px) { .sample_01 tbody{ display: -webkit-box; overflow-x: auto; } .sample_01 tr, .sample_01 th, .sample_01 td{ display: block; } } |
若干の表示のずれがあるようだけど何とかできる。
これはワードプレスだけに使えるわけではないのはもちろんだ。
tableのresponsive化
日本人はどういうわけだか表が好きだ。
WEBページでも使いたがる。
ところがこの表はレシポンシブには向かない。
要するに狭い画面では表がうまく表示できないからだ。
しかし、そうは言ってもそういう要求はあるのだからやってみるしかない。
いろいろと調べたのでその報告。
まずはワードプレス上での表のレスポンシブ化について
以前紹介したtablepressのレスポンシブ化をしてみる。
tablepressの実装については以前の記事
http://kwski.net/wordpress/1094/を参考にしている。
まず「TablePress Responsive Tables」というのがあるので、
これをダウンロード(https://tablepress.org/extensions/responsive-tables/からできます。)し、プラグインの新規追加から「プラグインのアップロード」を選び、ダウンロードしたzipファイルを選択し、アップロードし、有効化する。
あとはTablePressのShortcode:(ショートコード)に以下のようにresponsive=”xxx”を付与して投稿に貼り付ける。
例えば
1 2 3 4 5 6 |
// 768px以下になるとテーブルを横向きにする場合 [table id=1 responsive="phone" /] // 980px以下になるとテーブルを横向きにする場合 [table id=1 responsive="tablet" /] // 1200px以下になるとテーブルを横向きにする場合 [table id=1 responsive="desktop" /] |
のように。
以前の表をやってみた。
// 768px以下になるとテーブルを横向きにする場合
商品番号 | 商品名 | 税込卸価 | 詳細 | 購入 | |
---|---|---|---|---|---|
01K201 | 家庭用カビ取り剤サール | 1L | ¥1,296 | 詳細 | 購入 |
02KS01 | 業務用除カビ洗浄剤S1 | 1L | ¥1,512 | 詳細 | 購入 |
04KS05 | 業務用除カビ洗浄剤S5 | 5L | ¥6,480 | 詳細 | 購入 |
05K116 | 業務用除カビ洗浄剤S6 | 16L | ¥20,304 | 詳細 | 購入 |
06KJ31 | 頑固なカビ取り剤JJ3本セット | 100g | ¥1,944 | 詳細 | 購入 |
07KJ50 | 頑固なカビ取り剤J | 500g | ¥2,052 | 詳細 | 購入 |
// 980px以下になるとテーブルを横向きにする場合
商品番号 | 商品名 | 税込卸価 | 詳細 | 購入 | |
---|---|---|---|---|---|
01K201 | 家庭用カビ取り剤サール | 1L | ¥1,296 | 詳細 | 購入 |
02KS01 | 業務用除カビ洗浄剤S1 | 1L | ¥1,512 | 詳細 | 購入 |
04KS05 | 業務用除カビ洗浄剤S5 | 5L | ¥6,480 | 詳細 | 購入 |
05K116 | 業務用除カビ洗浄剤S6 | 16L | ¥20,304 | 詳細 | 購入 |
06KJ31 | 頑固なカビ取り剤JJ3本セット | 100g | ¥1,944 | 詳細 | 購入 |
07KJ50 | 頑固なカビ取り剤J | 500g | ¥2,052 | 詳細 | 購入 |
// 1200px以下になるとテーブルを横向きにする場合
商品番号 | 商品名 | 税込卸価 | 詳細 | 購入 | |
---|---|---|---|---|---|
01K201 | 家庭用カビ取り剤サール | 1L | ¥1,296 | 詳細 | 購入 |
02KS01 | 業務用除カビ洗浄剤S1 | 1L | ¥1,512 | 詳細 | 購入 |
04KS05 | 業務用除カビ洗浄剤S5 | 5L | ¥6,480 | 詳細 | 購入 |
05K116 | 業務用除カビ洗浄剤S6 | 16L | ¥20,304 | 詳細 | 購入 |
06KJ31 | 頑固なカビ取り剤JJ3本セット | 100g | ¥1,944 | 詳細 | 購入 |
07KJ50 | 頑固なカビ取り剤J | 500g | ¥2,052 | 詳細 | 購入 |
tablepress 以外のtableのレスポンシブ化については別項で
自作炬燵にヒーター取り付け
自作炬燵にヒーター
自作炬燵についてはかつて報告したけど、そろそろ寒くなってきたのでアマゾンで炬燵用のヒーターを注文。例によって朝頼んで夜には届いた。
始めは簡単につけられると思っていたが、これがなかなか大変。
一つは最近のヒーターが極めて薄くなっていて、かつて使っていたものを基準に作ったものだから新たな加工が生じてしまったのと、取り付けようの螺子が短かったために、ここでも加工が必要になったことだ。
そこで、一旦分解してその加工をやることになった。
ヒーターに差し込むコンセントの形状にあわせて、やぐらの桟に溝をつける。
ヒーターをとめる螺子を入れるため大きな穴を開けてそのねじ山が入るようにし、スペーサーとしてして木を桟につける。
郵便受けを制作
郵便受けの作成過程
先ずは本棚型に躯体を組み立て。前に頂いた長い板を利用。横木は欅の角材、裏板は杉の板。ある材料で組み立てる。
屋根の部分は後で取り付ける形に。傾斜をかけているので、斜めに削る。これがなかなか難しい。蝶番をつけておく。
もちろん外で使うので、外用にキシラデコールを塗装。ちょっと高いけど材料費がいわばただだからいいかということで。
前面は欅の板と神代杉の板を組み合わせて作る。POSTという文字盤は銀杏の薄板を繰り小刀、回し引き鋸で作る。電動糸のこ盤があればいいんだろうけど、手道具でやるのは大変。
玄関に設置。片側を花壇に埋め込んで、下に鉢植えを置いて安定させる。たぶん倒れないでしょう。
displayプロパティについて
cssのdisplayプロパティにはさまざまな値がある。
ただこれまでそんなに気にすることなく、2、3の代表的な値しか使ってこなかった。
今回、レスポンシブでfloatを使おうとして、うまくいかなかったために怪我の功名でこのdisplayプロパティのtableという値を使うことになった。
具体的には1段のレイアウトを2段化する時に、メディアクエリの中でfloatがうまく機能しなかったために、
1 |
display:table; |
を使ったというわけ。これがなかなか便利だった。ソースは以下。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#container{ width:1024px; margin: 0 auto; display: table; } section{ width:68%; display: table-cell; } aside{ width:25%; display: table-cell; } |
親要素に
1 |
display: table; |
を書いて、
子要素に
1 |
display: table-cell; |
を書けばいい。
実際はこれだけの話だが、実はこのdisplay: table;にはさまざまな用途があっていろいろと使えると思う。
段組についてはいろいろと方法があるが、
これについてよく知らなかったのは「不徳の致す所」?でした。
スマホ用メニューslicknavについて
スマホは幅が狭いので横型のメニューは向かない。そこで基本的にはメニューを表示せずクリックした時にメニューがプルダウンすると言うものだ。
しかも、既存のメニューを置き換える形を取ってくれる。レシポンシブには便利だ。
slicknavで検索し、jquery.slicknav.min.js と slicknav.css を入手。
htmlのヘッダに
1 2 3 4 5 6 7 8 |
<script src="./js/jquery-1.9.1.min.js"></script> <link rel="stylesheet" href="./css/slicknav.css" /> <script src="./js/jquery.slicknav.min.js"></script> <script> $(function(){ $('#navigation').slicknav(); }); </script> |
を記述。(もちろんjsやcssの場所は任意だし、既存のメニューの場所も任意)
これだけでOKだ。
ただ、cssにこのメニューを表示する場合は以下を
1 2 3 |
nav{ display: none; } |
表示せず既存のメニューを表示する場合は以下を書いてやる。
1 2 3 4 5 6 |
nav{ display: block; } .slicknav_menu { display:none; } |
(ここではnavに#navigationがある形。もちろんここは任意)
レスポンシブWEBデザインについて
世の中、パソコンからスマホやタブレットに移行している。
従って、WEBサイトもそれに対応しなければならない。
そこで、登場したのがレスポンシブWEBデザインだ。
では、「レスポンシブwebデザイン」とはどういう手法かというと、ブラウザの横幅サイズをwebサイト表示の判断基準にし、ページのレイアウトデザインを柔軟に調整できる手法だと、とりあえずは言える。
デバイス毎のレイアウトが違うHTMLファイルを複数用意するのではなく、1つのHTMLファイルを、CSS3(Media Queries)で制御し、ブラウザの横幅サイズに応じてページのレイアウトデザインを調整できるようにする技法だ。
いわゆる「リキッドデザイン」と似たような感じだが、違いは、
リキッドデザインはブラウザ横幅サイズに応じて長さは可変するが、レイアウトは同一で要素の表示・非表示ができない。
それに対しレスポンシブwebデザインではブラウザ横幅サイズに応じて、要素の表示・非表示も含めてレイアウトが可変できると言うわけだ。
グーグルでもレスポンシブ化を推奨している。
そこで既存のサイトをレスポンシブ化するにはどうしたらよいか。
これがなかなか大変だ。(簡単に移行できるサイトもある。これは既存のサイトのレイアウトによる。)
実際にやってみたので以下報告する。
1.現在のサイトの修正
まず、スマホ用に作り変える(ここが第一のポイント)。始めから作成するならスマホベースでサイトを作ることだ。
ただ、これは意外と簡単。要するに全て全画面で表示できるようにすればいい。
複雑なレイアウトを避けて、コンテンツが順番に並んでいるサイトを作ればいいのだ。
既存のサイトを修正する場合もすべて全画面で展開する形にする。
これをPCのブラウザで見るとまったくおかしな形に思えるが、ブラウザの横幅を狭めてみればわかりやすくなっていることがわかる。
具体的には2段組や画像の配置との工夫を一切やめる。
もちろん幅は%指定にする。100%指定でかまわない。
メニューはPC用に作っておくが、スマホ用に切り替えることのできる
slicknav
というJqueryのプラグインを使う。(これについては別項で)
2.レスポンシブ化1
次に考えなくてはいけないのは、いわゆるブレイクポイントだ。
これはどの幅で表示を変えるかだ。あまり細かくする必要はない。
ここではいわゆるパッド用とパソコン用を用意する。
いずれにしても先ずはhtmlのヘッダに以下の記述を挿入する。
1 |
<meta name="viewport" content="width=device-width,initial-scale=1.0"> |
このviewportについてはいろいろと議論があるようだが、こう書いておけば無難なようだ。
width=device-width
はサイトのサイズをデバイスの横幅にフィットさせて表示すると言う設定で、横スクロールが表示されない程度にフィットしてくれる。
initial-scale=1.0
は拡大率のことでデフォルトの要素の拡大率が100%であることを意味している。
その上でcssに以下の記述を追加する。
1 2 3 4 5 |
@media all and (min-width: 667px) { パッド用の表示設定 } |
1 2 3 4 5 |
@media all and (min-width: 1024px) { PC用の表示設定 } |
ここの表示設定では追加や変更のみを書けばいい。
3.レスポンシブ化2
ただ、こう書くと簡単なようだが、実際はサイトの表示を確認しながら進めるほかはない。
パッド用の設定では、パッドはある程度幅があるので、画像の配置を変更できる。今回実際に行ったのも、画像の配置と文章の幅の設定変更のみだった。
PC用はかなりの変更をすることになる。実はこれはもともとある形に戻せばいいので、しっかりcssが書かれていれば問題はない。
ただ、ここで面白い現象があった。メディアクエリ内でfloatがうまく動作しないという点だ。一方向的なfloatはいいのだが、左右のfloatが効かないという現象だ。
これについても別項で。
とりあえず。