My Web道

WEB制作科 受講記録 …とその後も続くWEB制作に関する活動・学習記録です。

※ 当サイトはアフィリエイト広告を利用しています

コーディング不要!簡単操作でプロ並みBootstrapサイトが作成できる「Mobirise」

ドラッグ & ドロップと簡単設定だけでBootstrapサイトが作成できる「Mobirise」

f:id:sntkk3:20171029210026p:plain

公式サイト
Free Website Builder Software : https://mobirise.com
mobirise.com


Bootstrapのここ最近のテーマをチェックしていたところ、偶然こちらのツールを発見。

なんだか興味深いので、早速ダウンロードして使ってみました。

Mobiriseの特徴

  • 一切のコーディング不要、簡単な設定とドラッグ & ドロップでBootstrap型Webサイトが作成できる
  • 商用および非営利利用も無料
  • モバイルサイトとしても完全対応
  • テンプレートは、Bootstrap 3 およびびBootstrap 4がベース
  • 作成ページは、FTPGitHub経由で公開可能

以下、公開用設定画面です
f:id:sntkk3:20171029220722p:plain

使い方

1. 公式サイトからプログラムファイルをダウンロード(Windows版、Mac版あり)
2. 上記1.のプログラムファイルをインストールし起動
3. アカウントを設定


ページ作成・編集には、ドラッグ & ドロップやパラメータ設定の変更のみ。
ロゴやボタン、フォントなど、スタイルの設定・変更、各種視覚効果の機能追加などもパラメータの設定変更で可能。

サイトのページ数、規模にもよりますが、ちょっとしたBootstrap型サイトがあっと言う間にできてしまいます。

f:id:sntkk3:20171029215004p:plain
Demo


コーディングが苦手な方はもちろん、そうでない方にも、ぜひ一度お試しの価値ありだと思いますよ。

同一ページ 別タブ内アンカーリンクへの移動実現方法

f:id:sntkk3:20171009123027p:plain

同一ページ内の異なるタブ内アンカーリンクに移動するには


通常、アンカーリンク(同一ページ内)への移動は、以下の方法(アンカーリンク先要素に付けたID名をhrefに設定するだけ)で可能です。

<li><a href="#ID名">リンクテキスト</a></li> 


しかし、アンカーリンク先が他のタブ内だったりすると機能せず、目的の場所に移動できないという問題が。

これを解決し、何とか目的のアンカーリンク先に移動できないものか、
今日はその方法を確認してみました。

[前提]
ここで対象とするタブは、先日の以下記事内でご紹介したタブであることを前提とします。
times-diary.hatenablog.com


【解決方法】

JavaScriptで目的のタブ移動する処理を追加することで、この希望動作が実現できることを確認しました。

[手順]
1. JavaScriptで以下OnLinkClick関数を追記(bodyタグ終了直前)
2. a タグ内に上記OnLinkClick関数を呼び出すコードを追記


1. JavaScriptで以下OnLinkClick関数を追記(bodyタグ終了直前)
[コード例]

<script language="javascript" type="text/javascript"> 
  function OnLinkClick(a_name) { 
    var elements = document.getElementsByName( "tab-radios" ) ; 
     elements[1].checked = true ; 
  } 
</script> 


2. a タグ内に上記OnLinkClick関数を呼び出すコードを追記
[コード例]

<li><a href="#ID名" onClick="OnLinkClick();">リンクテキスト</a></li> 

[解説]

今回のように、リンク元とリンク先が別のタブに存在する場合、
通常の方法では目的地のタブが選択された状態にならず、目的の場所にフォーカスが移りません。

タブを超えてアンカーリンク先への移動を可能にするためには、その前に目的のタブを選択した状態を作る必要があります。
そこで、この動作をJavaScriptを使って実現します。

タブの各要素(タブA~タブC)の識別について
今回ここではタブをラジオボタンで作っているため、
タブA~タブCを表すラジオボタンの要素には、
「tab-radios」
というクラスを指定しています。

上記JavaScriptコードでは、
「tab-radios」の結果がelements に代入されることになるので、elementsの各要素、
elements[0] ⇒ タブA
elements[1] ⇒ タブB
elements[2] ⇒ タブC
となります。

今回の場合、アンカーリンク先がタブB内にあるものとすると、
タブB = elements[1]
となり、
elements[1].checked = true ;
とすることで、タブBを選択した状態を実現します。

a タグに onClick="OnLinkClick(); を追記することで、
JavaScriptで別途記述した OnLinkClick関数の処理を呼び出します。
これにより、aタグのリンク箇所クリック時、
目的のタブが選択され、該当箇所にフォーカス移動が実現します。

Demo

※上記Demoで使用したBootstrapテンプレートは、以下となります。
Nitro Free Website Template Using Bootstrap 3 - FreeHTML5.co



以上、別のタブ内アンカーリンク先への移動実現方法でした。
ご参考まで。



【参考記事】

リンクのクリック時にJavaScriptを実行する - リンクのonClickの実装 - JavaScript プログラミング

lab.syncer.jp

リファラ (REFERRER) 制御方法を確認しました

f:id:sntkk3:20170912170403j:plain

リファラ (REFERRER) 制御方法を確認しました

こちらについてご説明する前に、「リファラって何?」という方のために、以下ご説明いたします。

リファラ (REFERRER) とは?

どこから現在のページに来ているか、ユーザーのアクセス元を示す情報のことです。
リファラ情報取得のため、リンク先ページでも取得用の設定が必要です(後述にて別途説明)


【参考サイト】

e-words.jp


そのため、サイト運営者にとっては、
「自サイトに訪れているユーザーはどんな人たちか?」
需要、傾向を知るのに役立つ情報となります。

しかし、その一方で、リンク元サイトとしては、
「セキュリティ上の理由などにより、リファラを制御(リンク先で非表示に)したい」
という場合も生じてきます。

今回の私もそういった理由により、リファラ制御の実現方法を調べてみました。

後述にてその種類、確認結果をシェアさせていただきますが、まずはその前にリファラの取得方法について

参照先(リンク先)ページにてリファラ情報を取得する方法としては、以下となります。

リファラ取得方法

参照先ページでのリファラ取得方法について、

ページ headタグ内に以下スクリプトを記述することで、リファラ情報を取得・表示することができます。

<SCRIPT LANGUAGE="JavaScript">
<!--
  document.write('URL:' + document.referrer);
//-->
</SCRIPT>


では、次に、リファラ制御に有効と言われていた各種方法と、実際の確認結果をご報告いたします。

リファラ制御方法の種類・確認結果

各種方法

1. a要素にtarget="_blank"を設定 (参照元WordPressの時のみ有効)
記述例:

<a href="http:test/index.html" target="_blank">



2. a要素にrel=noreferrerを設定
記述例:

<a href="http:test/index.html" rel=noreferrer>



3. a要素にreferrerpolicy="no-referrer"を設定
記述例:

<a href="http:test/index.html" referrerpolicy="no-referrer">




4. 中間ページからのリダイレクト(HTMLでリダイレクト)


5. 中間ページからのリダイレクト(JavaScriptでリダイレクト)


6. 短縮URLでリンク先を指定


7. meta name="referrer" content="no-referrer"をheadタグ内に記述
記述例:

<meta name="referrer" content="no-referrer">



確認結果

[前提] 確認時のブラウザにはChromeを使用

a. 通常のHTMLページの場合

No 方法 リンク リファラ表示結果
1 target_blank 次のページにジャンプ 表示される
2 no refferer 次のページにジャンプ 表示されない
3 referrerpolicy 次のページにジャンプ 表示されない
4 HTMLでリダイレクト 次のページにジャンプ 中間ページURLが表示される
5 JavaScriptでリダイレクト 次のページにジャンプ 中間ページURLが表示される
6 短縮URL 次のページにジャンプ 表示される
7 meta name="referrer"※ 次のページからご確認ください 表示されない

※以下をheadタグ内に記述する方法です。

<meta name="referrer" content="no-referrer">

b. WordPressページの場合

No 方法 リファラ表示結果
1 target_blank ※2 表示されない
2 no refferer 表示されない
3 referrerpolicy 表示されない
4 HTMLでリダイレクト 中間ページURLが表示される
5 JavaScriptでリダイレクト 中間ページURLが表示される
6 短縮URL 表示される

※2 WordPressの場合、セキュリティ上の機能により、
外部リンクに「target=”_blank”(リンクを新しいタブで開く)」を設定すると、そのリンクには「rel=”noopener noreferrer”」属性が自動的に付加されるという性質があるようです。そのため、参照元WordPress内記事の場合、外部リンクを新しいタブで開く設定をするだけで、リファラ情報を制御することができます。


【参考記事】
nelog.jp


WordPressページからのリファラ制御確認用デモはこちらです。



以上、各種リファラ制御方法と確認結果のご報告でした。
上記によりすべての制御方法を網羅しているわけではありませんが、ご参考いただけたら幸いです。


【参考サイト】
qiita.com

CSSで実装する タブ機能

f:id:sntkk3:20171003212857p:plain

[jQuery不要] ラジオボタン + CSSで出来る タブ機能

以下記事を参考に、Webページにタブ機能を設置してみました。

【参考記事】
qiita.com

上記にてご紹介いただいたコードで、
おかげさまで思った通りのタブができました。

と喜んだのも束の間、一つ問題が発覚。
バリデーション(HTMLの構文チェックのことです※)をしてみたところ、
以下のような構文エラーが。

The element main must not appear as a descendant of the article element.

A document must not include more than one visible main element.

※バリデーションには以下サイトを利用しました
validator.w3.org


原因は、ソースコードにて複数のmainタグがarticleタグの子要素になっていたこと(mainタグって1つのページ内に1回しか使用できないんですよね)。

ということで、mainタグの部分を新たなclassに置き換えて以下のように修正しました。


[html] サンプルコード

            <!-- TAB CONTROLLERS --> 
            <input id="panel-1-ctrl" class="panel-radios" type="radio" name="tab-radios" checked> 
            <input id="panel-2-ctrl" class="panel-radios" type="radio" name="tab-radios"> 
            <input id="panel-3-ctrl" class="panel-radios" type="radio" name="tab-radios"> 
            <!-- TABS LIST --> 
            <ul id="tabs-list"> 
              <!-- MENU TOGGLE --> 
              <li id="li-for-panel-1"> 
                <label class="panel-label" for="panel-1-ctrl">タブA</label> 
              </li> 
              <!--INLINE-BLOCK FIX--> 
              <li id="li-for-panel-2"> 
                <label class="panel-label" for="panel-2-ctrl">タブB</label> 
              </li> 
              <!--INLINE-BLOCK FIX--> 
              <li id="li-for-panel-3"> 
                <label class="panel-label" for="panel-3-ctrl">タブCについて</label> 
              </li> 
              <!--INLINE-BLOCK FIX--> 
            </ul> 
            <!-- THE PANELS --> 
            <article id="panels"> 
              <div class="container"> 
                <section id="panel-1"> 
                  <div class="panel_group"> 
                    <div class="tbl_box"> 
                      <table class="tb" cellpadding="0" cellspacing="0" border="1">  
                    <tr valign="top"> 
                <th valign="top">項目1</th> 
                <td valign="top"> 
                  <ul> 
                    <li><a href="#p_sales" onClick="OnLinkClick(p_sales);">リスト1</a></li> 
                    <li><a href="#sales" onClick="OnLinkClick(sales);">リスト2</a></li> 
                    <li><a href="#clerk" onClick="OnLinkClick(clerk);">リスト3</a></li> 
                    <li><a href="#w_designer" onClick="OnLinkClick(w_designer);">リスト4</a></li> 
                  </ul> 
                </td> 
              </tr> 


[css]

/*********************/ 
/*タブメニュー 
/*********************/ 
 
label.panel-label { 
  -webkit-user-select: none; 
  -moz-user-select: none; 
  -ms-user-select: none; 
  user-select: none; 
  display: block; 
  width: 100%; 
  color: #bdc3c7; 
  cursor: pointer; 
  background-color: #ecf0f1; 
  -webkit-transition-property: background-color, color; 
  transition-property: background-color, color; 
  -webkit-transition-duration: 200ms; 
  transition-duration: 200ms; 
} 
label.panel-label:hover { 
  color: #003399; 
} 
 
#panels { 
  background-color: white; 
} 
#panels .container { 
  margin: 0 auto; 
  width: 90%; 
} 
#panels section header label.panel-label { 
  padding: 12px 24px; 
  box-sizing: border-box; 
} 
#panels section > div { 
  box-sizing: border-box; 
  max-height: 0; 
  opacity: 0; 
  -webkit-transition: opacity 600ms; 
  transition: opacity 600ms; 
  overflow-y: hidden; 
} 
 
#panel-1-ctrl:checked ~ #panels #panel-1 > div { 
  max-height: initial; 
  opacity: 1; 
  padding: 20px 24px;  
} 
 
#panel-2-ctrl:checked ~ #panels #panel-2 div { 
  max-height: initial; 
  opacity: 1; 
  padding: 20px 24px; 
} 
 
#panel-3-ctrl:checked ~ #panels #panel-3 div { 
  max-height: initial; 
  opacity: 1; 
  padding: 48px 24px; 
} 
#panel-1-ctrl:checked ~ #tabs-list #li-for-panel-1 { 
  pointer-events: none; 
  cursor: default; 
  -webkit-transform: translate3d(0, 1px, 0); 
  transform: translate3d(0, 1px, 0); 
  box-shadow: none; 
  border-right: none; 
} 
#panel-1-ctrl:checked ~ #tabs-list #li-for-panel-1.last { 
  border-right: 1px solid transparent; 
} 
#panel-1-ctrl:checked ~ #tabs-list #li-for-panel-1 + li { 
  border-left: 1px solid #dfdfdf; 
} 
#panel-1-ctrl:checked ~ #tabs-list #li-for-panel-1 label.panel-label { 
  background-color: white; 
  color: #003399; 
  padding-top: 12px; 
  /*padding-top: 24px;*/ 
} 
#panel-1-ctrl:checked ~ #tabs-list #li-for-panel-1 label.panel-label::after { 
  height: 6px; 
} 
 
#panel-2-ctrl:checked ~ #tabs-list #li-for-panel-2 { 
  pointer-events: none; 
  cursor: default; 
  -webkit-transform: translate3d(0, 1px, 0); 
  transform: translate3d(0, 1px, 0); 
  box-shadow: none; 
  border-right: none; 
} 
#panel-2-ctrl:checked ~ #tabs-list #li-for-panel-2.last { 
  border-right: 1px solid transparent; 
} 
#panel-2-ctrl:checked ~ #tabs-list #li-for-panel-2 + li { 
  border-left: 1px solid #dfdfdf; 
} 
#panel-2-ctrl:checked ~ #tabs-list #li-for-panel-2 label.panel-label { 
  background-color: white; 
  color: #003399; 
  padding-top: 12px; 
} 
#panel-2-ctrl:checked ~ #tabs-list #li-for-panel-2 label.panel-label::after { 
  height: 6px; 
} 
#panel-3-ctrl:checked ~ #tabs-list #li-for-panel-3 { 
  pointer-events: none; 
  cursor: default; 
  -webkit-transform: translate3d(0, 1px, 0); 
  transform: translate3d(0, 1px, 0); 
  box-shadow: none; 
  border-right: none; 
} 
#panel-3-ctrl:checked ~ #tabs-list #li-for-panel-3.last { 
  border-right: 1px solid transparent; 
} 
#panel-3-ctrl:checked ~ #tabs-list #li-for-panel-3 + li { 
  border-left: 1px solid #dfdfdf; 
} 
#panel-3-ctrl:checked ~ #tabs-list #li-for-panel-3 label.panel-label { 
  background-color: white; 
  color: #003399; 
  padding-top: 12px; 
} 
#panel-3-ctrl:checked ~ #tabs-list #li-for-panel-3 label.panel-label::after { 
  height: 6px; 
}  
ul#tabs-list { 
  display: flex; 
  list-style: none; 
  text-align: center; 
  border-bottom: 1px solid #dfdfdf; 
  margin: 0; 
  padding: 0; 
} 
ul#tabs-list li { 
  text-align: center; 
  font-size: 0.875em; 
  width: 25%; 
  box-shadow: 0px -2px 2px rgba(0, 0, 0, 0.05); 
  border-right: 1px solid #dfdfdf; 
  position: relative; 
} 
ul#tabs-list li:hover { 
  -webkit-transition: none; 
  transition: none; 
  border-right: none; 
} 
ul#tabs-list li:hover.last { 
  border-right: 1px solid transparent; 
} 
ul#tabs-list li:hover + li { 
  border-left: 1px solid #dfdfdf; 
} 
ul#tabs-list li label.panel-label { 
  position: relative; 
  padding: 12px 0; 
  font-size: 1.4em; 
} 
ul#tabs-list li label.panel-label::after { 
  content: ""; 
  position: absolute; 
  width: 100%; 
  left: 0; 
  bottom: 100%; 
  background-color: #003399; 
  height: 0; 
  -webkit-transition-property: height; 
  transition-property: height; 
  -webkit-transition-duration: 200ms; 
  transition-duration: 200ms; 
} 
ul#tabs-list li label.panel-label:hover { 
  padding-top: 12px; 
} 
ul#tabs-list li label.panel-label:hover::after { 
  height: 6px; 
} 
 
.panel_group { 
    margin: 0 auto; 
} 
.panel-radios { 
  display: none; 
} 
 
.panel_group p { 
  line-height: 1.8; 
} 
 
#li-for-panel-3, #li-for-panel-2, #li-for-panel-3 { 
  padding-bottom: 0; 
} 
 


以上で晴れてエラーも解決、
思い通りのタブができました。


Demo


【参考記事】

uxmilk.jp

dekiru.net

おススメ Div要素 丸ごと スライド可能なスライダー 「Swiper」

f:id:sntkk3:20171008223105p:plain

jQuery不要の高機能スライダー 「Swiper」を実装してみました

今日は、ページ内の要素丸ごとスライド可能な高機能スライダー、「Swiper」をご紹介いたします。

Swiperのダウンロードはこちらから可能です。

Swiperの使用に至ったキッカケ

見出しやボタン等の要素丸ごとスライドするのに最適なスライダーを探していて、Swiperに辿り着きました。

Div要素ごとのスライドは、bxSliderで可能という情報が多くあったため、最初は私自身にとって使い慣れたbxSliderで対応しようとしました。

しかし、実際試してみるとなぜか上手く動作しない…
そこでbxSliderに替わる高機能スライダーとして発見したのが、この「Swiper」でした。


Swiperの特徴、利点としては、以下の通りです。

Swiperの良いところ

  • 通常スライダーに必須であることが多いjQueryが不要
  • 実装が簡単(追加ファイルはswiper.js、swiper.cssのみでOK)
  • Div要素丸ごとのスライドが可能
  • オプションが豊富 (※)

※オプションのパラメータ設定については、こちらのページにて詳細が確認できます。

また、実際の動作については、公式サイトのこちらのページにて確認できます。
デモをご覧いただくと、非常に多様な表現が可能であることがお分かりいただけると思います。

ご参考までに、
以下、Bootstrapのテンプレートを使用して作成した私自身のデモページです。
Demo

※今回上記Demoで使用しているBootstrapテンプレートは以下となります。
startbootstrap.com



では、次に、Swiperの基本的な使い方についてです。

Swiperの基本的な使い方

[手順]
1. 公式サイトから、ファイル一式をダウンロード
2. swiper.js、swiper.cssを配置
3. htmlファイルに下記ソース要領でコンテンツ部分を記述
4. htmlファイルに下記ソース要領でjavascriptコードを追記

1. 公式サイトから、ファイル一式をダウンロード

Swiperのダウンロードはこちらからどうぞ

2. swiper.js、swiper.cssを配置

以下headタグ内に記述(ファイルの場所は適宜変更ください)

<link rel="stylesheet" href="swiper.min.css">
<script src="swiper.min.js"></script>
3. htmlファイルに下記ソース要領でコンテンツ部分を記述

《html》

<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide">スライド(1)のコンテンツを挿入</div>
        <div class="swiper-slide">スライド(2)のコンテンツを挿入</div>
        <div class="swiper-slide">スライド(3)のコンテンツを挿入</div>
    </div>
</div>
4. htmlファイルに下記ソース要領でjavascriptコードを追記

以下bodyタグ終了直前に記述
javascript

var swiper;
$(window).load(function() {
    swiper = new Swiper('.swiper-container', {
    // ここにオプションを記述
    });
});

実装のための手順としては以上となります。



本日は、簡単、便利、高機能スライダー、「Swiper」のご紹介でした。

サイトにスライダーを実装したいと思われる際には、
ぜひお試しあれ。


【参考記事】
on-ze.com

swiper.js使ってみたからそのオプションについて – なんかいろいろデザインする人 :
http://reiwinn-web.net/2016/11/30/swiper-js-01/

jQuery無しで動く!「swiper」がとても便利 | ホームページ制作 大阪|株式会社I.M.D :
https://www.imd-net.com/blog/2016/05/31-235955/

【WordPress】超簡単 記事内に吹き出し会話を挿入してみました

こんな感じで、WordPresの記事に吹き出し会話を作成してみました。

f:id:sntkk3:20171015003222p:plain

WordPress記事での吹き出し会話

以前から度々見かけて実装してみたいと思っていた吹き出し形式のコンテンツ。
調べてみると、専用プラグインとして、以下「Speech bubble (ふきだしプラグイン)」が定番のようですが、
・最終更新が2年前であることが懸念点、
・できればブラグインを使わずに済ませたいという点
でインストールを躊躇、
ja.wordpress.org


そんな中、プラグインなしで実現可能との方法をご紹介いただいている以下記事を発見。
thk.kanzae.net

吹き出し会話挿入用コード

この機能の実現には、以下のコードを追記します。

《functions.php
以下コードを追記

/*------------------------------------------------------------
 吹き出し挿入用
-------------------------------------------------------------*/
// 左からの吹き出し
add_shortcode( 'baloon-line-left', function( $atts, $content = null ) {
	$before = '<div class="balloon"><div class="balloon-img-left">';

	if( isset( $atts['img'] ) ) {
		$before .= '<figure><img src="' . $atts['img'] . '" width="60" height="60" alt="';
		$before .= isset( $atts['caption'] ) ? $atts['caption'] : '';
		$before .= '" /></figure>';
	}
	if( isset( $atts['caption'] ) ) {
		$before .= '<span class="balloon-img-caption">' . $atts['caption'] .'</span>';
	}

	$before .= '</div><div class="balloon-left-line">';

	$after = '</div></div>';

	return $before . $content . $after;
});

// 右からの吹き出し
add_shortcode( 'baloon-line-right', function( $atts, $content = null ) {
	$before = '<div class="balloon"><div class="balloon-img-right">';

	if( isset( $atts['img'] ) ) {
		$before .= '<figure><img src="' . $atts['img'] . '" width="60" height="60" alt="';
		$before .= isset( $atts['caption'] ) ? $atts['caption'] : '';
		$before .= '" /></figure>';
	}
	if( isset( $atts['caption'] ) ) {
		$before .= '<span class="balloon-img-caption">' . $atts['caption'] .'</span>';
	}

	$before .= '</div><div class="balloon-right-line">';

	$after = '</div></div>';

	return $before . $content . $after;
});


css
以下cssで吹き出し箇所にスタイルを設定します(好みに応じて適宜変更)

/*------------------------------------------------------------
 吹き出し用スタイル
-------------------------------------------------------------*/
.balloon {
	margin-bottom: 40px;
}
.balloon figure {
	width: 60px;
	height: 60px;
}
.balloon-img-left {
	float: left;
}
.balloon-img-right {
	float: right;
}
.balloon-img-left figure {
	margin: 0 auto 0 0;
}
.balloon-img-right figure {
	margin: 0 0 0 auto;
}
.balloon img {
	width: 100%;
	height: 100%;
	margin: 0;
}
.balloon-img-caption {
	padding: 5px 0 0;
	white-space: nowrap;
	font-size: 12px;
}
div[class^="balloon-"] {
	padding: 10px;
	position: relative;
	border-radius: 12px;
}
div[class^="balloon-img"] {
	padding: 0;
	text-align: center;
}
div[class^="balloon-left"] {
	margin-left: 80px;
}
div[class^="balloon-right"] {
	margin-right: 80px;
}
.balloon p {
	margin: 0 0 20px;
}
.balloon p:last-child {
	margin-bottom: 0;
}
div[class^="balloon-left-"]::before,
div[class^="balloon-right-"]::before,
div[class^="balloon-left-"]::after,
div[class^="balloon-right-"]::after {
	position: absolute;
	content: '';
	border: 10px solid transparent;
	top: 12px;
}
div[class^="balloon-left-"]::before,
div[class^="balloon-left-"]::after {
	left: -20px;
}
div[class^="balloon-right-"]::before,
div[class^="balloon-right-"]::after {
	right: -20px;
}
div.balloon::after, div.balloon::before {
	clear: both;
	content: '';
	display: block;
}

/* 吹き出しの背景色 (左) */
div.balloon-left-line {
	background: #e4e8eb;
}
div.balloon-left-line::before,
div.balloon-left-line::after {
	border-right: 12px solid #e4e8eb;
}

/* 吹き出しの背景色 (右) */
div.balloon-right-line {
	background: #bef18c;
}
div.balloon-right-line::before,
div.balloon-right-line::after {
	border-left: 12px solid #bef18c;
}


《記事内での挿入方法》
挿入したい場所には、以下要領でショートコードを設定します。

[baloon-line-left img="左画像URL" caption="左画像下文字"]人物Aのコメント内容[/baloon-line-left]

[baloon-line-right img="右画像URL" caption="右画像下文字"]人物Bのコメント内容[/baloon-line-right]


「これはありがたい!」と早速試してみたところ、見事、ほぼ期待通りの吹き出しが!
これで、晴れてLINEやFacebookメッセンジャーのような吹き出し会話が記事内に挿入できました。

Demo


上記コードを挿入するだけで、プラグインなしでもらくらく吹き出しが挿入できます。
ぜひお試しあれ。


【参考記事】
WordPress でライン風の吹き出しを作るショートコード(プラグインなし) | Thought is free :
https://thk.kanzae.net/net/wordpress/t6908/

チュートリアル動画作成に使えるか!? Windows 10 意外な標準機能

f:id:sntkk3:20170916192835j:plain

意外なWindows 10標準機能 Xboxアプリでデスクトップ動画作成

Xboxアプリとは?

MicrosoftXboxと言えば、やはりゲーム、
日頃ゲームをされる方はきっとご存知のはず。
本来の目的は、Windows10上で、Xboxゲームを楽しむための機能。
ゲームの様子を録画するために実装されていたようですが、縁がなかったため、まったくこの存在に気づきませんでした。

この機能を発見したきっかけ

ユーザーさんへの説明用にチュートリアル動画を作成したいと思い、デスクトップ上のソフト操作を録画するための良いツールはないかと探しはじめたのが、この意外な標準機能に気付いたきっかけでした。

チュートリアルとは?

チュートリアルとは、アプリケーションソフトなどの基本的な操作方法を覚えるための教材のことである。

上記、以下記事より引用させていただいております。
http://www.sophia-it.com/content/チュートリアル

この機能の使い方

[Win]+[G] キーでこの機能が起動します。
録画開始ボタンをクリックすると画面操作を録画することができます。
f:id:sntkk3:20170916193157p:plain

使ってみた結果

Q. この機能は、チュートリアル動画作成に使えるか?
A. △ 機能的にちょっと不充分。場合により使えるかも。画質はイマイチです。

今回この機能を試すにあたり、やったこと

1. Excel上でVisualBasicエディタのマクロ作成、
2. Chromeブラウザのデベロッパーツールでスマホエミュレーションを使用、
上記2つの操作をXboxアプリで録画してみました。
が、
1.は、VisualBasicエディタでのウインドウが録画されない
2.は、ブラウザ上での右クリック時メニューが録画されない
といった結果となりました。

ご参考までに、以下、上記 2. の実際の録画結果です。
youtu.be

音声もキャプションも入れてない状態なのでこれでは分かりづらいと思いますが、ここでの操作内容としては以下の通りです。

=============================================
[操作内容] Chromeブラウザのデベロッパーツールでスマホエミュレーションを実行

1. ChromeブラウザでYahooトップページを表示
2. ショートカットキー [Ctrl]+[Shift]+[I]キーでデベロッパーツールを起動
3. 「Toggle Device Toolbar」アイコンをクリック
4. 画面上部のデバイス選択肢から、「iPhone6」を選択
5. 画面表示サイズを100%に変更
6. [F5]キーでブラウザを更新

→ YahooのiPhone6用ページが表示されました
=============================================

どうも、この機能で録画可能なのは、主たるウインドウでの操作のみのようです。
そういう意味で、ユーザー向けチュートリアル動画の作成には、機能的に不充分。とは言え、操作内容・条件・工夫次第では、まったく使えないというわけでもありません。

なお、録画結果は、mp4形式でPC内に保存されるため、ご覧のように、Youtubeに簡単にアップすることも可能です。
mp4動画なので、録画映像はPC上で「Media Player」「映画 & TV」アプリ等で再生可能です。

イデア次第では、応用した使い方ができそうです。

以上、ご参考まで。

参考記事

ascii.jp

【WordPress】WordPressサイトアドレスを間違って設定してしまった場合の対応 

f:id:sntkk3:20170913235604p:plain

WordPressサイトアドレスを間違って設定してしまった場合の対応

今日は、WordPressでサイトアドレスが間違って設定されてしまったという問題が発生した場合の対応方法について確認してみました。

実際今回身近で起きた問題

httpサイトのサイトアドレス設定で、間違って httpsのアドレスを設定してしまい、その結果、サイトにアクセスできなくなるという問題が起きました。

(正) http  
(誤) https 
⇒ 管理画面にアクセスできなくなる 
 

WordPressでサイトアドレスを誤設定してしまった場合の対応方法

WordPressでサイトアドレスを誤設定してしまった場合の対応方法としては、以下2通りの方法があるようです。

1) wp-config.php による修正 (※下記注意点参照)
2) MySQLデータベースでの修正 


【参考記事】
wordpress.siyouyo.com

 
注意点: 
wp-config.php 変更時、おそらく属性の変更が必要 

[属性の変更について]
サーバー上のwp-config.phpを上書きするためには、オーナーの書込権限を許可するように以下変更が必要です。

FFFTPでの例
1. 属性を確認 (オーナーに書き込み権限がない状態)
f:id:sntkk3:20170916214416p:plain

2. 属性を変更 (オーナーの書き込み権限を有効にする)
f:id:sntkk3:20170916214431p:plain


ただ、今回のように、 
httpサイトを間違ってhttpsにしてしまった場合、 
前述 1) の wp-config.php では修正できませんでした。
(上記対応を行った場合、サイトでの記事閲覧は可能になりましたが、依然管理画面へのログインはできません。)

そのため、2)のMySQLデータベースから直接サイトアドレス修正という方法を試してみました。

手順は、以下の通りです。

[手順]
1. サーバーの「phpMyAdmin」にログイン
2. 該当WordPressのデータベースをクリック
3. wp接頭辞_optionsをクリック
4. option_nameの「siteurl」を確認
5. 上記のoption_valueを確認
(option_valueは間違って設定された値となっているはずです。ここを正しいサイトアドレスに修正します。)
6. 「siteurl」の編集画面でoption_valueに正しいアドレスを設定し直し、「実行する」ボタンをクリック

修正手順は以上となります。


[結果]
この方法で無事元通り、晴れて管理画面からログインできるようになりました。


[教訓]
WordPressでのサイトアドレス修正は慎重にすべし。

「思わずエントリーしたくなるリクルートサイト 2018」 まとめ

f:id:sntkk3:20170910203114j:plain

[2017年版] 思わず引き込まれる採用情報Webページ 2018

思わず引き込まれる各社リクルートサイト(2018)、
以下、57 55サイト(2017.9.16 2サイトを追加)をご紹介いたします。

さすがの広告代理店 採用情報ページ

博報堂

f:id:sntkk3:20170910170245p:plain

求職者に向けての熱いコピー、
シングルカラム、アコーディオンによる、ページ縦、横の活かし方、
魅せる先輩社員のプロフィール、
など、
使いやすさ、見やすさ、コンテンツの充実度への配慮も充分、
デザイン、コンテンツともに素晴らしいリクルートページだと思いました。

h-mp-recruit.jp

電通

f:id:sntkk3:20170910171141p:plain


電通ならでは。
おなじみのCM作品が盛り込まれた動画、グリッドレイアウトで提供されている数々のコンテンツがとても楽しく興味深い。

www.career.dentsu.jp


東急エージェンシー

f:id:sntkk3:20170910174023p:plain

ポップでカラフル、画面スクロールに伴うアニメーションが躍動的!

www.tag-recruit.jp

ADK

www.adk-recruit.jp

「相棒採用」って企画も面白い!

朝日広告社

www.asakonet.co.jp

FICC | デジタルエージェンシー

www.ficc.jp



その他、リクルートページ

ヤフー

about.yahoo.co.jp

Wiz(ワイズ)

012grp.co.jp

オロ

www.oro.com

ビーワークス

recruit.beeworks.jp

住商メタレックス

www.metalex.co.jp

トゥモローゲート

www.tomorrowgate.co.jp

Atrae

atrae.co.jp

アチーブメント

recruit.achievement.co.jp

ダイアモンドヘッド

diamondhead.jp

Internet Initiative Japan

www.iij.ad.jp


リスペクト

saiyo.respect-pal.jp

パーソルキャリア

www.persol-career.co.jp


まとめ

各社なかなか凝っていて、見てて楽しいサイトばかりです。

・シングルカラム
・動画
・アニメーション
によるサイトが多いのもここ最近の特徴ですね。

【WordPress】XSERVERでのSSL設定は超簡単


WordPressサイトにSSL設定を導入してみました

SSLって?

ブラウザのアドレスバーで以下のように表示されるページのことです。

ページをSSL化(セキュリティ的に強化される)することで、SEO的に有利になる(検索エンジンで表示してもらいやすくなる)と言われています。


XSERVERでは、サイトへのSSL設定がこんなに簡単、
以下、手順をご紹介いたします。

XSERVERでのSSL設定手順

1. サーバーパネルにログインします。
www.xserver.ne.jp


2. ドメイン > 「SSL設定」をクリックします。


3. ドメイン選択画面
対象ドメインの「選択する」をクリックします。


4. 「独自SSL設定の追加」タブを選択


5. 「独自SSL設定を追加する(確定)」ボタンをクリックします。

SSL新規取得申請中です…

といったメッセージが表示され、ここから 1時間ほど待ちます。


サーバーパネルでの申請・設定は以上で完了です。


(SSL設定申請後の流れ)

ここからは、先程の設定・申請から1時間ほど経過した後の作業となります。

1. 再びXSERVERのSSL設定(前述手順2.~3.の設定画面)を確認すると、以下のように独自SSLアドレスの記載がありますので、このリンクから対象サイトにアクセスしてみます。

 


2. 管理画面にログインして、
 ダッシュボード 「一般」>「設定」をクリックします。

3. 「WordPress アドレス (URL)」「サイトアドレス (URL)」のアドレスを「https://~」に変更し「変更を保存」します。
 


4. 試しに記事を作成すると、ちゃんと「https://~」と表示されました。
 
 

以上で独自SSLのための設定完了です。

【Chrome拡張】Local版 CodePenのようなエディタツール、「Web Maker」を使ってみました

f:id:sntkk3:20170910151957p:plain

Chrome拡張「Web Maker」の機能・特徴について

Chrome 「Web Maker」とは?
webmakerapp.com

Local版 CodePen的Webエディタ

Chrome拡張機能のWebエディタ、使い勝手はCodePenに似ています。
CodePen(※)同様、ソースコードの結果がブラウザでその場で確認できます。
コーディング時に通常たどる、
html、css、js の各ファイルをエディタソフトで作成・保存

結果をブラウザで逐次表示して確認
といった手間が省け、コーディングのスピードが格段に上がることが期待できます。

CodePenと違い、自身のブラウザ内(ローカル環境)で利用できるのがメリット、
ネットワークに接続してないくてもコード結果がプレビューできる、
Local版 CodePenのような存在です。

 f:id:sntkk3:20170910150933p:plain

便利な機能

1) ファイルエクスポート機能
 入力した内容は、htmlファイルとして出力可能です。


2) プレビュー結果のスクリーンショット機能
 プレビュー結果を pngファイルで生成・保存できます。

 こんな感じでスクリーンショット画像が作られます。
 f:id:sntkk3:20170910155017p:plain


3) CodePenとの連携機能
 「Edit on CodePen」機能により、「Web Maker」で入力した結果がそのままCodePenに反映される点が便利です。
 この機能により、Localの「Web Maker」でいったん作成・保存しておいたコードを、後から、CodePenで編集・公開するといったこともできますね。

 
 ※CodePenとは?
  8/30付の以下記事をご参照ください。
  times-diary.hatenablog.com


まとめ

Web制作のお役立ちツールとして、ぜひインストールしておきたい Chrome拡張ツールの一つだと思いました。

CodePenを使ってみました

f:id:sntkk3:20170903152651p:plain

CodePenを使ってみました

以前から話題になっていたCodePenを使ってみました

ちょっと戸惑うところもありましたので、以下より、その使い方(ユーザー登録から本ブログにコードを貼り付けるまでの手順)をご紹介いたします。

1. ユーザー登録

 まず、以下のサイトでユーザー登録を行います。
 codepen.io

 1.1. トップページ画面右上の「Sign Up」をクリックします。

 1.2. 「Choose a Plan」画面で「JoinCodePlanFree」ボタンをクリックします。

 f:id:sntkk3:20170903153404p:plain

 
 1.3. 必要項目(名前、ユーザーネーム、メールアドレス、パスワード)を入力し、送信します。
 f:id:sntkk3:20170903153957p:plain

 
 ユーザー登録は以上で完了です。
 (登録したメールアドレス宛に登録完了メールが送信されていますので、ご確認ください。)

2. コード作成

2.1. 「New Pen」をクリックします
 f:id:sntkk3:20170903150937p:plain

2.2. 「HTML」「CSS」「JS」の各エディタにコードを入力します。
 f:id:sntkk3:20170903114520p:plain

3. 作成したコードをブログなどのWEBページに埋め込み、共有する

3.1. 前述のエディタ画面にて、画面右下の「Embed」ボタンをクリックします。
 ⇒ 以下「Embed This Pen」ダイアログが表示されます。

 ここでは、「Default State」にチェックを入れて進めます。
 f:id:sntkk3:20170903152006p:plain

3.2. 下欄に生成された「Copy & Paste Code」をコピーし、埋め込みたいページに貼り付けます。 
 f:id:sntkk3:20170903151831p:plain


以上が、CodePenユーザー登録からブログへのコード埋め込みまでの手順となります。


また、上記手順にて埋め込んだコードが以下になります。
「Run Pen」をクリックしてご確認ください。

See the Pen WEmbZa by Tokiko (@tkksn) on CodePen.


いかがでしょうか。
はてなブログでもSyntaxHighliterのようなコード埋め込みと同時プレビューが簡単に実現できてしまう CodePen、凄いです!

【WordPress】「メディアの追加」ボタンが反応しなくなった場合の対処法

f:id:sntkk3:20170826184050p:plain

WordPressで「メディアの追加」ボタンが反応しなくなった場合の対処法について

《この現象の特徴》
主に以下のような症状が見られます。
1. 「メディアの追加」ボタンをクリックしても何も反応しない
  ・メディア追加用の画面が表示されない
  ・画像のドラッグ&ドロップも無効

2. エディタの「テキスト」「ビジュアル」エディタ切り替えができない。


WordPress使用時、度々この現象に遭遇します。
そうした場合の対処法について、
以下 a) b) の2種類、「実際私自身でもこれで解決した」という対処法について、ご紹介いたします。

《「メディアの追加」ボタンが反応しない時の対処法2種 》
a). JavaScript連結機能の無効化
b). プラグインを最新の状態にアップデートする

a). JavaScript連結機能の無効化

WordPress内の次のファイル、wp-config.php に以下一文を追加します。

define('CONCATENATE_SCRIPTS', false);

なぜ、この一文だけで、問題が解決するのでしょうか。
この「JavaScript 連結の無効化」について、WordPress Codexのページでは、このような説明が記述されています。

JavaScript 連結の無効化
管理画面のスピードアップのため、JavaScript ファイルはすべてひとつの URL に連結されます。管理画面で JavaScript がうまく動作しない場合、この機能を以下のようにして無効化できます。


【参考記事】
wp-config.php の編集 - WordPress Codex 日本語版

b).プラグインを最新の状態にアップデートする

「ダッシュボード」-「更新」の画面に移動f:id:sntkk3:20170826210330p:plain

すべてのプラグインを更新を実行、最新の状態にします。
f:id:sntkk3:20170826210450p:plain


他の対処法もあるかもしれませんが、私の場合は上記いずれかの方法で直ちに問題が解決しました。

参考にしていただけると幸いです。

【XAMPP】localhostでページ表示できない場合の原因・対処法

f:id:sntkk3:20170820122602p:plain

自宅環境でもXAMPPで問題発生。
localhostでページ表示ができなくなっているよう。

ということで、
本記事では、この現象の原因確認・問題解決までの過程をシェアさせていただきます


XAMPPでlocalhost表示できない場合の原因・対処法

まずは、XAMPPコントロールパネルの表示内容から、原因を調査します。

1. エラーメッセージ確認

XAMPPのコントロールパネルでは、以下のエラーメッセージが記録されました。

【XAMPPコントロールパネル】
f:id:sntkk3:20170820123530p:plain

《エラーメッセージ》
22:59:42 [Apache] Problem detected!
22:59:42 [Apache] Port 80 in use by "Unable to open process" with PID 4!
22:59:42 [Apache] Apache WILL NOT start without the configured ports free!
22:59:42 [Apache] You need to uninstall/disable/reconfigure the blocking application
22:59:42 [Apache] or reconfigure Apache and the Control Panel to listen on a different port
22:59:42 [Apache] Attempting to start Apache app...
22:59:44 [Apache] Status change detected: running
22:59:51 [mysql] Attempting to start MySQL app...
22:59:53 [mysql] Status change detected: running



「Port80がPID4でふさがってる!?」

前にもこんなことがあったけど、
あの時の原因はSkypeとのポート競合だった。
現在は、Skypeとのポート競合はない。
だとすると、原因は?

Port80とは
Webサーバーが標準的にHTTPに割り当てるポートです。


2. 解決までの過程

localhost表示できない原因には、Port80が関係しているらしい。
ということで次は、Port80の使用状況を確認します。

2.1. Windows 「インターネット インフォメーション サービス」の確認

調べてみると、
Windowsのコントロールパネルで設定されている「インターネット インフォメーション サービス(※)」という機能が有効化されている時、ポート80が使用されるようでした。

ということで、自身のコントロールパネルでも早速確認したところ、
f:id:sntkk3:20170820124854p:plain

この条件に該当しました。

※上記設定画面の表示方法
 (1) Windows スタートボタンを右クリック
 (2)「Windowsの機能の有効化または無効化」をクリック

 f:id:sntkk3:20170820130257p:plain


そこで「インターネット インフォメーション サービス」を無効化し、再度XAMPPを再起動して確認します。

 f:id:sntkk3:20170820130436p:plain


⇒ それでも表示されません。
f:id:sntkk3:20170820131148p:plain

なので、次は、Apache ポート設定を確認します。


2.2. Apache ポート設定確認

xampp\apache\confにある httpd.conf 確認します。

#Listen 12.34.56.78:80
Listen 8080

ServerName localhost:8080


あ、ポート番号が8080になってる。
前に競合した時に変更したんだっけ?

つまり、今回の原因は、

設定ポート番号とブラウザに指定していたポート番号の不一致

だったようです。


改めて、
http://localhost:8080/
でアクセスしてみます。

今度は無事、表示されました。


以上が今回の問題解決に至るまでの過程となります。
ご参考まで。

忍者おまとめボタンを使ってみた

f:id:sntkk3:20170826140859p:plain

忍者ツールズでSNSボタンを作成

f:id:sntkk3:20170826132526p:plain
忍者ツールズ|ホームページ ブログ アクセス解析 カウンター メールフォーム :
http://www.ninja.co.jp/

「忍者ツールズ」というサービスはご存知でしょうか。
Webサイト用の便利ツール・パーツが揃っていて、無料登録だけで使えるとても便利なサービスです。

WordPressへのSNSシェアボタン設置にも、忍者ツールズは最適!
今回私も自身のWordPressサイト設置用に活用させていただきました。

以下、忍者ツールズをはじめて使う際の利用手順をご紹介します。

【手順】

1. 新規ユーザー登録
f:id:sntkk3:20170826132752p:plain

2. 次ページでは、
 ・パスワードの設定
 ・利用規約への同意
 ・個人情報の取り扱いに同意
 を行い、続行

 ⇒ 新規ユーザー登録完了です
 f:id:sntkk3:20170826133414p:plain

3.「サービス一覧へ」ボタンをクリックします
 f:id:sntkk3:20170826133616p:plain

4. サービス一覧画面から「忍者おまとめボタン」-「ツールを作成」をクリックします
f:id:sntkk3:20170826133825p:plain

5. 利用規約画面で「利用規約に同意して次へ」
f:id:sntkk3:20170826141105p:plain

6. 設置先の利用サービスを選択します
(ここではWordPressを選択します)
f:id:sntkk3:20170826141239p:plain

7. SNSシェアボタンの種類を選択します
f:id:sntkk3:20170826141337p:plain

 選択しているボタンのプレビュー
 f:id:sntkk3:20170826141435p:plain

 作成したボタンのスクリプトコード
 (このコードを設置場所にコピー・貼り付けで使用します)
 f:id:sntkk3:20170826141553p:plain


 (既成ボタンに変更を加える時)
ここからは、既成ボタンに変更を加える時の手順となります。

8. 作成したボタンは「ホーム(管理)」で編集もできます
f:id:sntkk3:20170826141515p:plain

9. ボタン管理画面から変更対象の作成済みボタン行の「編集」をクリックします。
f:id:sntkk3:20170826141619p:plain

9. ホーム(管理)画面で希望の編集(変更)を行います
「ホーム(管理)」のここでボタンの並び順変更、削除もできます
f:id:sntkk3:20170826141649p:plain

10. 編集が完了したら「プレビュー&コードを取得する」ボタンをクリックします
f:id:sntkk3:20170826141719p:plain

11. 生成されたコードをコピーし、設置したい場所に貼り付けたら作業完了です。


ちなみに、私の場合、
WordPressの以下プラグインを使用、
wordpress.org

Content Blocksに上記忍者ツールズ生成コードを貼り付け、
記事の編集画面で表示されるContent Blocksボタンでショートコードとして呼び出すことができるようになるので、そのショートコードを任意の場所に入れられるようにしています。


なお、今回はSNSシェアボタンが目的だったため、
忍者おまとめボタンについてのみのご紹介となりました。

他にもたくさんの便利ツールが揃っている模様。
これを機に、一通り使っていってみようと思います。


【関連リンク】
www.ninja.co.jp

※ 当サイトはアフィリエイト広告を利用しています