2024年10月11日金曜日

SVGを使って境界線をデザインするのとその他便利なcss

(1)SVGを使って境界線をデザインする

html部分


<div class="sen"></div>
 

CSSの部分

基本的な記述はこれでOK。詳細については、順次示していく。


<style>

.sen {
 
    /*---解説1*/
    position: relative;
    
    /*---解説2*/
    width: 100%;
    height: 25px;
    
    /*---解説3*/
    /*上右下左の間隔を一括で決める*/
    margin: 40px 0px -30px 0px;
    
    /*上右下左の間隔を別々に決める*/
    margin-top: 40px;
    margin-right: 0px
    margin-bottom: -30px
    margin-left: 0px;
    
    /*---解説4*/
    /*上右下左を一括で決める*/
    border: 2px solid red;
    
    /*上右下左を別々に決める*/
    border-top: 2px solid red;
    border-bottom: 2px solid red;
    border-right: 2px solid red;
    border-left: 2px solid red;    
    
    /*解説5*/
    background-color: skyblue;

    /*解説6*/
    clip-path: polygon(1% 30%,  3% 40%,  36% 40%,  39% 100%,  55% 100%,  58% 40%,  95% 40%,  97% 30%,  97% 0%,  80% 1%,  77% 30%,  18% 30%,  15% 1%,  1% 1%,  1% 30%);      
}

</style>

実際の表示



解説1

・potitionは、これから描く図形のスタート地点決め的な記述で必須項目。

static 初期値(何も記述しなければこれになる)
位置を指定できない
重なり順を指定できない
要素の高さを保持する位置の指定は何もしていない
positionプロパティの解除に使用される。
absolute 基点からの絶対配置を指定する。
relative 基点からの相対配置を指定する。
fixed 画面の絶対配置を指定する。
ページではなく画面に表示されている領域を起点として配置できる。
スクロールされず、位置を固定できる。
sticky 画面の絶対配置を指定するが、fixedとは少し違う。
古いブラウザではサポートされていない。
全体をdivで囲う事。
親要素(stickyのある段落)はスクロールされず、子要素(stickyのない段落)がスクロールされる。
子要素がなくなると、親要素はスクロールされる。
z-indexで重なり順を決める。

解説2

・これから描く図形の、描画範囲を決める記述で指定必須。
・単位は、pxでも%でも他の単位でも良い。
・widthは横幅、heightは縦幅。

解説3

・marginは、描画範囲の外側の間隔を決める記述。
・まとめて記述してもいいし、各辺毎に記述しても良い。
・描画範囲内部の間隔はpaddingを使用。

解説4

・borderは、描画範囲の境界の色を決める記述。
・まとめて記述してもいいし、各辺毎に記述しても良い。

解説5

・background-colorは、これから描く図形の色を決める記述。
・切り抜かれた描画範囲の色=図形の色を、決めるためのもの。
・色の代わりに画像を指定したり、アニメーションを指定できる。
・何か模様を付けたい場合は、背景画像に書き込む。図形そのものを修飾する事はできない。

解説6

・clip-pathは、解説2で決めた領域を、切り抜く座標を決めるための記述。図形を描くのではない。
・図形の内側の領域が透過になって、下地にあたる解説5の色が表示される。
・描画範囲の左上を(0,0)として座標値を決める。
・polygonは、複数の座標を指定して図形を描く。その他、circle()=円形、ellipse()=楕円形、inset()=四角形。
・図形の境界色や太さは指定できない。塗色も指定できない。(透過なので)
・書式 clip-path: polygon(値X-1 値Y-1 , 値X-2 値Y-2 ,・・・・・)
 [①単位は%かpx ②2つで1組 ③最後の値は原点に戻す]
・領域内(ボーダー含む)を切り抜くので、解説4の境界を見せるには座標指定を境界位置より内側にする。(0 0→1 1)

その他

・clip-path内に、文字を入れたい場合は、before、after を使う。
・<style>内で定義しておくと、値を変えたい場合に便利。


.sen::after {
content: "GANDUM";/*表示文字*/
position: absolute;
top: 65%;
left: 50%;
transform: translate(-50%, -50%);
color: white; /* 文字色を指定 */
font-size: x-small; /* 文字サイズを指定 */
font-weight:bold;
}

.sen::before {
content: "";/*文字が無くても記述必要*/
position: absolute;
top: 52%; /* 位置を調整 */
left: 43%; /* 位置を調整 */
width: 7px; /* 丸のサイズ */
height: 7px; /* 丸のサイズ */
background-color: var(--sc2); /* 丸の色 */
border-radius: 50%; /* 丸にする */
}


(2)変数を使用する

<style>内で定義しておくと、値を変えたい場合に便利。

html部分

<!-- 全域で使用可能 -->
 border-top: 2px solid var(--sc1);
 border-bottom: 2px solid var(--sc2);
 border-right: 2px solid var(--sc3);
 border-left: 2px solid var(--sc4);

<!-- セレクタ 'iti' 内でのみ使用可能 -->
<div class="iti">
 border-top: 2px solid var(--sc1);
 border-bottom: 2px solid var(--sc2);
 border-right: 2px solid var(--sc3);
 border-left: 2px solid var(--sc4);
</div>

css部分

/* 全域で使用可能 */
 :root {
  --sc1: red;
  --sc2: blue;
  --sc3: black;
  --sc4: yellow;
}

/* セレクタ'iti'内でのみ使用可能 */
 .iti {
  --sc1: pink;
  --sc2: pink;
  --sc3: pink;
  --sc4: pink;
}


(3)あるセレクタ以降に、違う値を変数に使用する

<style>内で定義しておくと、指定したセレクタ以降、値を変えたい場合に便利。

html部分
ページ内にダミー(?)で置いておく。これ以降は、#kokoで定義された変数の値が適用される。

<div class="#koko"></div>

css部分


/*全域で使用可能*/

 :root {
  --sc1: red;
  --sc2: blue;
  --sc3: black;
  --sc4: yellow;
}

/*idが、koko 以降に使用可能 */

#koko ~ * {
  --sc1: pink;
  --sc2: pink;
  --sc3: pink;
  --sc4: pink;
}

2024年7月8日月曜日

DIY>刈り払い機の飛散防止カバーを作ってみた。

刈り払い機の刃を、回転刃からワイヤーに変えたところ、より一層はげしく草や土が飛んでくるようになった。
これを解消するべく、飛散防止カバーを作ってみた。

1.正規品

もともと付いていたものだが、あまり防御してくれない。回転刃用なので、あたりまえか。

2.新たに購入した飛散防止カバー

一通り防止してくれるが、上からと下から結構草が飛んでくる。特に上側の高さが足りないのか、顔に時々直撃する。しかし、1に比べたら全然OK、飛散物も長靴と心臓より上に細かいのがくっついている程度だ。


そこで、上側を厚紙で高くして見たところ、だいたい防御してくれたし顔の痛みはない。しかし、回転部分が見えず刈りにくい。かと言って透明にしても草とか付けば結局見えない。


3-1.飛散防止カバーを改造する(1)

飛散防止カバーを逆さに取り付け、下側に布製のガードを取り付ける。

3-2.飛散防止カバーを改造する(2)

飛散防止カバーの上側にガードを取り付け、さらに防御性能を高める。

4.一から自作する

いろいろなwebサイトを調べると、左側を主にガードし、高さも結構あるものが多い。それならば、ある程度刈払い機のカッター部分は見える。


まず、取付棒①と②をビスで止める。


下防御板は、地面に沿って曲がり、隙間ができず完全に防御出来る様に柔らかい素材を使用した。100均の自動車用足元マットだ。ただ、やはり少し硬く、温度がちょっとでも低いとあまり曲がらない。


傘釘で止めてゆく。上面を止めたら側面も止めて強度を出す。


側面を止めたら、飛び出した釘をペンチで切りヤスリをかけて平らにする。


上防御板を取り付ける。丁度いいサイズのベニヤ板があったので使用する。有用だとわかったらもう少し見栄えのいいものを作る。


ビスで適当に止めておく。



一応完成。
裏側(後)



表側(前)

2024年6月9日日曜日

家庭菜園>サツマイモの栽培

6月9日

サツマイモの苗を20本植えた。

苗は、あらかじめポットに植えて自宅で水をやり、発根させておく。


起耕し、中度化成をひしゃく1.5杯まき、畝を立てる。
黒マルチを敷き、その上に苗のポットを置いてゆく。



マルチに穴を開けながら植えてゆく。2列目のマルチにも同じように植えてゆく。


場所が余ったので、そこら辺に生えていた赤紫蘇を植え替えてみた。

6月12日

変化はないが、雨が無く暑い。

6月15日

相変わらず暑い。

1本元気ない。

紫蘇は大丈夫そうだ。

6月20日

やっぱり枯れてた。

7月5日

枯れたところに、他の株から取った枝を挿し木した。他の株は大丈夫そうだ。 紫蘇も順調に大きくなってきた。ちょっと青いけど。

2024年6月6日木曜日

DIY>ディスクグラインダーボックスを作る

今回は、ディスクグラインダーのケースを製作した。保管・持ち運び・使用時の置台としてあれば便利かと思い考えてみた。

かなり重く持ち運びに大変なので、そこらへんを重点的に作った。まずは、本体の写真と寸法。ちなみに本体は中古で購入した。すでに何回か使用したが、鍬や草かきの刃がボロボロになったのを直して、研いだところ大変作業が楽になった。

製作のイメージ
●浅い箱を2つ重ねてグラインダーを取り出し易くし、置台としても使用する。
●蝶番で開け閉めできる様にする。