プログラミンGOO

プログラミングナレッジ、ワードプレス、広告収入等について、気づき・備忘録を残していきます。

HTML備忘録

【概要】

■公式ドキュメントはMDN

■htmlファイルの命名規則はケバブケース(ハイフンつなぎ)

テンプレート

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="./css/style.css">
    <title>tableタグ整理</title>
  </head>
  <body>
    ~code~
    <script type="text/javascript" src="js/main.js"></script>
  </body>
</html>

【基本的な要素】

■cssの読み込み
<link rel="stylesheet" href="css/styles.css">
■引用符
<blockquote>引用したい文章</blockquote>

//引用にリンクを付けたい場合、city属性を設定するとリンクを設定してくれるだけでなく、リンク先のタイトルを文字列として取得して表示してくれる。
blockquote cite="https://dotinstall.com"
■画像とリンク
<a href="" target="_blank" rel="noopener noreferrer">
  <img src="img/blog.png" width="20" height="20" alt="ブログサイトへのリンク画像です">
</a>

※別タブで開かせたい場合、リンクは" target="_blank" rel="noopener noreferrer"を設定しておく。
これを指定しないと、リンク先が外部サイトだった場合に、外部サイトからこちらのサイトのURLの書き換えを行うことができてしまう。
>|??|
a href="" target="_blank" rel="noopener noreferrer"

・そのページ自身を読み込むにはhref属性を空にしておく

<a href="">replay?</a>
■文字を成型せずに出力 ※インデントも表現されてしまうので左詰めにすること
<pre>

<code>

&lt;p&gt;

  いますぐに&lt;br&gt;

  はじめてみよう&lt;br&gt;

  HTML

&lt;/p&gt;

</code>

</pre>
■説明リスト
<dl>

  <dt>項目</dt>

  <dd>説明</dd>

  <dt>項目</dt>

  <dd>説明</dd>

</dl>
■ボタン
<input type="button" value="OK">

もしくは

<button>OK</button>

・disabled属性で無効化

<button disabled>OK</button>
■その他のタグ
・section

・article

・time

・nav

・header

・footer

・hr //転換

【form部品】

name: 属性名を指定

value: 値

type: 仕様を指定(text, checkbox, radioなど)
■1行の入力フォーム:input
<input type="text" value="初期値">

type="password" で伏字

<input type="text" placeholder="入力してね">
■複数行の入力フォーム:textarea

初期値は文字をタグで囲えばOK



■チェックボックス:type="checkbox"
<label><input type="checkbox">iPhone</label>

<label><input type="checkbox">Android</label>

checked属性で初期値

<input type="checkbox" checked>




*** ■ドロップダウンリスト(プルダウン):select option

  <select id="name" size="2">

    <option>田口</option>

    <option>佐藤</option>

    <option>山田</option>

  </select>

・属性

size="2" :2行表示

multiple :複数選択可能

<option selected>田口</option>

とすると、その項目が初期値として選択される




*** ■ラジオボタン

※name属性を使用して同じ要素ということを明示する

<label><input type="radio" name="phone">iPhone</label>

<label><input type="checkbox" name="phone">Android</label>

checked属性で初期値
■label forとidで紐づけ
<label for="name">名前</label>

<input id="name" type="text">




くくる場合はfor、idは不要

<label><input type="radio" name="phone">iPhone</label>

<label><input type="checkbox" name="phone">Android</label>
■部品をグループ化:fieldset

キャプション:legendタグ

<fieldset>

  <legend>お使いのスマホ</legend>

  <label for="name"><input type="checkbox">iPhone</label>

  <label for="name"><input type="checkbox">Android</label>

</fieldset>
■その他の部品
<input type="color">

<input type="date">

<input type="number">

<input type="range">
■入力した値を送信する:form,submit

action属性で送信先 自身に送信する場合は空で作成

method属性で形式を追加

配下の部品については、バックエンドで識別できるように

name属性を付与しておく

<form action="process.php" method="post">

  <label>担当者名 <input type="text" name="username"></label>

  <label>タスク <input type="text" name="task"></label>

  <button>追加</button>

  <input type="submit" value="送信">

</form>

上記のフォームをsubmitするとフォームのデータが送信される。

もしくは、送信ボタンのみを作成し、JavaScriptでクリックイベントを付与、

そしてformを.submit()する方法もよく用いられる。

Bootstrap備忘録

概要

  • twitter社の開発したテンプレートカスタマイズツール
  • jQueryのようにWebと接続して使用するか
  • ダウンロードして使用する。
  • utilitiesのcssはimportantが利いてしまうので注意する。

【フォントの装飾】

■色
primary //スカイブルー

success //緑

danger //赤

warning //黄色

info  //水色

light //アイスグレー ※あまり見えないかも

white //白
■サイズ
small

middle

large
■文字色
text-danger //赤

text-light //白?
■背景色
bg-primary
■太字
font-weight-bold

font-weight-normal //太字を外す※h2とか
display-4 //textの大きさ指定 1~4
■左右中央揃え
text-center

text-right //右
■上下中央揃え
d-flex align-items-center

【画像】

・中央揃え: img-fluid

・円: img-circle

・角円: img-rounded
■幅の指定
w-25 //width: 75% //25,50,75,100で指定

h-25 //heightの指定

【配置・レイアウト】

■画面幅

BootStrapではカラムは12個に分割されている。

xs,sm,md,lg,xlで定義でき、そのときにカラムをいくつ使用するかでレスポンシブにできる。

ポイント

sm :576px以上
md :768px以上
lg :992px以上
xl :1200px以上

<div class="col-md-4">
//画面幅がミドルサイズのとき、このdivはカラムを4/12使用(すなわち画面を3分割する)

基本的な考え方はまず最小値を指定する

col-12  //スマホなど画面が最小の時は画面いっぱい

次に画面が大きくなってきた場合を考える

col-sm-6  //576px以上になったら画面半分で切る
■マージンとパディング

マージン

m-3: 全方位3rm //sizeは0~5(0.25rem~3.0rem)marginであればautoも可

mt, mb, ml, mr

my-3: 上下3rm

mx-3: 左右3rm

mt:margin-top, mb:margin-bottom

パディング

上記のmをpに変える




※h3などの見出しにはマージンがすでに付与されていて設定できないのでパディングで



■非表示
d-md-none //mdサイズの時display :none;

d-md-block //mdサイズの時のみ表示
■カラムの順序変更
order-sm-2

【ボタン】

btn btn-primary btn-sm

sm :小
lg :大

【リスト】

装飾なし:<ul class="list-unstyled">

横並びリスト:<ul class="list-inline">

【テーブル】

基本クラス

class="table"

tables-bordered

tables-hoberrows

tables-striped

【フォーム】

参考:
Forms - Bootstrap 4.1 日本語リファレンス

各アイテムをform-groupでくくり、inputにform-controlクラスを付与する。

<form>
  <div class="form-group">
    <label for="exampleInputEmail1">Email address</label>
    <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email">
    <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>
</form>

プルダウン、テキストエリアなどinputタグではない場合は以下。

//プルダウン
<select class="form-control">
  <option>1</option>
  <option>2</option>
</select>
//テキストエリア
<textarea class="form-control"></textarea>

チェックボックス、ラジオボタンは以下のようにform-check、form-check-inputを付与する

//チェックボックス
<div class="form-check">
  <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">
  <label class="form-check-label" for="defaultCheck1">
    Default checkbox
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="checkbox" value="" id="defaultCheck2" disabled>
  <label class="form-check-label" for="defaultCheck2">
    Disabled checkbox
  </label>
</div>

//ラジオボタン
<div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
  <label class="form-check-label" for="exampleRadios1">
    Default radio
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
  <label class="form-check-label" for="exampleRadios2">
    Second default radio
  </label>
</div>

【実装例】

<div class=”container”> //大枠にcontainer

<div class="row"> //折り返す可能性があってもrowは分けない

//rowを切るのは確実に次の行に行きたい場合のみ

//thymeleafでループする場合はrowの直下に仕込むかな

<div class="col-lg-6">

//colクラスは単独でつける

//ここにマージン付けるとcolがうまく改行しなくなる

<div class="bg-light edit-img-frame">

<h4>タイトル</h4>

<div class="edit-img-div">

<img class="edit-img">

</div>

<ul class="edit-img-nav">

<li class="img-nav-item">表示順を変更</li>

<li class="img-nav-item">削除</li>

</ul>

</div>

</div>

</div>

</div>

【appendics】

ナビゲーションバーの一部を右寄せにしたい

参考:https://qiita.com/hmmrjn/items/6f5fd65ab8c58cd7a6d6

【導入方法】

以下の2種類の方法がある

  • BootStrapが公開しているURLにアクセスして使用する
  • BootStrapをファイルとしてダウンロードし、プロジェクト内に配置して参照する
BootStrapが公開しているURLにアクセスして使用する

BootStrapが公式に公開している参照先を設定する
参考:https://getbootstrap.jp/docs/5.0/getting-started/introduction/

BootStrapをファイルとしてダウンロードし、プロジェクト内に配置して参照する

ダウンロードページから
Compiled CSS and JS > Downloadをクリック
するとzipファイルがダウンロードできる。中にはたくさんのファイルが入っているが、いずれも基本的な機能は似ていて、必要な仕様に合わせて適宜どれか1つを選べば良い。
cssから1つ、jsから1つ選び、通常のcss、jsファイルと同じ場所に配置して、通常のやり方で参照すれば使用できる。
僕は普段、bootstrap.min.cssとかを使用している。通常のbootstrap.cssと比べ何ができない、といった類の問題に出くわしたことは今のところない。
ちなみに上記ダウンロードページは最新のBootStrapバージョンがデフォルトとなっているので、過去のバージョンが必要な場合は右上のプルダウンからバージョンを選択する。

■ヘッダーにメタ情報を追記
<meta name="view">

これいるのかな?

テンプレートの使用

用途に応じてスニペット(パッケージ?テンプレート?)が用意されている。
参考:Examples · Bootstrap v5.0
他にもサードパーティーのテンプレートは多々あるが、Nodeとかフレームワークを使っていることが多く、作りも繊細だったりするので、最初は上記の公式テンプレートを使用するくらいにとどめておく方が良いと思う。

【エラー対応】

チェックボックス(checkbox)のDOMにrowを設定したらはみ出る。
>親要素にしっかりclass="container"を付けているか?
rowやcolはこのクラスを前提としているため設定していないとレイアウトが崩れることがある

//正しい構成
<div class="container">
  <div class="row">
    <div class="col">
    </div>
  </div>
</div>

ちなみにcontainer-fluidを使うと固定幅でなくブラウザ最大幅に合わせてくれるのでメニューバーなどに設定すると便利。

CSS flexbox備忘録

flexboxを使用するメリット

・要素の並べ替えや順序の変更が楽

・余白や余剰分の整地、均等幅配置など要素の配置方法がシンプル

・要素の重ね合わせにも柔軟に対応




【基本事項】

■構成

・コンテナで領域を定義

・コンテナの中にflex Itemを配置

・配置方向(flex-direction)の初期値はrow(行)

・rowの場合、行方向をmain axis 列方向をcross axisと言う




■指定方法

親要素に以下を指定

display: flex;

■範囲

適用範囲は直近の子要素のみ





【コンテナ単位の操作】

■方向と順序

flex-direction: column; //縦に並べる
flex-direction: row-reverse; //右から並べる

■折り返し

flex-wrap: wrap; //デフォルトはno-wrap(折り返ししない)

※方向と順序・折り返しに関しては

flex-flowで同時に指定も可能

■要素を横方向に均等幅で配置する

親要素
display: flex;

子要素 ※均等幅で配置したい
flex: 1;

■中身を揃える :justify-content

justify-content: center; //横方向に中央揃え ※flex-endで右揃え、flex-startで左
justify-content: space-between; //要素間の余白を均等する
justify-content: space-around; //paddingを均等に分配


・縦方向に揃える

align-items: center; //縦方向に中央揃え ※flex-endで下揃え、flex-startで上
align-items: stretch; //縦方向に均等に拡大して配置
※heightがあると機能しない

・中身のコンテンツに合わせて行の高さをそろえる

align-content: flex-start; //justifyと同様にbetweenなど使用可能


【アイテム単位の操作】

■アイテムの並べ替え :order

order: 1; //初期値は0なので他のアイテムより後ろにくる

■特定の要素だけ配置軸方向を変える :align-self

align-self: flex-end; //この要素のみ縦軸最下段に設定

■余白やはみだしを調整する :flex

※grow(余白),shrink(オーバー),basis(基準)を同時に指定している

※初期値はflex: 0 1 auto; //autoは要素の中身の大きさ

第1引数(grow):余白を分配する際の比率

第2引数(shrink):余剰を削る分の比率

第3引数(basis):要素の大きさpx




■余白のコントロール :margin: auto

margin: autoを指定することで、指定の要素に余った余白を足し上げることができる。

そうすることで、要素自体の位置が変わるため、配置のテクニックとして用いられる。

例)

box1、box2、box3、があり、余白が右に60pxあったとする。

ここで、box3に margin-left: auto を指定すると

box3の左側にに60pxの余白がmarginとして含まれるようになるため

結果として、box3が右寄せされる。




■画像付きリスト

.container {
  display: flex;
  margin-bottom: 1em;
  align-items: flex-start;
}

とすると簡単に画像付き記事を作ることができる

※今まではfloatとclearを使わなければならなかった




■レスポンシブ対応への応用

@media all and (max-width: 600px) {
  .class {
    flex-direction: column;
  }
}

と指定すると600px以下の画面幅で縦並びにシフトされる

atom 備忘録

【atom導入】

以下の公式サイトからダウンロード
Atom

【背景を白にする】

File>Setting>Themes
UI Themeと、Syntax Themeが『One Dark』になっているので、『One Light』に変更する。

【折り返し設定】

File>Setting>Editor>SoftWrapをONにする

【パッケージ】

インストール方法
File>Setting>install
※Packagesはすでにインストールされているパッケージの管理のため、インストールの場合はinstallから

■日本語化

Japanese-menu

■終了タグを自動挿入

タグを閉じようと『/』を入力した時点で閉じタグを自動補完してくれる おすすめ
atom--less-than-slash
※less-than-slashを試したが機能しなかったのでこちらを使用

■開始時に>で閉じると終了タグを自動作成

ちょっと使いづらい
パッケージ>autoclose-html



■予測変換

パッケージ>autocomplete-plus
※初期設定だとEnterでも予測変換を確定してしまうので、改行しようと思ったらなぞの変換が実行されることがある。
回避するには
File>Settings>Packages>Autocomplete Plus
Keymap For Confirming A Suggestionの項目で
tab always, enter when suggestion explicitly selected を選択する。

■同じ単語をハイライト

パッケージ>highlight-selected



【設定】

■インデントアシスト

エディタ設定>インデントガイドを表示



【基本操作】

■コメントアウト

Ctrl + / 


■同じ語句を選択

Ctrl + D

■行の削除

Ctrl + Shift + K

■行の複製

Ctrl + Shift + D

■インデント

Ctrl + [(左角括弧) 左にインデント
Ctrl + ](右角括弧) 右にインデント


【参考】

https://www.terakoya.work/atom-shortcut-key-code-edit/

GoogleChromeの画面が青い?ブックマークも消え、『ブラウザは組織によって管理されています』の謎のメッセージも

とある日の朝、PCを開くと何かがおかしい。

ブラウザが青く、ブックマークも消えている

いつも使用しているロームのブラウザの画面が青いのだ。

 

クローム画面青い

定期的に切り替わるクロームのアップデートか?と思いそんなに気にしていなかったのだが、

なんと、ブックマークも消えている

そして、Chromeを起動すると、タスクバーに固定したChromeのアイコンとは別アイコンで開くようになっている。これも今までなかった仕様だ。

何かがおかしい。そして、このままでは仕事ができない

様子をさらに深く探っていると、設定画面に今までに表示されていなかった謎のメッセージを発見。

お使いのブラウザは組織によって管理されています

ブラウザは組織によって管理されています。

『ブラウザは組織によって管理されています』

???

ブックマークマネージャーやキャッシュクリアなどで幾度となく設定画面は見てきたが、こんな文字は無かったはずだ。

これはプライベートPCなので、組織に管理される筋合いはない。

原因は?

何かしたっけな…?

と思い返すと、1つ思い当たることが。

その日の前日に、彼女がうちに来ていて、仕事でどうしてもPCを開かなければならないらしく、PCを貸したのだ。

そして彼女は会社のアカウントでGoogleにログインした。

はっきりとこれが原因とはわからないが、それ以外に思い当たることがない。

Chromeの管理ポリシー

この記事に行き着いた人の中にはGoogleの公式ページの説明を読んだ人もいるはず。

どうやらGoogleの管理ポリシーというのが追加された可能性がある。

会社のアカウントにログインしたことで、管理ポリシーが書き込まれてしまった?

しかし、先ほどのページを見た方はきっと僕と同じように説明が全然わからず絶望したのではないだろうか。

追加された管理ポリシーを削除するために、Microsoftのドキュメントを参照してレジストリをいじれだと??

そしてそのMicrosoftドキュメントはまんべんなく英語で書かれているときた。

無理だ。盛大にPCを壊してしまうリスクの方がはるかに高い…

対応・解決した方法

まずは解決する可能性のあるところから探っていこう。

ということで、GoogleChromeの再インストールから始めることにした。

しかし、ブックマークはどこかに残っていないのか?

ということで、ブラウザをシークレットモードで起動してみると、お、あった!

chrome_secretmode

シークレットモードではしっかりブックマークが残っている。

ちなみにシークレットモードの起動方法は右上の設定から。

chrome_browser_setting

ということで、ブックマークをエクスポートしておく。

ブックマークのエクスポートは、

直前で紹介したシークレットウィンドウの起動と同様、右上にある設定(3点リーダのアイコン)からブックマークマネージャーを開く。

そして、ブックマークマネージャー画面でも、右上の設定(3点リーダのアイコン)を開き、ブックマークをエクスポート。

ブックマークがファイルとして出力される。

同じ位置にあるブックマークのインポートを使ってそのファイルを読み込めば、ブラウザを再インストールした後にブックマークを復活できる。

Chromeブラウザを再インストール

Windowsの検索からコントロールパネルを開く。

プログラムのアンインストールでChromeブラウザを一度アンインストールする。

そして、Chromeの公式サイトから改めてChromeブラウザを再インストール。

これで青い画面は解消された。

しかしブックマークは復活しなかったので、先ほどエクスポートしておいたブックマークを紹介した手順でインポートすると、ブックマークも復活。

あとは『ブラウザは組織によって管理されています』のメッセージのみだ。

Chromeの管理ポリシーを編集する

前述したように、Chromeレジストリを編集することで、作成されてしまった管理ポリシーを削除すれば『ブラウザは組織によって管理されています』のメッセージは消えるはず。

ということで、もっと簡単にレジストリが編集できる方法がないか調べたところ、簡単にレジストリを修正できるやり方を発見。

winボタン+R でファイル指定実行窓を開く。

ここで『regedit』と入力すると、レジストリエディターを開くことができた。

以下のパスにあるファイルがGoogleChromeの管理ポリシー。

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome

registory_editer

このパス構成をみるに、この中のファイルを編集しても、Chrome以外には影響を及ぼすことは無いようだ。

万一、Chromeブラウザに異常が起きても、またインストールしなおせばいい。

このフォルダの中にある、[ExtensionInstallSources]が今回の元凶となっているので、このファイルを右クリックで削除した。

これで無事、『ブラウザは組織によって管理されています』のメッセージも消えた。

まとめ

それにしても今回の原因は何だったのか…

レジストリを編集しなくてはいけなくなるような修正なら、ブラウザ側でしっかり警告を出してほしいものだ。

canvaでテキスト等に枠線を作成する方法!

ロゴやバナー作成の人気ツールcanva!

今回このツールを使用していて枠線の作り方が少しわかりづらかったため方法を紹介しておきます。

一般的な画像編集ツールでは、テキストボックスなどを作った場合に枠線を設定することができるかと思います。

しかしcanvaではその機能が無く、テキストを枠線で囲いたい場合は別途枠線を作成する必要があります。

枠線はどこから作成する?

枠線は『素材』アイテムから探すことができます。

ただ、『素材』を選択しただけでは、下の画像のように、写真などのアイテムが表示され、ここから素材を絞り込む必要があります。

ここで検索窓を使用するのですが、単純に『枠線』などと検索しても枠線のアイテムが出てきてくれないんですね…

canva-sozai

ここから枠線を探すためには、まず『図形』というワードで検索をかけます。

canvaでは一般的な図形アイテムは、カテゴリーとしてまとめられてはいるものの、このように検索しないと図形カテゴリーのアイテムを表示することができないんですね。

canva-zukei

これで好きな枠線の図形アイテムを選択することで、枠線を挿入することができます!

canva-wakusen

まとめ

テキストと枠線は別のアイテムとして管理する必要があるので、一般的な画像編集ツールと比べると少し手間なのですが、canvaではポジションをコントロールする制御が非常にしっかりしているので、管理にそこまで疲弊することはないかと思います。

以上、canvaでテキスト等を囲う枠線を作成する小ネタでした!

ランサーズでタスク依頼をする方法がなかなかわかりづらかったので紹介。。

わかり『づ』らかっただっけ?わかり『ず』らかっただっけ。

正解はわかり『づ』らい。ただ、そんなことはどうでもよかった。

こんな無駄話をできるほど今回の内容はシンプルなのだが、検索してもパッと方法が出てこなかったので紹介します。

サイトを作ったりアンケートとったり、ランサーズっていうクラウドソーシングサービス使っている人も今ではかなり増えてきましたね。

基本的な依頼方法はプロジェクト形式とコンペ方式。でも、もう一つタスク方式というのがありますよね。。

でも、依頼を新規作成するとStep.2の『どんな仕事を依頼したいですか?』の選択肢にはタスク方式出てこない…これってどうやって依頼するんだっけ?

lancers_1

応えは簡単。

Step.2の前のStep.1、カテゴリー選択でタスク・作業を選びましょう。

lancers_2

もっと本質的に言うと、Step.2の『どんな仕事を依頼したいですか?』ではStep.1で選択したカテゴリーに紐づく依頼方式しか出てこないみたい。

なので本当は、タスク・作業ではなくてもタスク方式を採用しているカテゴリーであればタスク方式で選ぶことが可能。

例えば、カテゴリー1で、『ライティング・ネーミング』を選択すると…

lancers_3

ちゃんと出てきた。恥ずかしがりやサンですね、もう。

まとめ

以上!ランサーズでタスク依頼方法の迷子になったときの解決方法でした。

ん~小ネタ。こんなので悩むのはもしかして僕だけ?