Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all 8499 articles
Browse latest View live

[別々で動くSkill bar]同一クラスを使って可視領域に入った要素を別々に動作させる方法

$
0
0

はじめに

スキルバーはネットにいっぱい情報が転がってるけど、

 1.クリック動作だけとかスクロール設定までされてないもの
 2.デザインにこだわりすぎてシンプルじゃないもの
 3.ライブラリを使ってるもの
 4.なぜか全部一緒に動くようにしてる。←ココが一番気になる
 5.シンプルでそれぞれ別々で動くものがない

というスキルバーが結構あったので、
以下のようなスキルバーを作成すべくコーディング。

上記を解決するために、
1.シンプルで汎用的なもの
2.全部一緒に動かずに別々に動くもの(同じクラスを付与)
3.別ライブラリを使わずになるべく再現性や応用ができるもの

の3つにこだわって作成。
DEMOはこちら。


See the Pen
pojEJeY
by 坊 拓磨 (@bo_chan6130)
on CodePen.


こんな感じで、
スクロールすれば可視領域でそれぞれのバーが動く、という仕組みを作ってみた。
(下記に解説を載せておきます。)

HTMLとCSSを準備

index.html
<script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><divclass="pro-box"><divclass="Progress_Status"><divclass="myprogressBar"></div><divclass="prorate"data-value="80">1%</div></div><divclass="Progress_Status"><divclass="myprogressBar"></div><divclass="prorate"data-value="60">1%</div></div><divclass="Progress_Status"><divclass="myprogressBar"></div><divclass="prorate"data-value="40">1%</div></div><divclass="Progress_Status"><divclass="myprogressBar"></div><divclass="prorate"data-value="20">1%</div></div></div>

[point]
バーと数字(%)を別で動作させる仕組みの方がかなり簡単だけど正直カッコよくないので
myprogressBarの長さは、直下の要素<div class="prorate" data-value="80">1%</div>data-value=""の値に応じて長さが決まるようにする。

index.css
.pro-box{margin-bottom:500px;margin-top:300px;/*スクロール用*/}.Progress_Status{width:100%;background-color:#fff;}.myprogressBar{width:1%;height:50px;background-color:#6babf1;text-align:center;display:inline-block;}.prorate{display:inline-block;vertical-align:top;height:50px;line-height:50px;margin-left:10px;}

バーの大きさやスタイル調整はお好みで。

jQueryで動作を制御

作成にあたってのミソ。
Ⅰ)スクロールして要素が可視領域に入れば「一度だけ」動作する
Ⅱ)同クラスから別々のdata-value値をそれぞれ取得→動作させる

index.js
$(function(){$(window).scroll(function(){$(".myprogressBar:not(.fire)").each(function(){//eachで同一クラスmyprogressBarをそれぞれ取得varposition=$(this).offset().top;//それぞれ要素の位置を取得varscroll=$(window).scrollTop();//スクロール値を取得varwindowHeight=$(window).height();//画面サイズの高さを取得varelement=$(this);//barの長さに反映するために用意varprorate=$(this).next();//指定要素の2番目の要素<div class="prorate"></div>をnext()で指定。varvalue=prorate.data("value");//barの値を取得varwidth=1;//初期値を1に設定if(scroll>position-windowHeight){//可視領域設定。※高さを変えたい場合はwindowHeightの後ろを調整。+ 100 にすると画面下から100pxの高さで表示設定できる。varidentity=setInterval(scene,10);//setIntervalで関数を制御。バーの動きを遅くしたい場合は第2引数の数字を増やす。functionscene(){if(width>=value){clearInterval(identity);//value値まで数字が到達すればintervalをストップ。}else{$(element).addClass('fire');//それぞれの要素にfireクラスを付与。「一度だけ」行う関数の制御にはaddClassが有効。width++;element.width(width+'%');//barの長さ。value値の分だけ伸びる設定prorate.html(width*1+'%');//value値のカウント※html()でindex.htmlのテキスト「1%」を上書き)}}}})})})

[point]
ポイントは、「一度だけ処理」する場合はaddClass()を使って制御するということ。
今回の場合、最初はfireクラスを持っていないmyprogressBarをそれぞれ取得し、function scene(){}を実行するときに、fireクラスを持たせることで、$(window).scroll(function(){ }以下のループ処理を実行不可にさせている。もし、この処理がない場合は、スクロールするたびにeachがループするので、思った挙動は起こらない。今回のように同一クラスを用いて別々に「一度だけ」実行処理する場合はaddClass()で制御する。

また、同一クラスでそれぞれの値を取得するときは、each(){}の中身は必ず$(this)で統一する。仮に$(".myprogressBar")とした場合、ループは実行されず、最初の.myprogressBarのみ値を取得する。そのため、一番上のバーのみ動き、他は動かくなるので注意が必要。

まとめ

scroll()を使用するとスクロール度に動作が実行されるので、addClass()を使って動作制御をすることでうまくいく。また、このコードを参考に指定値までのカウンティングに応用できるはずなので、余力があればそちらも公開したい。


z-indexを指定された要素のwidthを100%にする

$
0
0

z-indexを指定された要素のwidth:100%でポロリした人へ

z-indexを指定するためには、positionプロパティをデフォルトから変更しなければなりませんよね。

そこでposition: fixedを指定した場合、widthの参照先は(多分)ウィンドウのサイズです。

親要素を基準に100%にしたいですよね。

position: absoluteにしてください。それだけです。この場合、大きさの参照先は親要素になります(多分)。

ただ、fixedした状態(スクロールしても動かない状態)でz-indexをつけたい人もいますよね。

以下のように親要素、小要素のプロパティを設定すればうまくいきます。例えば、モーダル上にスクロールつけたい方はこのようにしてください。

小要素までposition: fixedにしないように気をつけてください。

.parent{position:fixed;width:200px;}.child{position:absolute;width:100%;z-index:10001;background-color:white;}

(例)

image.png

CSS グリッドレイアウトはいいぞ

$
0
0

display: flex:はめちゃめちゃ使ってたが grid 使ったことなかったなぁと思い、今更ながら調べてみた

結論

grid-template-areas は神
css ライブラリにあるグリッドシステムに頼らなくても簡単に実装できるぞ!!

注意事項

雑多にまとめたので、少し助詞・副詞が足りてない部分があります
この記事に書いてあることはググれば大体出てきます
ここら辺は全部、一緒の箇所に書かれてる記事あんまりなかったので何かの参考になる可能性がありそうな気もしたり、しなかったり

基本

参考にした記事

小要素の div が親要素の幅いっぱいに縦に並ぶ

<divclass="container"><div>いち</div><div></div><div>さん</div><div>よん</div></div>
.container{display:grid;}

grid-template-

明示的に小要素の幅や高さを指定する場合

grid-template-columns

指定した大きさ分、横に小要素が並ぶ

下記の場合、いちが 200px で横に並び、
さんよんは折り返されて下に 200px で横に並ぶ

.container{display:grid;grid-template-columns:200px200px;}

fr

親要素の幅にいっぱいに指定した割合で小要素を横に並べてくれる

下記の場合、幅が 2 等分された小要素が横に並ぶ

.container{display:grid;grid-template-columns:1fr1fr;}

fr と px 指定は両方織り交ぜて指定が可能

repeat()

.container{display:grid;grid-template-columns:repeat(2,1fr);/* grid-template-columns: 1fr 1fr; と同義 *//* いろんなパターンつ使える *//* grid-template-columns: repeat(2, 1fr 2fr); *//* grid-template-columns: repeat(2, 1fr) 20px; */}

grid-template-rows

grid-template-columns の高さ版

行の高さが一行目 300px, 二行目 500px, 三行目 200px になる

.container{display:grid;grid-template-columns:300px500px200px;}

grid-auto-

暗黙的に幅や高さを指定する場合

幅 200px 高さ 200px の小要素になる

.container{display:grid;grid-auto-columns:200px;grid-auto-rows:200px;}

minmax

css の min-height や min-width と同じ感じ
子要素の高さが 100px よりも小さくならずに、大きくなると auto で広げてくれる

.container{display:grid;grid-auto-rows:minmax(100px,auto);grid-template-columns:repeat(3,1fr);}

グリッドの配置

grid-column-は横線の位置から数える
grid-row-は縦線の一から数える
グリッドは四角形で構成される
L 字の形を作るには力技が必要かも

<divclass="container"><divclass="box1">いち</div><divclass="box2"></div><div>さん</div><div>よん</div></div>
.container{display:grid;grid-auto-rows:100px;grid-template-columns:repeat(3,1fr);}/* 幅は親要素の横幅いっぱい *//* 高さは2行分 100px * 2 = 200px */.box1{grid-column-start:1;grid-column-end:4;grid-row-start:1;grid-row-end:3;}/* 幅は親要素を三等分した時の1/3 *//* 高さは2行分 100px * 2 = 200px かつ 3行目から始まる */.box2{grid-column-start:1;grid-column-end:2;grid-row-start:3;grid-row-end:5;}

グリッドの間隔

グリッドの間の横線(column-gap)でも指定できるし
縦線(row-gap)でも指定できる
両方(gap)もいける

.container{display:grid;grid-auto-rows:100px;grid-template-columns:repeat(3,1fr);gap:3px;/* column-gap: 3px;
  row-gap: 1px; */}

grid のネスト

<divclass="container"><divclass="box1"><div>いちのいち</div><div>いちのに</div><div>いちのさん</div></div><div></div><div>さん</div><div>よん</div></div>
.container{display:grid;grid-auto-rows:100px;grid-template-columns:repeat(3,1fr);}.box1{grid-column-start:1;grid-column-end:4;grid-row-start:1;grid-row-end:3;/* box1の横幅を三等分にしたbox1の子要素が並ぶ  */display:grid;grid-auto-rows:100px;grid-template-columns:repeat(3,1fr);/* gapも継承されない */gap:3px;}

z-index

z-index 使って重なり順を指定できるよ

<divclass="container"><divclass="box1">いち</div><divclass="box2"></div><div>さん</div><div>よん</div></div>
.container{display:grid;grid-auto-rows:100px;grid-template-columns:repeat(3,1fr);}/* 幅は親要素の横幅いっぱい *//* 高さは2行分 100px * 2 = 200px */.box1{grid-column-start:1;grid-column-end:4;grid-row-start:1;grid-row-end:3;z-index:1;}/* 幅は親要素を三等分した時の1/3 *//* 高さは2行分 100px * 2 = 200px かつ 2行目から始まる *//* 2行目はbox1のがz-index上なのでbox2が見えない */.box2{grid-column-start:1;grid-column-end:2;grid-row-start:2;grid-row-end:4;}

flex vs grid

行又は列のみによってレイアウトを制御する必要がありますか → display: flex;
行及び列によりレイアウトを制御する必要がありますか → display: grid;

grid-template-area

参考にした記事

grid-template-rowgrid-template-columnsを明示的に表した感じのもの

.が一つ以上ある場合、空とみなされる

  grid-template-areas:
    "Box1 Box1 Box1"
    "Box1 Box1 Box1"
    "Box2 Box3 Box4"
    "Box2 Box5 ....";
<divclass="container"><divclass="box1">いち</div><divclass="box2"></div><divclass="box3">さん</div><divclass="box4">よん</div><divclass="box5">よん</div></div>

下記は全部同じレイアウトになる

.container{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:100px;gap:3px;}.box1{grid-column-start:1;grid-column-end:4;grid-row-start:1;grid-row-end:3;}.box2{grid-column-start:1;grid-column-end:2;grid-row-start:3;grid-row-end:5;}

grid-area: grid-row-start / grid-column-start / grid-row-end / grid-column-end;
的な指定もできる

.container{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:100px;gap:3px;}.box1{grid-area:1/1/3/4;}.box2{grid-area:3/1/5/2;}
.container{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:100px;grid-template-areas:"Box1 Box1 Box1""Box1 Box1 Box1""Box2 Box3 Box4""Box2 Box5 ....";gap:3px;}.box1{grid-area:Box1;}.box2{grid-area:Box2;}.box3{grid-area:Box3;}.box4{grid-area:Box4;}

レスポンシブ対応:CSSのみ

$
0
0

はじめに

CSSのみで行った、レスポンシブ対応の方法を一例として記載します。

HTMLに記述

index.html
<head>  <metacharset="UTF-8">  <metaname="viewport"content="width=device-width,initial-scale=1.0">//・・・①
  <linkhref="style.css"rel="stylesheet"type="text/css">//・・・②
</head><h1>文字サイズと色が変わります。</h1>//・・・③

①headタグにこの一文を記載します。
②記載するcssです。
③cssが対応するセレクタです。

CSSに記述

style.css
/* :1280px〜
------------------------------ *//*ここに基本CSSを書きます。*/h1{font-size:30px;}/* :700px〜1279px
------------------------------ */@mediascreenand(min-width:700px)and(max-width:1279px){h1{font-size:20px;color:blue;}}/* :480px〜699px
------------------------------ */@mediascreenand(min-width:480px)and(max-width:699px){h1{font-size:10px;color:red;}}/* :〜479px
------------------------------ */@mediascreenand(max-width:479px){h1{font-size:5px;color:green;}}

画面の幅のサイズによって対応するプロパティの値が決まります。

あとがき

これだけでレスポンシブ対応ができます。
メディアの規格ごとに細かい違いがあるので、どこを基準として設定するのかがポイントです。
他にも様々な方法があるのでより適した方法をチョイスしましょう。

上下左右の中央寄せはflexboxを使うと楽

$
0
0

はじめに

コードを書いてばかりだと記憶に定着しないので、実際に言葉にして自分の失敗談を中心に書いてみたいと思います。
実際にQiitaで初めて記事を書くんだけど、そこは多めに見てほしいです。
今回は上下左右の中央寄せの話です。

実際にやらかした失敗

例えば、ボタンを作成してるとボタンの内側の文字を上下左右の中央寄せで書くことが多いと思います。
実際に僕がやらかした失敗として、ボタンの内側の文字をpaddingを用いて力技で上下左右にしてしまいました。
僕が知ってる中央寄せで使いこなせるプロパティはtext-align:center;くらいしかなかったです。
これだと上下に中央寄せできないですね。
上下に中央寄せするのにpadding使うのは力技すぎて笑ってしまう。
今思うと、「なんて非効率なことをしたんだろう…」って思います。

解決策

そんな恥ずかしい失敗をしてしまったからこそ、自分がどうやって解決したかをまとめておきます。
paddingの力技を用いずともfloatの上位互換と言っても良いくらい便利なflexで解決できてしまいます。
それが以下のコードのように書けば綺麗に上下左右に中央寄せできます。

index.html
<!DOCTYPE html><htmllang="ja"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><linkrel="stylesheet"href="style.css"><title>ボタン</title></head><body><divclass="all"><divclass="button"><h2>ボタン</h2></div></div></body></html>
style.css
.all{display:flex;justify-content:center;}.button{width:300px;height:40px;display:flex;align-items:center;justify-content:center;border:1pxsolid#000000;border-radius:25px;}

ボタンの枠線を中央寄せするにはallクラス(親要素)にdisplay:flex;とjustify-content:centerを。
ボタンの文字を中央寄せはbuttonクラス(子要素)にdisplay:flex;とjustify-content:center;align-items:center;を。
これでボタン全体がブラウザで綺麗に中央寄せになり、文字が綺麗に上下左右になりました。

終わりに

flexboxは主に横並びのときに使う便利なプロパティですが、中央寄せするときでも使える便利です。
flexboxの奥深さを改めて気づいた一日でした。

参考記事

CSSで要素を上下や左右から中央寄せする7つの方法

初心者によるプログラミング学習ログ 295日目

$
0
0

100日チャレンジの295日目

twitterの100日チャレンジ#タグ、#100DaysOfCode実施中です。
すでに100日超えましたが、継続。
100日チャレンジは、ぱぺまぺの中ではプログラミングに限らず継続学習のために使っています。
295日目は、

HTMLに書くURI

$
0
0

基本的なことなのに

なんとなくで動いていたのだが、改めて調べて”へぇ”となったので。
お恥ずかしい

前提
こんなHTMLにアクセスしているとする
http://localhost/test/test.html

相対パス

<ahref="relative.html">LINK</a>

この時リンク先は今のディレクトリ階層から相対パスとなり
http://localhost/test/relative.html
になる

絶対パス

<ahref="/absolute.html">LINK</a>

この時リンク先はホスト名からの絶対パスとなり
http://localhost/absolute.html
になる

URL

<ahref="http://localhost/url/url.html">LINK</a>

この時リンク先はそのままURLで扱われるので
http://localhost/url/url.html
になる

これまで意識してこなかったけど、
こうなってるらしい。

hsl()の値をCSS変数で管理

$
0
0

自分用忘備録

明度と彩度はcalcを使って%にしてあげないといけない。
CSS変数はIE11では機能しないため、Polyfillを入れる。
https://github.com/nuxodin/ie11CustomProperties

16進数の色ならPolyfillが効くけど、
CSS変数+hls()はPolyfillが効かないみたい。。(ガッカリ)

:root{--h:134;--s:69;--l:37;--c-site-base:hsl(var(--h),calc(var(--s)*1%),calc(var(--l)*1%));}

【Salesforce】簡単にCSSを反映する方法

$
0
0

はじめに

最近業務で書き始めたSalesforceのVisualforceについて記載します。
まだ始めたばかりの初心者なので、もし認識違い等あればコメントでご連絡いただけますと助かります。

本記事の対象

  • Visualforceを始めたばかりの1週間前の私
  • Visualforce初心者
  • VisualforceでCSSを簡単に反映したいと思っている方

VisualforceにCSSを反映する

VisualforceにCSSを反映する方法は、3通りあります。

①HTMLベタ書き

<head><style type="text/css">p{color:#fff;background-color:#000;}</style></head>

② 外部Stylesheet(自作)を呼び出し

 あることは知っているけど、やり方等詳細はわからないので飛ばします
 公式サイトには書いてあるっぽい…?

https://developer.salesforce.com/docs/atlas.ja-jp.lightning.meta/lightning/apps_css_external_platform.htm

③ 外部Stylesheet(Salseforce公式)を呼び出す
 この存在を1週間前の私に教えてあげたいってことで、今回のメインです。

 Salseforceには公式のStylesheetなるものが存在しています。
 何者かというと、以下の一文を追加して、後は公式のクラス名を当てはめれば勝手にCSSが反映されます。
 https://www.lightningdesignsystem.com/

<apex:stylesheetvalue="{!URLFOR($Resource.SLDS, 'styles/salesforce-lightning-design-system.min.css')}"/>

たとえば余白(margin)を付けたい場合

①「Search」に「margin」と入力して検索します
https://www.lightningdesignsystem.com/

1.JPG

②使いたいMarginを選んで、divタグをコピー
 赤枠で囲った部分をクリックしてもコピーはできる🙆
2.JPG

③先程コピーしたdivタグを使用したい部分に記載する
 普段書くClass名と同じように指定すればOK
 なので、pタグなどに指定してもOK

(記載例)

<divclass="slds-m-around_xxx-small"><h1>テスト</h1></div>

よく使うやつ

個人的に良く使うやつ

Margin(外側の余白)
https://www.lightningdesignsystem.com/utilities/margin/#site-main-content

Pdding(内側の余白)
https://www.lightningdesignsystem.com/utilities/padding/#site-main-content

ccenter(画像とかテキストを中央に揃える
https://www.lightningdesignsystem.com/utilities/alignment/

grid(画像の横並び レスポンシブにも対応
https://www.lightningdesignsystem.com/utilities/grid/#site-main-content

table(みんな大好き?テーブルさん)
https://www.lightningdesignsystem.com/components/data-tables/#site-main-content

最後に

これを知っているだけで、開発工数が縮まると思います

Salesforceに興味がある方は、trailheadがおすすめみたいです!
https://trailhead.salesforce.com/ja/home

1分でわかるBootstrap4の書き方

$
0
0

Bootstrap4を実際に書き始めるまでの基礎をまとめました。

CDN
<linkrel="stylesheet"href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"crossorigin="anonymous"><script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"crossorigin="anonymous"></script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"crossorigin="anonymous"></script>

 
前提として、Bootstrapの要素はbody直下にcontainerクラスのdivで囲います。

marginとpadding

Bootstrapでは、クラスを用いてmarginとpaddingを表し、プロパティ 上下左右-サイズの型で記述します。(例: mt-4 , p-auto)

プロパティ内容上下左右内容サイズ内容
mmarginttop00
ppaddingbbottom1*0.25
lleft2*0.5
rright3*1
xl,r4*1.5
yt,b5*3
t,b,l,rautoauto

グリッドシステム

Bootstrapでは、要素の横1行をrowクラスのdivタグで区切り、12等分した1列をカラムと呼びます。
無題 (2).png
カラムは、クラス名にcol-画面サイズ-サイズの型で記述します。(例: col-md-6 , col-10)

画面サイズ内容サイズ内容
<540px11/12rem
sm540px22/12rem
md720px33/12rem
lg960px44/12rem
xl1140px...
offset余白121rem

参考文献

詳しい内容やコンポーネントは公式ドキュメントが参考になります↓ ↓
公式ドキュメント

【WordPress】クライアントワークにおけるブロックエディタ対応テーマ構築時の小ネタ集

$
0
0

はじめに

WordPress5.0にブロックエディタが搭載されてから、一年半経ちました。

エンジニアやブロガーの間では「ブロックエディタすげえ!」「もうクラシックエディタには戻れない。。」といった声を良く聞きますが、実際のクライアントワークにおいては、まだまだ浸透していないように思います。

これまで多数のWordPressサイト構築案件を担当してきましたが、特にデザイン優先のサイトやコーポレートサイト構築ではブロックエディタの話が出る事も無く、「ブロックエディタ?何それ?」というクライアントさんや元請け会社さんばかりでした。

ですが先日、ブロックエディタで再現しやすいデザインであった事、かつクライアントさんがゴリゴリ記事を投入していきたいという熱量を感じられた案件があったため、「ブロックエディタにフル対応したコーポレートサイト構築」という方針を取りました。

その開発の中で、ブロックエディタの魅力を十分に引き出しつつ、不慣れなクライアントさんでも使いやすいように取り入れたノウハウをまとめて共有したいと思います。

対象とする方

  • HTML5/CSS3に沿ったコーディングが出来る。
  • 一からオリジナルテーマを作成でき、かつアクションフック・フィルターフック・テンプレートタグを適切に使用出来る。
  • ブロックエディタにおいて、バックエンド、フロントエンド側それぞれに適用するCSS/JSをどのようにenqueueすればよいか何となく理解している。
  • エディタ側、フロントエンド側のブロックでどのようなclass名が付与されるかを知っている(探す事が出来る)
  • npm、babel、webpackというワードは知らなくてもとりあえずおk
  • カスタムブロックは作った事がなくてもおk

備考

  • 記事執筆にあたり検証した環境は、WordPress 5.4です。
  • フロント側でブロック用のデフォルトスタイルが読み込まれている事を前提としています。 (wp_dequeue_style( 'wp-block-library' );をfunctions.phpに記述していなければ自動で読み込まれます)

色設定編

カラーピッカーを非表示にする

デフォルトで用意されているカラーパレットの他にカラーピッカーがあり、直観的にで好きな色を選ぶことが出来ます。

便利そうな機能ですが、同じ色でもブレが生じたり、またクライアントさんの趣向によっては何ともカラフルなコンテンツが出来上がってしまう可能性がありますので、無効にします。

functions.php
add_theme_support('disable-custom-colors');

またインラインスタイルで色が指定されるため、次項に述べるような一括での色調整が難しくなります。

カラーパレットを変更する

デフォルトでは12色用意されていますが、ベースとなるテーマのカラーに合わせて、パレットのバリエーションを変更します。
デザインに疎いためどのような配色が最適かはっきり言えませんが、テーマで使われている色のうち、

  • メインカラー
  • サブカラー
  • フォントカラー
  • アクセントカラー

あたりをピックアップして組み合わせれば良いと思います。

Qiitaを例にして、実際のコードを記載します。

functions.php
add_theme_support('editor-color-palette',array(// array(//  'name'  => 'カラーパレットをマウスオーバーした際のタイトル',//  'slug'  => '付与されるclass名',//  'color' => 'カラーコード',// ),array('name'=>'メインカラー','slug'=>'main','color'=>'#55c500',),array('name'=>'サブカラー','slug'=>'sub','color'=>'#3f9200',),array('name'=>'フォントカラー','slug'=>'font','color'=>'#333333',),array('name'=>'アクセントカラー','slug'=>'accent','color'=>'#cd2e22',),));

アクセントカラーは、以下のサイトからピックアップしました。
ベースカラーを指定するだけで、いい感じのカラーバリエーションを生成してくれます。

https://palx.jxnblk.com/

ここまでの設定で、サイドバーの色設定は以下のようになります。

カラーピッカー.png

ちょっと地味過ぎましたね。。

なお、WordPress5.4から文章中で部分的に色を設定できるインラインカラーが追加され、ブロックの文字色・背景色とあわせると、カラーパレットを適用した対象に以下のようなclassが付与されます。

カラーパレット適用の対象付与されるclass名
インライン文字色has-inline-color,
has-{slug}-color
ブロック文字色has-text-color
has-{slug}-color
ブロック背景色has-background
has-{slug}-background-color

なので、文字色であれば .has-{slug}-colorに、背景色であれば .has-{slug}-background-colorにスタイルを当てる事になります。

インラインで指定しているわけではないので、例えば「全部のアクセントカラーをもう少し濃くしたいなあ」と思った時は、.has-accent-color.has-accent-background-colorのプロパティ値を変えるだけで済みます。

また、slugにredyellowなどの色名ではなく、mainsubといったclass名としたのには理由があります。

例えば、メインカラーをredからblueにしたいとなった場合。
メインカラーのセレクタを.has-red-colorとしていた場合、「class名にredが含まれてるのに、なぜか表示される色が青」と混乱が起こってしまいます。

色設定自体を無効にする

実際の案件で発生する事はあまりないと思いますが、色設定自体を無効にする事もできます。
インライン文字色、ブロック文字色、ブロック背景色すべてが無効になります。

functions.php
add_theme_support('editor-color-palette');add_theme_support('disable-custom-colors');

グラデーション設定を無効化する

WordPress5.4では、ボタンブロックとカバーブロックでグラデーションを利用出来るようになり、カラーピッカーに加えてタイプ(円形/線形)角度を調整する事が出来ます。

ここも「色設定のカラーピッカーを非表示にする」と同様の理由で、カスタム設定を無効化します。

functions.php
add_theme_support('disable-custom-gradients');

グラデーションのカラーパレットを変更する

配色の決め方は「色設定のカラーパレットを変更する」に準ずるとして、コードの一例を記載します。

functions.php
add_theme_support('editor-gradient-presets',array(array('name'=>'メイングラデーション','gradient'=>'linear-gradient(to right, #55c500, #3f9200)','slug'=>'main',),));

グラデーションを無効化する

グラデーション自体使わないという場合は、無効にすることも出来ます。

functions.php
add_theme_support('disable-custom-gradients');add_theme_support('editor-gradient-presets');

無効にした場合、デフォルトの状態からこのように変わります。
グラデーション.png

すっきりしましたね!

テキスト設定編

テキスト設定でフォントサイズの数値指定を無効化する

プリセットサイズとして用意されているバリエーションに加え、数値入力(px)でフォントサイズを変更出来ます。

これも、「色設定のカラーピッカーを非表示にする」「グラデーション設定を無効化する」と同様の理由で無効化します。

またpx指定なので、非レスポンシブとなってしまいます。

functions.php
add_theme_support('disable-custom-font-sizes');

テキスト設定でフォントサイズのバリエーションを変更する

デフォルト(class無し)に加えて5サイズ用意されており、それぞれ付与されるclass名と適用されるフォントサイズは以下の通りです。

プリセットサイズ付与されるclass名フォントサイズ(エディタ側)フォントサイズ(フロント側)
has-small-font-size13px13px
標準has-normal-font-size16px16px
has-medium-font-size20px20px
has-large-font-size36px36px
特大has-huge-font-size48px42px

※上記に加えて、has-regular-font-sizehas-larger-font-sizeというclass名も定義されていますが、現在は使われていないようです。
gutenberg/style.scss at c19d2d908cba695960cf8407bd0b0afc181aa657 · WordPress/gutenberg · GitHub]

前述の通り、フォントサイズはpx指定のため、例えばPC/スマホでベースのフォントサイズが変わった場合にバランスが崩れてしまいます。
そのため、emまたはremでのフォントサイズ指定に変更するか、テーマにあわせてメディアクエリ等で調整します。

上記セレクタをそのまま使っても良いのですが、バリエーションを変えたい場合は以下のように記述します。

functions.php
add_theme_support('editor-font-sizes',array(// array(//  'name'  => 'プルダウンの表示名',//  'size'  => 'フォントサイズ(px)',//  'slug' => '付与されるclass名',// ),array('name'=>'小','size'=>14,'slug'=>'small',),array('name'=>'中','size'=>20,'slug'=>'medium',),array('name'=>'大','size'=>24,'slug'=>'large',),));

ここでは、ベースのフォントサイズを16pxとして、3パターンを定義しました。
また、エディタ側ではフォントサイズをpxでしか指定できないため、16pxをベースにフォントサイズを決定します。

付与されるclass名は「色設定」の場合と同様で、has-{slug}-font-sizeというクラスが付与されます。

レスポンシブ対応のため、フォントサイズをemで指定する場合の例は以下。

style.css
.has-xs-font-size{font-size:0.875em;}.has-md-font-size{font-size:1.25em;}.has-lg-font-size{font-size:1.5em;}

ここまでの設定で、サイドバーのテキスト設定は以下のようになります。

テキスト設定.png

エディタ編

以下項目は、全てCSSで調整を行いますが、エディタ側に独自のCSSを適用する方法は3種類あります。

  1. add_theme_support( 'editor-styles' )add_editor_style( 'editor-style.css' )で読み込む
    →エディタのみに適用される。また、各セレクターの直前にブロックエディタ全体を囲っている .editor-styles-wrapperというクラスが自動的に挿入される。
  2. アクションフック(enqueue_block_editor_assets)で読み込む
    →エディタのみに適用される。
  3. アクションフック(enqueue_block_assets)で読み込む
    →フロント側・エディタ側双方で読み込まれる。

理解があやふやな方は、手前味噌ですがこちらの記事をご覧ください。

【WordPress】 Gutenberg関連のCSSまとめ

今回は、エディタ側でのみ読み込まれ、かつ書いたCSSがそのまま出力される2番の方法enqueue_block_editor_assets)での具体例を書きます。

フォント・文字サイズ

クライアントさんの記事投稿のストレスを減らすために、エディタの見た目をフロント側に出来るだけ近づける事は必須です。

まずは、デフォルトの明朝体(Noto Serif JP)からゴシック体に変更し、同時にフォントサイズ・文字色等も含めてスタイリングします。

block-editor-style.scss
.editor-styles-wrapper{>*{color:#333;font-size:18px;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Yu Gothic",YuGothic,Verdana,Meiryo,"M+ 1p",sans-serif;line-height:2;}}

.editor-styles-wrapperに書きたい所ですが、ノーマライズ用のスタイルがbody閉じタグ直前にインラインで出力されるため、優先度の関係で適用されないプロパティがあります。

エディタ.png

そのため、既に定義されているプロパティについては.editor-styles-wrapper直下の要素に定義します。

add_theme_support( 'editor-styles' )add_editor_style( 'editor-style.css' )でスタイルで読み込んでいる場合は、ノーマライズ用のインラインスタイルの後にインラインで出力されるので、、.editor-styles-wrapper(bodyタグ)に全て書いてしまってOKです。

背景色をスタイリングする

フロント側でbodyに背景色があるデザインの場合、エディタ側にも同じ背景色があたっていると一気に雰囲気が出ます(僕だけ?)
背景色はノーマライズ用CSSに無いので、.editor-styles-wrapper書けば適用されます。

block-editor-style.scss
.editor-styles-wrapper{background:#eee;}

タイトルをスタイリングする

タイトル自体に各種スタイルがデフォルトで当たっているので、これもフロントにあわせて調整します。
特に、デフォルトのフォントサイズはデカすぎると思う。。

同時に、タイトルのtextareaにfocusされた時の文字色もデフォルトを上書きします。

block-editor-style.scss
.editor-post-title__block{.editor-post-title__input{padding:10px14px;color:#333;font-size:26px;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Yu Gothic",YuGothic,Verdana,Meiryo,"M+ 1p",sans-serif;line-height:1.4;&:focus{color:#333;}}}

ブロックの間隔をあける

特にテキストメインのコンテンツの場合に顕著ですが、あるブロックにフォーカスした時に、前(上)のブロックが一部隠れて文字が見えない、という状態が起こります。
ブロックの間隔をあける1.png

テキストメインの記事の場合、たとえ一文でも隠れるのは編集時にストレスになる思うので、ブロック間の間隔を広げます。
ここでは、デフォルトの28pxから56pxに広げます。

block-editor-style.scss
.editor-styles-wrapper{.block-editor-block-list__block{margin-top:56px;margin-bottom:56px;}}

ブロックの間隔をあける2.png

ただし、ブロックの間隔がフロント側と違う事になるケースが多いので、記事執筆の快適さを優先するのか、フロント・エディタの見た目の整合性を優先するのか、クライアントさんの意向も含めて検討すべきです。

ブロックの幅を広げる

デフォルトではブロックの幅が580pxと狭いので、フロント側に合わせて広げます。

一般的にはコンテナ幅に合わせる事になりますが、管理画面側は左右にサイドバーがあるため、幅を大きくし過ぎるとエディタ領域一杯にブロックが広がってしまい、幅広・全幅を表現出来なくなる場合があります。

フロント側のコンテナ幅、幅広・全幅対応の有無、クライアントさんが記事投稿する時のPC環境等を考慮しながら、最適な値を探りましょう。

block-editor-style.scss
.wp-block{max-width:720px;}// 幅広.wp-block[data-align="wide"]{max-width:1080px;}// 全幅.wp-block[data-align="full"]{max-width:none;}

ブロック編

使わないブロックを非表示にする

調べた所、WordPress5.4で用意されているコアブロックは68種類。
汎用的なテーマでない限り、全てのブロックをスタイリングするのは現実的ではありません。

設計の話も関係しますが、デザインありきの構築の場合、どのパーツを、どのブロックを使って、どのように表現するかを考えると思います。
そこで、そこから漏れたブロックは一旦スタイリングの対象外とし、無効化します。

その後、クライアントさんが使いたい(使いそうな)ブロックを都度解放・スタイリングしていけば良いと思います。

方法は3パターン。

  1. ブロックマネージャーを使う
    →エディタから設定出来るので一番手軽ですが、設定箇所を知っている人なら再表示出来てしまいます。
  2. プラグインを使う
    Disable Gutenberg Blocksという専用のプラグインがありますが、最近のメジャーリリースでテストされていません。 もしくは、カスタムブロック用のプラグインに機能として内包されているものもあります。(Advanced Gutenbergなど)
  3. functions.phpに記述する
    →ブロックを無効化するのではなく、ゼロから使うブロックを登録していく方法です。 投稿タイプ別に使うブロックを出しわける事が出来るので、例えば「お知らせはシンプルに投稿したい」といったクライアントさんにはお勧めの方法です。

以下は、3番の方法で投稿の場合のみ使えるブロックを見出し・段落に制限する例です。

functions.php
functionwpdocs_allowed_block_types($allowed_block_types,$post){if($post->post_type!=='post'){return$allowed_block_types;}returnarray('core/heading','core/paragraph',);}add_filter('allowed_block_types','wpdocs_allowed_block_types',10,2);

ブロックスタイルを無効化する

使わないブロックを非表示にする」と同様の理由で、コアブロックで使わないスタイルは一旦無効にします。

コードはJavaScriptで記述するので、エディタ側で読み込まれるフックを使ってjsファイルを読み込みます。

functions.php
functionmytheme_enqueue_block_editor(){wp_enqueue_script('mytheme-block-editor-script',get_theme_file_uri('/editor.js'),array('wp-blocks','wp-dom'),wp_get_theme()->get('Version'),true);}add_action('enqueue_block_editor_assets','mytheme_enqueue_block_editor');

以下は、区切り(幅広線)、区切り(ドット)画像(角丸)、引用(大)を無効化する例。

editor.js
wp.domReady(function(){// サンプル// wp.blocks.unregisterBlockStyle( 'ブロック名', 'スタイル名' );// 区切り(幅広線)wp.blocks.unregisterBlockStyle('core/separator','wide');// 区切り(ドット)wp.blocks.unregisterBlockStyle('core/separator','dots');// 画像(角丸)wp.blocks.unregisterBlockStyle('core/image','rounded');// 引用(大)wp.blocks.unregisterBlockStyle('core/quote','large');});

DOMが構築された後に実行させたいため、必ずwp.domReady()で囲います。

また、カスタムスタイルの登録(registerBlockStyle)も併用する場合は、競合を避けるためにregisterBlockStyle()のあとに追加します。

スタイル名の調べ方ですが、ブロックにそのスタイルを適用すると、サイドバーの「高度な設定 > 追加CSSクラス」にclass名が反映されるので、「is-style-{slug}」の{slug}の部分をスタイル名にします。

スペーサーブロックを見えるようにする

特定のブロック間の余白をスペーサーブロックですが、エディタ側ではクリックしない限り、そこには何も表示されません。

スペースなので見えなくて当たり前ですが、エディタ側では後から微調整しやすくするために、クリックしなくても視認出来るようにスタイリングします。

block-editor-style.scss
.block-library-spacer__resize-container{display:flex;align-items:center;justify-content:center;color:#666;background:#ddd;&::before{content:"スペース";}}

スペーサーブロック.png

区切りブロックをクリック出来ない!

区切りブロックを使う場合は深刻な問題だと思っているのですが、区切り線の高さが2pxしかないため、ブロックを選択状態にすることが困難です。

そこで、疑似的にクリック領域を広げつつ、cursor: pointerでクリック出来る領域である事を知らせます。

block-editor-style.scss
.wp-block-separator{padding:10px0;cursor:pointer;}

区切りブロック1.png

あとがき

メジャーなものからマイナーなものまでありますが、案件によって正解は様々だと思います。

せっかくブロックエディタを導入したのに、クライアントさんに「何だか使いにくいなあ。。」と思われないよう、色々工夫していきたい所です。

初心者によるプログラミング学習ログ 296日目

$
0
0

100日チャレンジの296日目

twitterの100日チャレンジ#タグ、#100DaysOfCode実施中です。
すでに100日超えましたが、継続。
100日チャレンジは、ぱぺまぺの中ではプログラミングに限らず継続学習のために使っています。
296日目は、

Python Django CSS 反映

$
0
0

前提

css反映のさせかたが曖昧だったので記述します。

【環境】
os
python3.7.3
Django3.0.5

アプリケーション名:sns

【ファイル構成】
sns
| - snsproject
| | - setting.py
| | - urls.py
| - snsapp
| | - urls.py
| | - views.py
| - templates
| | - sns
| | | - index.html
| - static
| | - css
| | | - style.css
|manage.py

本題

早速実装していきます。

settings.py
・・・INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','sns',#追記
]・・・TEMPLATES=[{'DIRS':[os.path.join(BASE_DIR,'templates'),#追記
],],},},]・・・STATIC_URL='/static/'STATICFILES_DIRS=([os.path.join(BASE_DIR,"static"),#追記
])

続いてtemplates/index.htmlを編集していきます。

index.html
{% load static %} 
<!DOCTYPE html><htmllang="ja"><head><metahttp-equiv="Content-type"content="text/html; charset=utf-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1"><title>sns</title><linkhref="{% static 'css/stylesheet.css' %}"rel="stylesheet"></head><body></body></html>

これでCSSが反映されるようになりました。

CSSとは必要か

$
0
0

WordPress、ブログサービスがあるためCSSデザインはお任せになりました。そもそもコンテンツの質が重視される中で、デザイン性は2の次となっているのです。CSSカスタマイズをしただけでアクセスアップができたという話は少数派。

参考100円記念硬貨買取

最近では文章の中身だけでなく、デザイン性で順位上昇する例も出てきています。文章中心から総合的なサイトの評価をするようになりました。ただどちらが比重が置かれるかというと、デザイン(CSS)よりはコンテンツ(文章)が問われています。CSSをカスタマイズしていて、他のテンプレートに変える。元のテンプレートがSEOに悪ければアクセスアップ。あまり変化が出ないという例もあります。他の参考記事

CSS練習問題 #002 ~hoverに挑戦~

$
0
0

eyecatch.png

CSS練習問題 #001に続き、CSS練習問題第二弾です:sparkles:

前回は既にあるCSSに何かを付け足すような「足し算の概念」だけで解ける問題でしたが、今回の問題はそれだけではなく既存のCSSを打ち消すような「引き算の概念」が必要な問題もいくつか用意しました。

codepen.gif
各問題の右上にあるこのロゴをクリックすると、自分で手を動かして実際に仕上がりを確認しながら問題に取り組めます。

※ルールーは以下の通りです

  • CSSを編集してマウスオーバーしたときのボタンの外観をデザイン画に近づける
  • HTMLの変更は禁止
  • 画像の使用は禁止
  • before疑似要素、after疑似要素のcontentは""にすること(文字や記号を入れない)
  • 検索はどんどんしてください

Q1.文字と背景の色を反転してください

q1.png

See the Pen CSS練習問題 2 ~見出し~ Q1 by sun19017 (@sun19017) on CodePen.


回答例 (クリックすると表示されます)


See the Pen
CSS練習問題 2 ~見出し~A1
by sun19017 (@sun19017)
on CodePen.




解説 (クリックすると表示されます)
#001をクリアした方には簡単な問題かと思います。
colorとbackground-colorに指定されている色を逆にします。

Q2.ワントーン明るくしてください

q2.png

See the Pen CSS練習問題 2 ~見出し~ Q2 by sun19017 (@sun19017) on CodePen.


回答例 (クリックすると表示されます)


See the Pen
CSS練習問題 2 ~見出し~ A2
by sun19017 (@sun19017)
on CodePen.




解説 (クリックすると表示されます)
不透明度を80%ぐらいにします。
ただし、背景が黒などの場合はこの方法だと逆に暗くなってしまうので、その場合はbackground-colorに明るめの色を指定するなどの方法が良いと思います。

Q3.四角い角を丸くしてください

q3.png

See the Pen CSS練習問題 2 ~見出し~ Q3 by sun19017 (@sun19017) on CodePen.


回答例 (クリックすると表示されます)


See the Pen
CSS練習問題 2 ~見出し~ A3
by sun19017 (@sun19017)
on CodePen.




解説 (クリックすると表示されます)
#001のおさらいです。
50%を指定するとボタン全体が楕円形になってしまうので、注意が必要です。

Q4.丸い角を四角くしてください

q4.png

See the Pen CSS練習問題 2 ~見出し~ Q4 by sun19017 (@sun19017) on CodePen.


回答例 (クリックすると表示されます)


See the Pen
CSS練習問題 2 ~見出し~ A4
by sun19017 (@sun19017)
on CodePen.




解説 (クリックすると表示されます)
もともと指定されているborder-radiusをどうやって打ち消すかがキーになります。

Q5.グラデーションの方向を逆にしてください

q5.png

See the Pen CSS練習問題 2 ~見出し~ Q5 by sun19017 (@sun19017) on CodePen.


回答例 (クリックすると表示されます)


See the Pen
CSS練習問題 2 ~見出し~ A5
by sun19017 (@sun19017)
on CodePen.




解説 (クリックすると表示されます)
回答例ではグラデーションの向きをto rightからto leftに変更しましたが。
カラーコードを逆にするという方法もあります。

Q6.線を二重にしてください

q6.png
:mega: border-styleをdoubleにする以外の方法を考えてください

See the Pen CSS練習問題 2 ~見出し~ Q6 by sun19017 (@sun19017) on CodePen.


回答例 (クリックすると表示されます)


See the Pen
CSS練習問題 2 ~見出し~ A6
by sun19017 (@sun19017)
on CodePen.




解説 (クリックすると表示されます)
before属性を使ってボタンよりも1周り小さい四角を描画します。
また、position:absolute;指定の要素にmarginを指定するというテクニックは覚えておくと何かと便利です。

Q7.右上と左下だけ角を丸くしてください

q7.png

See the Pen CSS練習問題 2 ~見出し~ Q7 by sun19017 (@sun19017) on CodePen.


回答例 (クリックすると表示されます)


See the Pen
CSS練習問題 2 ~見出し~ A7
by sun19017 (@sun19017)
on CodePen.




解説 (クリックすると表示されます)
border-radiusの1つ目の25pxで左上と右下、2つ目の0pxで右上と左下を同時に指定しています。

Q8.影を消して位置を下げてください

q8.png

See the Pen CSS練習問題 2 ~見出し~ Q8 by sun19017 (@sun19017) on CodePen.


回答例 (クリックすると表示されます)


See the Pen
CSS練習問題 2 ~見出し~ A8
by sun19017 (@sun19017)
on CodePen.




解説 (クリックすると表示されます)
box-shadowを打ち消すには、初期値のnoneを指定します。
何かを打ち消す場合はそのプロパティの初期値を指定するのが基本です。
また、position:relative;の意味や役割を理解しましょう。

Q9.上下を逆にしてください

q9.png

See the Pen CSS練習問題 2 ~見出し~ Q9 by sun19017 (@sun19017) on CodePen.


回答例 (クリックすると表示されます)


See the Pen
CSS練習問題 2 ~見出し~ A9
by sun19017 (@sun19017)
on CodePen.




解説 (クリックすると表示されます)
「上下を逆にする」というと、transform: rotate(180deg);を使う方も多いかと思いますが、この問題のデザイン画は回転ではなく反転して上下逆にするので、transform: scale(1, -1);が正解です。
q9_rotate.png
↑transform: rotate(180deg);を指定した場合
q9_scale.png
↑transform: scale(1, -1);を指定した場合

Q10.左右を逆にしてください

q10.png

See the Pen CSS練習問題 2 ~見出し~ Q10 by sun19017 (@sun19017) on CodePen.


回答例 (クリックすると表示されます)


See the Pen
CSS練習問題 2 ~見出し~ A10
by sun19017 (@sun19017)
on CodePen.




解説 (クリックすると表示されます)
transform: scale(1, -1);で上下が反転するので、左右の反転はtransform: scale(-1, 1);になります。


基本中の基本CSSのプロパティ一覧

$
0
0

筆者はプログラミング歴1年の新参者です。
今までアプリ開発の仕事をしていたのですが、コロナショックで凍結になり、Web関連に異動することになりました。

そこで、逃げていたCSSの学習をしています。

備忘録にHTMLのタグ一覧を投稿します。

CSSのプロパティ一覧

  • color:#dddddd;
    文字の色

  • font-size:00px;
    文字のサイズ(単位ピクセル)

  • font-family:"Avenir Next";
    文字の種類(明朝体等)

  • background-color:#dddddd;
     背景色

  • width:00px;
    横幅(単位ピクセル)

  • heght:00px;
    縦幅(単位ピクセル)

  • float:left
    横並びにする

[初心者]こそ知らなきゃ損する自動補完(VisualStudio Code)

$
0
0

[初心者]こそ知らなきゃ損する自動補完:watch:(VisualStudio Code)

VisualStadio Codeの「エメットの自動補完機能」を使うんだぜ〜い:writing_hand:
(特に何も設定いらないから、
 VisualStadio Code使ってるよって方は、一回試してみてね:santa:

ちなみに私はMacをUseしてるよ:keyboard:

⓵ HTMLテンプレートをさっと作るぞ 
  Shift + ! + tab 

[実行結果]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

</body>
</html>

⓶ idのついたdivタグをさっと作るぞ 
  シャープ(#) + container + tab

[実行結果]
<div id="container"></div> 

⓷ classのついたdivタグをさっと作るぞ 
  ドット(.) + container + tab

[実行結果]
<div id="container"></div> 

⓸ span要素にクラスをさっと付けたいな 
  span + ドット(.) + container

[実行結果]
<span class="container"></span>

⓹ idのついたdivタグの中にclassのついたdivタグをさっと作るぞ 
  シャープ(#) + container + 大なり(>) + ドット(.) + mono + tab

[実行結果]
<div id="container">
    <div class="mono"></div>
</div>

⓺ idのついたdivタグの中にclassのついたdivタグを6個一気に作るぞ 
  シャープ(#) + container + 大なり(>) + ドット(.) + mono + *6 + tab

[実行結果]
<div id="container">
    <div class="mono"></div>
    <div class="mono"></div>
    <div class="mono"></div>
    <div class="mono"></div>
    <div class="mono"></div>
    <div class="mono"></div>
</div>

⓻ idのついたdivタグの中に「枝番付き」classのついたdivタグを6個一気に作るぞ 
  シャープ(#) + container + 大なり(>) + ドット(.) + mono- + $ + *6 + tab

[実行結果]
<div id="container">
    <div class="mono-1"></div>
    <div class="mono-2"></div>
    <div class="mono-3"></div>
    <div class="mono-4"></div>
    <div class="mono-5"></div>
    <div class="mono-6"></div>
</div>

⓼ idのついたdivタグの中に「0あり枝番付き」classのついたdivタグを6個一気に作るぞ 
  シャープ(#) + container + 大なり(>) + ドット(.) + mono- + $$ + *6 + tab

[実行結果]
<div id="container">
    <div class="mono-01"></div>
    <div class="mono-02"></div>
    <div class="mono-03"></div>
    <div class="mono-04"></div>
    <div class="mono-05"></div>
    <div class="mono-06"></div>
</div>

VisualStudio Code よく使うねんショートカット

option + ↓ 一番上のspanを下に移動したいねん

<span id="first" class="cls">こんにちは! 日本!</span>
<span>こんにちは! 日本!</span>
<span>こんにちは! 日本!</span>
<span>こんにちは! 日本!</span>

shift + option + ↓ 選択した行をすぐ下にコピーしたいねん

<span id="first" class="cls">こんにちは! 日本!</span>
<span id="first" class="cls">こんにちは! 日本!</span>

shift + command + K 選択した行を一瞬で消したいねん

<span id="first" class="cls">こんにちは! 日本!</span>
<span id="first" class="cls">こんにちは! 日本!</span>

同じ要素は一気に編集できへんかな??と思ったらこれだ!

monoにカーソル合わせた後、
command押して、Dを4回押すと4つのmono全てにカーソルがあたるよ

押してみ

4つのmono全てが選択された状態で、右にスペースできたやろ:sun_with_face:
これで一気に編集できるってわけや

<span class="mono ">ヤッホー</span> 
<span class="mono ">ヤッホー</span> 
<span class="mono ">ヤッホー</span> 
<span class="mono ">ヤッホー</span> 

command + / 一瞬で選択した行がコメントアウトするで

<!-- <span class="mono">ヤッホー</span>  -->

shift + option + F 一瞬でコードを綺麗にするよ:star:

[手術前]
<div class="parent"><span id="first" class="cls">こんにちは! 日本!</span>
  <span class="mono">ヤッホー</span>

[手術後] shift + option + F
<div class="parent">
  <span id="first" class="cls">こんにちは! 日本!</span>
  <span class="mono">ヤッホー</span>

[初心者]でもかっこいいボタンは作れるさ〜っ(CSS)

$
0
0

[初心者]でもかっこいいボタンは作れるのよ:santa:(CSS)

*Image(カーソルをボタンに合わせると色が変化するボタンを作るよ)

Apr-22-2020 21-25-37.gif

とりあえず超シンプルHTMLを用意しましょっか:writing_hand:

[HTMLの中身です]

<head>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <div id="content">
    <button class="btn">Button</button>
  </div>
</body>

(VSCodeなら自動補完機能(div#content>button.btn)で一瞬で以下HTMLが作れるよ。)

CSSでボタンをカッコ良くしましょっか:relaxed:

ボタンにカーソルを合わせると、
ボタンが0.3秒でホワイトからブラックに変わるようになりますよん。

[style.cssの中身です]

#content {
  text-align: center;
}

.btn {
  background-color: white;
  color: black;
  border: 2px solid black;
  padding: 10px 40px;
  margin: 150px 0;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
}

.btn:hover {
  background-color: black;
  color: white;
}

*ポイントだけ簡単に紹介しま〜す:writing_hand:
.btn { 略 }
  ボタンにカーソルがあたっていない時の飾り付けを決めています。

cursor: pointer;
  ボタンにカーソルが当たった時だけ、ミッキーさんの手のひらマーク:point_up_2:になります。

transition: all 0.3s;
  0.3秒かけて.btn{ }の飾り付けから、.btn:hover { }の飾り付けに変わっていきます。


.btn:hover { 略 }
  ボタンにカーソルがあたった時の飾り付けを決めています。



Finished.
Simple is the best:relaxed:

【初心者向け】個人的によく参考にするWebデザイン・要素集

$
0
0

はじめに

自分がいちいち検索しなくて済むようにまとめただけの投稿です。赦して。

Webデザイン

見る人を惹きつけ、情報を受け取ってもらうために参考にしたいサイト達。

美しいWEBデザインの作り方と9つのコツ

image.png
スタイリッシュで人を惹きつけるサイト作りの上で重要な余白や配色、構成などが紹介されている。すぐに活用できるコツから、行き詰った時の解決策、Webデザインの心構え(?)まで網羅されており、忘れたころに何度も見返したい。
URL : https://stand-4u.com/design/webdesign.html

ゴールを念頭にWebサイトをデザインするということ

image.png
単なるデザインから一歩踏み込んだ、より効果的・戦略的なサイトを作りたいとき役に立つ。何のためのWebサイトで、何のためのデザインかを再確認させられる。
URL : https://uxmilk.jp/72792

ウェブデザインスキルを高める13のコツ

image.png
自分のイメージだけで作っていくと、デザインが古めかしくなったり、自分の好みが主張しすぎて情報を伝達する役割が薄れたりすることがあるかもしれない。作ってみて、なんか違う感がしたら参考にしてみよう。
URL : https://blog.hubspot.jp/web-design-13-tips

Webデザインに取り入れたいグラデーションの効果的な使い方

image.png
グラデーションを使った美しいサイトを多数紹介していて、グラデーションを扱う上でのコツなども載せている。お手本にしてサイトを作ってみると思いのほかきれいな出来になる。すごい。
URL : https://spc-jpn.co.jp/blog/4306/

要素

全体のデザインではなく、ボタンやアイコン、グラデーションに関して今すぐに活用できるサイト達。

CSSで作る!押したくなるボタンデザイン100(Web用)

image.png
いちいちデザインに悩むボタンが、CSSのコードと共に多数掲載されている。目次から自分の求めている雰囲気のボタンをすぐに見つけられるうえ、コードをすぐに確認できるという優れサイト。そもそもこのページ自体のデザインが好み
URL : https://saruwakakun.com/html-css/reference/buttons#section7

Grabient

image.png
25種類のサンプルから、色やバランスを自由に調整することでグラデーション作成が簡単に行える。コードもすぐに参照できるため優秀。下と合わせて活用したい。
URL : https://www.grabient.com/

CSSのグラデーション(linear-gradient)の使い方を総まとめ!

image.png
上のグラデーションサンプルのサイトに付随して。基本のグラデーションを表示させるコードから、様々な活用例までわかりやすく説明されている。グラデーションのサンプルやジェネレーターなどの外部リンクも充実していて、これだけ見ればばっちりカモ?
URL : https://saruwakakun.com/html-css/basic/linear-radial-gradient#section12

Font Awesome

image.png
言わずもがな。ページ作成の上では必須といっても過言ではない?
URL : https://fontawesome.com/

【CSS】transformで機能に応じたUIにしたい。

$
0
0

フリマアプリ制作中、
アップした写真の 「削除ボタン」 押下時に
見た目に変化がないのは少々寂しかったので
「削除」らしくなってもらいます。

完成形

Image from Gyazo
削除ボタンらしいUIにしていきます。

まずは削除ボタンを作る

sample.scss
.image-box{position:relative;.delete-btn{width:100%;background-color:lightblue;text-align:center;position:absolute;bottom:0;left:0;}}

現状は少々素朴な感じ。
※ jsは省略
Image from Gyazo

マウスが乗った時の動きを記述

.delete-btn:hoverというカーソルが乗っている時の
スタイルを同列に記述します。

sample.scss
.image-box{position:relative;.delete-btn{width:100%;background-color:lightblue;text-align:center;position:absolute;bottom:0;left:0;}.delete-btn:hover{cursor:pointer;transform:scale(1.1,1.1);transition:all0.1sease;background-color:#ea352d;//背景色を赤にするcolor:#ffffff;//文字色を白に。}}

transformプロパティ

transformプロパティは、要素に対して移動、回転、伸縮、傾斜などの変形をさせる事ができます。
今回は scaleを使用して拡大させます。

scale()の中の数字には、X方向とY方向 (横, 縦)へ適用される変倍を記入します。
【拡大させる場合は 1以上を記入します】

そして、【transitionプロパティ】で変化の仕方を指定します。
今回だと変化の始まりから終わりが0.1s(秒)。


◉ cursorはマウスカーソルの形を指定するためのプロパティです。

Image from Gyazo


以上で終了です。

Viewing all 8499 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>