2016年7月11日月曜日

CSSで簡単に上下左右中央に文章や画像を表示する方法

今回はCSSを使って上下左右中央(ブラウザの真ん中)に文章や画像を配置してみましょう。

対応ブラウザはIE10以降とモダンブラウザです。


【1】HTMLとCSSファイルを用意します

※用意したCSSファイルへのパスはご自分の環境に合わせて変更してください。

(HTMLソース)

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="../css/center_elements.css">
<title>CSSで簡単に上下左右中央に文章や画像を表示する方法</title>
</head>

<body>

<article>
<p>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p>
</article>

   
</body>
</html>



【2】CSSもしくはSASSを記述していきます。

(1) CSSの簡単なリセットと中央表示のスタイルを指定します。

※下記CSSはgulpでSassからCSSへ変換し
自動でベンダープレフィックスを追加したソースです。

詳しくはこちらを参照ください。


@charset "UTF-8";
/*------------------------------------
    簡単なリセット
-------------------------------------*/
* {
  margin: 0;
  padding: 0;
}

/*------------------------------------
    上下左右中央に表示するスタイル
-------------------------------------*/
body,
html {
  height: 100%;
}

article {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 100%;
}

article p {
  max-width: 50%;
  padding: 10px;
  background: #ccc;
}


(Sassで記述した場合)

/*------------------------------------
    簡単なリセット
-------------------------------------*/

* {
    margin:0;
    padding:0;
}


/*------------------------------------
    上下左右中央に表示するスタイル
-------------------------------------*/

body,
html {
    height:100%;
}

article {
    display:flex;
    align-items:center;
    justify-content:center;
    height:100%;
    p {
        max-width:50%;
        padding:10px;
        background:#ccc;
    }
}


自動でベンダープレフィックスを追加してくれるので
上記記述だけで楽ですね。


どうでしたでしょうか?
テキストの箇所を画像に変えたり、横幅を変えたりして色々応用できそうですね。


下記サイトを参考にさせていただきました。


Quick Tip: The Simplest Way To Center Elements Vertically And Horizontally


ブログランキング・にほんブログ村へ ブログランキング

ブログ王ランキングに参加中!

2016年6月27日月曜日

CSSのFlexboxを使ってメインコンテンツとサイドバーの高さの合わせ方

今回はCSSのFlexboxを使ってメインコンテンツとサイドバーの高さを合わせてみましょう。

ブラウザサイズが800px以下の場合はサイドバーがコンテンツの下に落ちるように調整もしてみましょう。

まずはコンテンツとサイドバーの高さを合わせて横並びにしてみましょう。



【1】HTMLとCSSファイルを用意します

※用意したCSSファイルへのパスはご自分の環境に合わせて変更してください。

(HTMLソース)

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="../css/flexbox_sidebar.css">
<title>CSSだけを使ってサイドバーとコンテンツの高さを合わせる</title>
</head>

<body>


<section id="page">
       
<div id="main">

<h1>CSSだけを使ってサイドバーとコンテンツの高さを合わせる。</h1>

<p>サイドバーとコンテンツは、たとえどちらの内容が多くても、いつも等しい高さを保っています。</p>

<p>コンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツ</p>

<p>コンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツ</p>

<div class="wireframe-box">イメージ入れたり入れなかったり</div>

</div>

<aside>
<div class="wireframe-box double">バナーとか</div>
<div class="wireframe-box double">バナーとか</div>
<div class="wireframe-box double">バナーとか</div>
<div class="wireframe-box">バナーとか</div>
<div class="wireframe-box">バナーとか</div>
<div class="wireframe-box">バナーとか</div>
</aside>

</section>
   
</body>
</html>



【2】CSSもしくはSASSを記述していきます。

(1) まずはCSSのリセットとページ全体のスタイルを指定します。

※下記CSSはgulpでSassからCSSへ変換したソースです。
詳しくはちらを参照ください。gulpのインストール方法や使い方を紹介しています。


@charset "UTF-8";
/*------------------------------------
    簡単なリセットとページのスタイル
-------------------------------------*/
* {
  margin: 0;
  padding: 0;
}

html {
  background-color: #f3f3f3;
}

body {
  font: normal 14px "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif;
}


(2) 続いてコンテンツエリアとサイドバーエリアを水平にレイアウトします。

/*------------------------------------
    コンテンツとサイドバーを2カラムにするスタイル
-------------------------------------*/
#page {
  /* 子要素を水平にレイアウトするための指定 */
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* コンテンツとサイドバーを合わせたマックスの幅を1200pxにして中央に配置*/
  max-width: 1200px;
  margin: 0 auto;
}

#main {
  /* メインコンテンツの幅を自動で指定 */
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

aside {
  /* サイドバーの幅を280px以下にならないように指定 */
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 280px;
}


(3) コンテンツエリアとサイドバーエリアのレイアウトを調整します。

/*------------------------------------
    コンテンツとサイドバーのスタイル
-------------------------------------*/
#main {
  background: #fff;
  padding: 40px 100px 40px 40px;
  line-height: 1.5;
  color: #565a5c;
}

#main h1 {
  margin-bottom: 28px;
  font-size: 24px;
}

#main p {
  margin-bottom: 24px;
}

#main .wireframe-box {
  background: #e2e2e2;
  padding: 200px 0;
  text-align: center;
  margin-bottom: 24px;
}

aside {
  background: #292c2f;
  color: #fff;
  padding: 20px;
  text-align: center;
}

aside .wireframe-box {
  background: #37393c;
  margin-top: 20px;
  padding: 50px;
}

aside .double {
  padding: 100px;
}


これで上記画像のようにレイアウトできたかと思います。

続いてブラウザの幅を縮めた時、サイドバーをコンテンツの下に落として表示させます。



 続けて下記CSSソースを記述してください。

 @media all and (max-width: 800px) {
  /* ブラウザ幅が800px以下の場合はサイドバーをコンテンツの下に落とす */
  #page {
    /* 子要素を上から下へ垂直に表示する指定 */
    -ms-flex-flow: column;
        flex-flow: column;
  }
  aside {
    /* サイドバーをブラウザ幅に合わせる指定 */
    width: auto;
  }
  #main {
    padding-right: 40px;
  }
}


これでブラウザの幅を800px以下に縮めた時は上記画像のようにサイドバーがコンテンツの下に落ちて、ブラウザの幅に合わせて伸縮するようになりました。


サンプルのhtmlとcssをGitHubにUPしておきましたので、
もし必要であれば確認してみてください。



下記にSassで記述した場合のコードも記載しておきますね。

 /*------------------------------------
    簡単なリセットとページのスタイル
-------------------------------------*/

* {
    margin:0;
    padding:0;
}

html{
    background-color:#f3f3f3;
}

body{
    font:normal 14px "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif;
}



/*------------------------------------
    コンテンツとサイドバーを2カラムにするスタイル
-------------------------------------*/

#page {
    /* 子要素を水平にレイアウトするための指定 */
    display:-webkit-flex;
    display:flex;
  
    /* コンテンツとサイドバーを合わせたマックスの幅を1200pxにして中央に配置*/
    max-width:1200px;
    margin:0 auto;
}

#main {
    /* メインコンテンツの幅を自動で指定 */
    -webkit-flex-grow:1;
    flex-grow:1;
}

aside {
    /* サイドバーの幅を280px以下にならないように指定 */
    -webkit-flex-shrink:0;
    flex-shrink:0;
    width:280px;
}


/*------------------------------------
    コンテンツとサイドバーのスタイル
-------------------------------------*/

#main {
    background:#fff;
    padding:40px 100px 40px 40px;
    line-height:1.5;
    color:#565a5c;
    h1 {
        margin-bottom:28px;
        font-size:24px;
    }
    p {
        margin-bottom:24px;
    }
    .wireframe-box {
        background:#e2e2e2;
        padding:200px 0;
        text-align:center;
        margin-bottom:24px;
    }
}

aside {
    background:#292c2f;
    color:#fff;
    padding:20px;
    text-align:center;
    .wireframe-box {
        background:#37393c;
        margin-top:20px;
        padding:50px;
    }
    .double {
        padding:100px;
    }
}


@media all and (max-width:800px) {
  
    /* ブラウザ幅が800px以下の場合はサイドバーをコンテンツの下に落とす */
  
    #page {
        /* 子要素を上から下へ垂直に表示する指定 */
        -webkit-flex-flow:column;
        flex-flow:column;
    }
  
    aside {
        /* サイドバーをブラウザ幅に合わせる指定 */
        width:auto;
    }
  
    #main {
        padding-right:40px;
    }
}


下記サイトを参考にさせていただきました。


Here Is The Easiest Way To Create Equal Height Sidebars



ブログランキング・にほんブログ村へ ブログランキング

ブログ王ランキングに参加中!

2016年6月23日木曜日

SSH接続でGitHubからSourceTreeへのクローンが終わらない場合

今回はSourceTreeとGitHubでSSH接続でクローンやプッシュをした場合、いつまで経ってもクローンやプッシュが終わらない場合の対策です。


【1】PuTTY Key Generatorで作った鍵が保存されているか確認する

SSH接続を使う場合PuTTY Key Generatorで公開鍵と秘密鍵を作ると思うのですが、
2つの鍵が自分のPCに保存されているのか確認してみましょう。


【2】Pageant Key Listに秘密鍵がAddされているか確認する

タスクバーのPageantをアイコンをダブルクリックで開きPageant Key Listに秘密鍵がAddされているか確認します。

空白でしたらAddしておきましょう。



SSH公開鍵、秘密鍵の作り方などは下記のサイトが参考になると思います。


SourceTree 設定手順 覚書【Windows】



【3】GitHubに公開鍵が登録されているか確認する 

GitHubページの右上にある水色っぽいアイコンをクリックしSettingsを選択しましょう。



左側にあるPersonal settingsメニューのSSH and GPG keysをクリックし、
SSH keysが登録されているか確認しましょう。



登録されていない場合は公開鍵を登録しましょう。

下記赤枠の中の公開鍵をGitHubに登録。




【4】SourceTreeのオプションにSSHキーが設定さているか確認する

「ツール」→「オプション」→「全般」へ移動しSSHキーが設定されいるか確認します。



【4】リポジトリをクローンする場合、保存先のフォルダに.gitが無いか確認する

クリーンに失敗した場合などに、保存先フォルダには.gitが作られます。

そのまま新たに保存先にクローンしようとするとエラーがでますので、
保存先フォルダをそのまま使う場合は.gitを削除しておきましょう。



【5】コマンドプロンプトでコマンドを入力する

上記全て問題がなく、なおかつクローンやプッシュができない場合は下記コマンドを
コマンドプロンプトへ入力してみましょう。

(入力コマンド) ※貼り付けではなく入力してください

"C:\Program Files (x86)\Atlassian\SourceTree\tools\putty\plink.exe" -ssh -C
-i "id_rsa.ppk" git@github.com

上記コマンドを入力しエンター

yを入力しエンター


これでクローンができるようになると思われます。



どうでしたでしょうか?

クローンやプッシュは問題なくできたでしょうか?

どうしてもSSHでクローンやプッシュができなく
上記【1】~【4】を見直して何度トライしてもダメだったので
【5】を試してみたらやっと解決しました。

SourceTreeとGitHubのSSH接続を諦めた方は一度上記を試してみてください(^^)/


下記参考にさせていただいたサイトです。


SourceTreeでGitHubやBitbucketにSSH接続できない



ブログランキング・にほんブログ村へ ブログランキング

ブログ王ランキングに参加中!

2016年6月21日火曜日

SourceTreeとBacklogを連携させてみよう

今回はSourceTreeとBacklogを連携させてみましょう。

過去記事で構築したgulpを使ったコーディング環境を
SourceTreeとBacklogで同期させてみたいと思います。


過去記事はこちら

【1】Backlogのフリープランに申込みしましょう。

下記URLにアクセスし、必要事項を記入しましょう。

※数人しか関わらない小規模案件ならフリープランで十分かと思います。

 Backlogお申込みフォーム



【2】プロジェクトを追加しましょう。

Backlogのフリープランに申込ができたら、ダッシュボードページからプロジェクトを追加しましょう。


プロジェクト名を練習用、プロジェクトキーをPRAにしました。


【3】Gitを有効にしリポジトリを作成しましょう。

プロジェクトを追加したらプロジェクト設定画面からGitを有効にしリポジトリを作成しましょう。

[ホーム画面]

①プロジェクト設定をクリック



[プロジェクト設定画面]

②左メニューのGitをクリック

③このプロジェクトでGitを使うボタンをクリック



④リポジトリを追加するをクリック



⑤リポジトリ名を入力しリポジトリを作成するボタンをクリック

※practiceにしました。



これでpracticeリポジトリが作成されました。





【4】SourceTreeからBacklogへプッシュしてみましょう。

先ほどのBacklogページからHTTPのURLをコピーします。

※とりま個人で使う分にはHTTPでOKだと思います。



SourceTreeを立ち上げ、右側の設定アイコンをクリック。



追加ボタンをクリック。



リモート名とURL/パスを入力します。

リモート名はbacklogにしました。

URL/パスはHTTPのURLを貼り付けます。



OKボタンをクリックするとユーザーネームとパスワードを聞かれると思いますので、
BacklogのユーザIDとパスワードを入力しましょう。
(プッシュするタイミングで聞かれる場合もあるみたいです。)

SourceTreeのリモート一覧にbacklogが作成されたと思います。



これでBacklog側にプッシュできる環境が整いました。

それではプッシュしてみましょう。

プッシュアイコンをクリック



プッシュするブランチを選択しOKボタンをクリックしましょう。



最初はdevelopとmaster両方をプッシュしておきます。

developは「開発をおこなうためのブランチ」 なので、featureブランチでの作業が終わりdevelopにマージしたタイミングでプッシュすればいいかと思います。

masterは「リリースしたデータを置いておくブランチ」なので、releaseブランチやhot-fixブランチからmasterへのマージが完了したタイミングでプッシュしておけばいいかと思います。


プッシュが成功するとBacklog側のpracticeリポジトリにdevelopとmasterブランチが作成されていますので、これでSourceTreeとBacklogの連携が完了しました。


ここまでで以下のコーディング環境が整いました。

  • gulpでの自動化
  • 作業フォルダと出力フォルダの分離化
  • 作業フォルダをGitとSourceTreeでバージョン管理
  • SourceTreeでGit Flowを使った開発手法導入
  • SourceTreeとBacklogを連携してプロジェクトとして管理

どうでしたでしょうか?

これでBacklogでユーザーを追加すれば、複数人でリポジトリの共有ができるようになりました。

個人で使ったり、少人数しか関わらない案件なら
とりまフリープランで試すのもアリかと思います。



ブログランキング・にほんブログ村へ ブログランキング

ブログ王ランキングに参加中!

2016年6月20日月曜日

gulpを使ったコーディング環境をGitとSourceTreeで管理してみよう

今回はgulpを使ったコーディング環境をGitとSourceTreeで管理してみようです。
過去記事で構築したgulpを使ったコーディング環境を
GitとSourceTreeで管理してみたいと思います。

GitとSourceTreeがインストールされている事と
過去記事のgulp環境を構築していることを前提としていますので
もしまだの方は先にGitとSourceTreeをインストールし、gulp環境を構築してみましょう。

※SourceTreeのインストールは結構手間がかかった記憶がありますので
諦めずにググりながらインストールしてみてください。


過去記事はこちら


【1】gulp環境構築の記事で作成したsampleフォルダを開きます。

sampleフォルダに新しくworkフォルダを作成しgulp関連ファイルと作業フォルダ格納します。

htmlフォルダ以外をworkフォルダに移動ですね。

sampleフォルダ内は以下のようになりました。


【2】gulpfile.jsを修正して出力先を変更しましょう。

workフォルダに移動したgulpfile.jsファイルに記述している各タスクの出力先のパスを変更します。

※workフォルダの中に移動したのでhtmlフォルダまでのパスが変わります。

例)
[変更前]
.pipe(gulp.dest("./html/css"))

[変更後]
.pipe(gulp.dest("../html/css"))

上記のように6個所変更しましょう。


(変更後のgulpfile.js)

var gulp = require("gulp");
var sass = require("gulp-sass");
var autoprefixer = require("gulp-autoprefixer");
var browserSync = require("browser-sync");
var imagemin = require('gulp-imagemin');
var notify = require('gulp-notify');
var plumber = require('gulp-plumber');


gulp.task("sass", function() {
    gulp.src("gulp/sass/**/*scss")
        .pipe(plumber({
            errorHandler: notify.onError("Error: <%= error.message %>")
        }))
        .pipe(sass().on("error", sass.logError))
        .pipe(sass({outputStyle: 'expanded'}))
        .pipe(autoprefixer())
        .pipe(gulp.dest("../html/css"))
        .pipe(browserSync.stream())
        .pipe(notify({
            title:'Sassをコンパイルしました。',
            message:new Date()
       }));
});

//html
gulp.task("html", function () {
    gulp.src("gulp/**/*.html")
        .pipe(gulp.dest("../html/"))
        .pipe(browserSync.stream())
        .pipe(notify({
            title:'HMTLをコンパイルしました。',
            message:new Date()
       }));
});

//js
gulp.task("js", function () {
    gulp.src("gulp/js/**/*.js")
        .pipe(gulp.dest("../html/js/"))
        .pipe(browserSync.stream())
        .pipe(notify({
            title:'JSをコンパイルしました。',
            message:new Date()
       }));
});

//img
gulp.task('jpg', function() {
    gulp.src('gulp/**/*.jpg')
        .pipe(imagemin())
        .pipe(gulp.dest('../html/'))
        .pipe(browserSync.stream());
});

gulp.task('png', function() {
    gulp.src('gulp/**/*.png')
        .pipe(imagemin())
        .pipe(gulp.dest('../html/'))
        .pipe(browserSync.stream());
});

gulp.task('default', function() {
    browserSync.init({
        server: {
            baseDir: "../html"
        },
        // external 指定すると、実行時のアクセスURLがIPアドレス指定側で開くことができる
        open: 'external',
    });
    gulp.watch(['gulp/sass/**/*.scss'],["sass"]);
    gulp.watch(['gulp/**/*.html'],["html"]);
    gulp.watch(['gulp/**/*.js'],["js"]);
    gulp.watch(['gulp/**/*.jpg'],["jpg"]);
    gulp.watch(['gulp/**/*.png'],["png"]);
});


【3】動作確認をしてみましょう。

コマンドプロンプトでworkフォルダの階層まで移動しましょう。

※コマンドプロントにcd を入力してworkフォルダをドラッグ&ドロップ。

移動したらgulpと入力してください。

そうするとブラウザが立ち上がりhtmlフォルダのindex.htmlが表示されます。

※表示されない場合は修正したパスを見直してみましょう。

問題なく表示されたらworkフォルダ内に移動したgulpフォルダ内htmlやsassを修正してみて
htmlフォルダのファイルにも修正が反映されているか確認しましょう。


【3】SourceTreeに新規でリポジトリを作ってみましょう。

SoruceTreeの使い方は下記サイトなどに詳しく載っているので確認してみましょう。


【連載Git入門目次】ほんとは簡単?SourceTreeでGitを始めよう!


SourceTreeを開き左上の「新規 / クローンを作成する」からリポジトリを作りましょう。

「新規 / クローンを作成する」クリック

「新規リポジトリを作成」タブを選択

保存先のパス:をsampleフォルダ内に作ったworkフォルダにし、
ブックマークを任意の名前にしましょう。



リポジトリが作成できたらコミットしましょう。コミット名はファーストコミットにしました。

コミットしたらブランチにmasterが作られていると思います。




【4】Git flowを使ってみよう。

独自で運用ルールを作るのもいいのですが結構大変ですよね。

Git flowを使って運用したほうが開発効率がいいのでおすすめです。

Git flowの使い方は下記サイトで確認してみましょう。

非常に分かりやすく説明されています。


Gitを最大限に活用できる「Git flow」で、効率よく開発を進めよう!


まず始めに左上の「リポジトリ」から「Git Flow」 → 「リポジトリを初期化」を選択し
そのままOKをクックします。

するとmasterの上にdevelopが自動で作られます。

これでGit Flowを使う準備ができましたので、上記のサイトで使い方を確認してください。


ここまでで以下のコーディング環境が整いました。
  • gulpでの自動化
  • 作業フォルダと出力フォルダの分離化
  • 作業フォルダをGitとSourceTreeでバージョン管理
  • SourceTreeでGit Flowを使った開発手法導入

どうでしたでしょうか?

初期設定で結構つまずいてしまったりすのですが、
色々なサイトで情報を集めながら自分が使いやすいコーディング環境を構築して
効率よくコーディングし、作業時間を少しでも減らせることを考えれば
各ツールの初期設定も頑張れるかと思います。




ブログランキング・にほんブログ村へ ブログランキング

ブログ王ランキングに参加中!

2016年6月16日木曜日

Photoshopのスライスを使わない書き出し方

今回はPhotoshopのスライスツールを使わずに画像を書き出してみましょう。
みなさんはPhotoshopのスライスツールは使っていますか?

自分の場合はPhotoshopで上がってきたデザインから画像パーツを書き出すときは
ほとんどスライスツールは使いません。

ドロップシャドウとか多様されている場合にスライスツールを使うと非常に手間がかかり、
たとえCSSでシャドウをいれるにしてもレイヤーからシャドウだけ消したりと
結構大変です。

それではどうやってスライスツールを使わずに書き出すのかというと
1枚物の画像にして選択ツールを使って書き出します。

順を追っていきましょう。

例えば下記のようなデザインがデザイナーから上がってきたとします。


 


このデザインでロゴとボタンを画像で書き出したい場合には
まず背景を非表示にします。




背景を非表示にしたら、レイヤーで分かれているデザインを表示部分をスタンプ
(Ctrl+Shift+Alt+Eキー)で1枚物の画像にします。

この場合一番上のレイヤーでかつ表示されているレイヤーを選択してから
Ctrl+Shift+Alt+Eキーで表示部分をスタンプしましょう。

すると選択レイヤーの上に1枚物のレイヤーが作成されます。

続いて1枚物のレイヤーを選択し、長方形選択ツールでロゴが全て入るように囲みましょう。



分かるでしょうか?ロゴ画像を選択ツールで囲んでいます。


選択ツールで囲んだらコピー(Ctrl+C)して新規(Ctrl+N)そのままOKでエンターを押すと
下記のように新しいドキュメントが作成されます。




そこでペースト(Ctrl+V)すればロゴ画像だけが抜き出せました。



あとはこれを書き出せばロゴ画像パーツの完成です。

自動で画像に合わせて新規ドキュメントを作ってくれるのでスライスする手間が省けましたね。


ドロップシャドウがかかったボタン画像も同じようにドロップシャドウも含めて選択ツールで
囲んでやれば自動でサイズ調整して新規ドキュメントを作ってくれます。




どうでしたでしょうか?

パーツごとにしっかりとデザインしてくれるデザイナーだと書き出しが表示に簡単にできます。





ブログランキング・にほんブログ村へ ブログランキング

ブログ王ランキングに参加中!