自動計算でマージンを開ける

割り切れない数字に対して、calcで自動計算出来ます。
width: calc(98% / 3);で残りの98%を3分割します。
両端にマージンを入れたくない時などに使うと便利です。

  • てすと
  • てすと
  • てすと

.test {
list-style: none;
padding: 0;
overflow: hidden;
zoom: 1;
}

.test li {
background: #222;
margin-right: 1%;
height: 30px;
float: left;
width: calc(98% / 3);
}

.test li:last-child {
margin-right: 0;
}

MW WP Form 住所入力補完

WordPressでお問合せフォームといえば、Contact Form 7が有名ですが、
最近はMW WP Formが非常に使い勝手がよく、おすすめです。

主なメリットは以下の点
・確認画面が表示可能
・同一URL・個別URLでの画面変遷が可能
・豊富なバリデーションルール
・問い合わせデータを保存可能

また、郵便番号による住所入力の補完も簡単に実装可能です。
今回はその手順を紹介します。

以下のサイトを参考にさせていただきました。
http://megane-blog.com/2014/08/06/1204

■ajaxzip3を読み込む
head内に下記を記述します。

<script type='text/javascript' src='https://ajaxzip3.github.io/ajaxzip3.js?ver=20140807'></script>

■script実行
name設定が次の場合→郵便番号”zip”、都道府県”area”、市区町村”city”

<script type="text/javascript">
jQuery(function( $ ) {
    jQuery( 'input[name="zip"]' ).keyup( function( e ) {
        AjaxZip3.zip2addr('zip','','area','city');
    } )
	if($('#mw_wp_form_mw-wp-form-xxxx').hasClass('mw_wp_form mw_wp_form_confirm')){
		$(".comments").css('display', 'none');
	}
} );
</script>

■Formのソース

<tr class="address">
<th>郵便番号</th>
<td>[mwform_text name="zip" class="zip" size="40" placeholder="例)123-4557"]</td>
</tr>
<tr>
<th>ご住所</th>
<td>
<p><b>都道府県</b><br />
 [mwform_text name="area" class="area" size="40"]</p>
<p><b>市町村・番地</b><br />
 [mwform_text name="city" class="city" size="40"]</p>
<p><b>建物・部屋番号</b><br />
 [mwform_text name="build" class="build" size="40" placeholder=""]</p>
</td>
</tr>

さらに、MW WP Formには「URL引数を有効にする」オプションもあります。

次回はこのオプションを使ったカスタマイズを紹介します。

テキストを均等割付で揃える

p{
text-align:justify;
text-justify:inter-ideograph;
}

text-alignは文字の表示位置指定するプロパティです。
centerと指定して中央寄せなどに使用します。今回は、文字の両端を均等割付にするために、両端揃えのjustifyを指定します。

text-justifyはtext-align:justify;の時の均等割付の形式を指定します。これを単語間隔と文字間隔を自動調整するinter-ideographを指定します。

なお、Firefoxでは標準仕様で禁則処理に対応しています。

幅サイズ不明のdiv要素を中央揃え

中央寄せにする、横幅が可変な要素をdivタグで囲い、外側の要素にtext-align: center;を指定します。
中央寄せにしたい要素にdisplay: inline-block;を指定します。

指定することで、親要素のtext-align: center;によって中央寄せになります。

■html

  • テスト
  • テスト
  • テスト

■css
.test_wrapper {
text-align: center;
}
.test {
display: inline-block;
}

bxSliderカスタマイズ

簡単に設置することができるjQueryのスライドショー、bxSliderのカスタマイズ

たくさんのオプションが用意されており、
■mode

スライドショーの種類

デフォルトで:horizontal

horizontal:横スライドする
vertical:縦スライドする
fade:フェードイン・フェードアウト

など色々な方法で表現ができます。

写真をマスク

プロパティのclip: rect(上側, 右側, 下側, 左側 )で画像の表示範囲を指定することが可能です。
positionプロパティをabsoluteに、rectの中は(上側 右側 下側 左側)です。
■css
.test img{
position: absolute;
clip: rect(50px 50px 50px 50px);
}

初期値は auto(切り抜かない)です。

画像の上に文字を配置

マウスオーバーで注釈を出す方法です。
通常時に注釈を隠し、マウスオーバー時にtranslateY()で縦方向に移動させることで
配置します。

■html

テキスト

■css
figure.test {
text-align: center;
overflow: hidden;
position: relative;
width: 100%;
}

figcaption.overray-cap {
bottom: 0;
left: 0;
position: absolute;
transform: translateY(100%);
transition: all .35s;
width: 100%;
-webkit-transition: all .35s;
}

figure.test:hover .overray-cap {
transition-delay: .1s;
transform: translateY(0);
}

figure.test img {
vertical-align: bottom;
width: 100%;
}

レスポンシブ

レスポンシブ化する前に、CSSを指定する時に知っておくと便利なこと

■widthやheightの固定を解除する
widthやheightはautoを指定する事が可能です。
widthはブロック要素なら%指定で横幅いっぱいに、heightはコンテンツ内容に合わせた高さになります。

■max-width などの上限下限指定を消す
max-width, max-heightはnoneを指定するが可能です。

■position:absolute; の打ち消し
position:relative;を指定で、top:50pxなど位置の指定はtop:autoと指定することで打ち消す事ができます。

1行で、レスポンシブ改行テクニック

■html

てすとてすとてすとてすとてすとてすと

■css
span{display:inline-block;}

span要素に「display:inline-block;」を指定。
タグを改行したい部分、後ろ側に指定して、画面とテキストの量に応じて自動的に改行してくれます。
使い道として、見出しやコピーライトなどに使うことができます。

メインビジュアルの背景を動画にする

自社のサイトリニューアルの際に、メインビジュアルで動画を流すことになったので、
html5のvideoタグと、再生を制御するjavascriptについて解説します。

■HTMLソース

<div id="mainVisual">
  
  <div id="cover"></div>
    <video autoplay id="bgvid">
      <source src="asset/movie/video.mp4" type="video/mp4">
    </video>

</div>
<!-- /mainVisual -->

■css

html, body {
    height: 100%;
}
#mainVisual {
    width: 100%;
    height: 100%;
}
#mainVisual video#bgvid {
    position: fixed;
    right: 0;
    bottom: 0;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: -100;
}
#cover {
    background: url(../../asset/movie/cover.jpg) no-repeat;
    background-size: cover;
    z-index: -1;
    width: 100%;
    height: 100%;
    opacity: 1;
    transition: 5s;
}
#cover.fade {
    opacity: 0;
}

今回は、動画をフェードインさせる必要があったので、video要素の直前にカバー画像用のdivを作りました。
video自体をjQueryでフェードインさせると、処理が重たくなり再生がスムーズにされなかったので、
フェードイン効果はcss3で実装しています。

■javascript

<script>
$(window).load(function() {
  $('#cover').addClass('fade'); //#coverにクラスを付与
});
$(function() {
        var video = document.getElementById('bgvid');
        //再生位置を秒で設定する
        video.currentTime = 11;
        // 再生速度を変更する
        video.playbackRate = 1;
        // 再生開始
        video.play();
    });
</script>