【ブログ一覧】 - ますみのブログ

ますみのブログ

パソコンとかプログラミングに関するあれこれ発信してます

【CSS入門】書いて覚える::before、::afterの使い方

こんにちは!エンジニアのますみです!本日は疑似要素::before、::afterについて解説していきます。少し難しいですが、使いこなせたらCSSレベルアップです!この記事では実際にCSSをこのページ上で書くことができるので、プレビューを見ながら使い方を覚えることができます!是非、ブックマークして学習などに役立てていただけたら幸いです!テーマ ::before、::afterの使い方をマスターできる 覚えるとどんなメリットがあるかがわかる この記事上でプレビューを見ながらCSSを書くことで、CSSの仕組みを深く理解できる目次 ::before、::afterの基礎 ::before ::after ::before、::afterは両方指定できる スタイルを指定する より自由なデザインを作る どんな時に便利か HTMLが見やすくなる 使いまわしやすいそれではさっそく見ていきましょう::before、::afterの基礎::before最小限の設定ポイント.point::before { content: } ::before要素を表示するにはcontentを指定する必要があります。::beforeはセレクタで指定した要素の中の最初にcontentで指定した内容が追加されます。div class="point" !--ここに::beforeが表示される-- ポイント/divそのため、上の例では表示される要素はこのようになりますdiv class="point" "●" ポイント/div::after最小限の設定ポイント.point::after { content: } ::after要素を表示するにはcontentを指定する必要があります。::afterはセレクタで指定した要素の中の最後にcontentで指定した内容が追加されます。div class="point" ポイント !--ここに::afterが表示される--/divそのため、上の例では表示される要素はこのようになりますdiv class="point" ポイント "●"/div::before、::afterは両方指定できるポイント.point::before { content: } .point::after { content: } 上のように、一つの要素に::before、::afterどちらも指定することが可能です。この場合表示される要素はこのようになります。div class="point"  !--ここに::beforeが表示される-- ポイント !--ここに::afterが表示される--/divdiv class="point"  "●" ポイント  "●"/divスタイルを指定するポイント.point::before { content: color: } .point::after { content: color: } 通常のHTML要素同様にスタイルを適用することが可能です。より自由なデザインをつくるポイント.point::before { content: display: width: height: background-color: vertical-align: } .point::after { content: display: width: height: background-color: vertical-align: } 上のようにcontent: として空の要素を作りwidth、heightなどを使って自由なデザインを作ることができます。注意するポイントは、疑似要素はデフォルトではdisplay: inlineとなっているためwidth、heightが無効化されてしまいます。display属性をblock、inline-block、flexなどのサイズが指定できるプロパティに変更することを忘れないでください。どんなときに便利か::before、::afterを使わなくても、HTML上に要素を書いてしまえば同じことができます。::before、::afterを使った場合ポイントHTMLdiv class="point"ポイント/divCSS.point::before { content: ""; display: inline-block; width: 1rem; height: 2px; background-color: #ffa500; vertical-align: middle;}.point::after { content: ""; display: inline-block; width: 1rem; height: 2px; background-color: #ffa500; vertical-align: middle;}::before、::afterを使わない場合ポイントHTMLdiv class="point" span/span ポイント span/span/divCSS.point span { display: inline-block; width: 1rem; height: 2px; background-color: #ffa500; vertical-align: middle;}それなのにあえて::before、::afterを使うメリットを解説します。HTMLが見やすくなるdiv class="point" span/span ポイント span/span/div例えばこのHTMLは::before、::afterを使わない場合のコードになります。HTMLだけを見ると、spanが何のためにあるのかわかりませんし、コードが読みづらくなってしまいます。::before、::afterを使うことで、HTMLの見通しがよくなり、管理、修正がやりやすくなります。使いまわしやすい::before、::afterを使わない場合は、その都度span文字spanというHTMLを書く必要があります。頻繁に使いたいスタイルだった場合、HTMLは複雑になり、書き間違いによるミスも引き起こしやすくなります。​div class="point" span/span ポイント1 span/span/divdiv class="point" span/span ポイント2 span/span/divh2見出し/h2div class="point" span/span ポイント3/div​div h3見出し/h3 div class="point" span/span ポイント4 span/span /div div class="point" span/span ポイント5 /div/divdiv class="point" span/span ポイント6 span/span/div上のHTMLには書き間違えている箇所がありますが、非常にわかりづらいです。​div class="point" span/span ポイント1 span/span/divdiv class="point" span/span ポイント2 span/span/divh2見出し/h2div class="point" span/span ポイント3 !--ミス1--/div​div h3見出し/h3 div class="point" span/span ポイント4 span/span /div div class="point" span/span ポイント5 !--ミス2-- /div/divdiv class="point" span/span ポイント6 span/span/div上の2か所が書き間違えている箇所です。::before、::afterを使うことで、pointというクラスさえ書けばスタイルが適用されるため、ミスを防ぎつつ使いまわしやすいコードを書くことができます。​div class="point" ポイント1/divdiv class="point" ポイント2/divh2見出し/h2div class="point" ポイント3/div​div h3見出し/h3 div class="point" ポイント4 /div div class="point" ポイント5 /div/divdiv class="point" ポイント6/div最後まで読んでいただきありがとうございます!プログラミング学習は何度も繰り返して覚えていくことが大切です!是非ブックマークして学習に役立ててみてください!質問や、こんなことを記事にしてほしい!というのがありましたらTwitterのコメント等で受け付けていますので、お気軽にどうぞ!ますみ - 愛知県在住の20代プログラマー - | @mashmy_98それでは次の投稿もお楽しみに!

2023年04月24日

Read More

立体的に見える不思議なボタン【書いてわかるCSS】

こんにちは!エンジニアのますみです!本日はこんな感じの画面が出っ張って見えたりくぼんで見えたりする不思議なボタンの作り方を解説します。BUTTONBUTTONBUTTONBUTTON難しそうに見えますが意外と簡単ですよ!テーマ 不思議なボタンの作り方をマスターできる box-shadowを使って立体感を出す方法をマスターできる この記事上でプレビューを見ながらCSSを書くことで、CSSの仕組みを深く理解できる目次 とりあえずCSSをコピペしたい方はこちら 不思議なボタンを作る手順 背景色を指定 ボタンを作成 余白を指定 角を丸める 影を追加① 影を追加② くぼんで見えるボタンの作り方 丸いボタンの作り方 くぼんで見える丸いボタンもinset指定、影の色反転でOKそれではさっそく見ていきましょうとりあえずCSSをコピペしたい人はこちらBUTTONHTMLdiv class="container" div class="button"BUTTON/div/divCSS.container { display: flex; justify-content: center; padding: 3rem 0; background-color: #0072c6;}.button { color: white; padding: 0.4rem 0.8rem; border-radius: 5px; box-shadow: 4px 4px 8px #3996d9, -4px -4px 8px #004c83;}意外とシンプルなCSSですね。.containerのスタイルはこの記事上で綺麗に表示できるように左右中央寄せ、余白を指定していますので、使用したいWebサイトに合わせて調整してください。不思議なボタンを作る手順box-shadowで2種類の影を作ることでボタンの立体感を表現します。より不思議な見た目にするには余白や角丸もいい感じに調整すると良いでしょう。立体感を出すために、背景色は白以外が望ましいです。背景色を指定div class="container"/div.container { display : justify-content : padding : background-color : } 今回紹介するボタンは薄い色の影を使うため、背景色は白以外が望ましいです。.containerのスタイルはこの記事上で綺麗に表示できるように左右中央寄せ、余白を指定していますので、使用する場面によってレイアウトは変更して使ってください。ボタンを作成BUTTONdiv class="container" div class="button"BUTTON/div/div.container { display : justify-content : padding : background-color : } .button { color : background-color : } ボタンの背景色(background-color)は最終的には無しになりますが、作業しやすいので一旦仮の色を指定しておくのが良いでしょう。HTMLはここから変更がないため、次の手順から省略しますね!余白を指定BUTTON.container { display : justify-content : padding : background-color : } .button { color : padding : background-color : } ちょうどいい具合の余白をpaddingで指定しておきます。私は縦よりも横の余白が少し長いほうが好みです。角を丸めるBUTTON.container { display : justify-content : padding : background-color : } .button { color : padding : border-radius : background-color : } border-radiusを使い、ボタンの角を丸めます。影が丸くつくため、角を丸めておくとバランスがよく見えます。影を追加①BUTTON.container { display : justify-content : padding : background-color : } .button { color : padding : border-radius : box-shadow : } このあたりからボタンの背景色は削除しても良いでしょう。box-shadowを使い、背景色よりも少し薄い色をボタンの右下に表示します。box-shadowの値はbox-shadow:影の縦方向の位置影の横方向の位置影のぼかし度合影の色このように役割が割り振られます。上の例では影の縦方向の位置と影の横方向の位置に4pxを指定しているので、影は下に4px、右に4pxずれて表示されます。box-shadowの使い方はこの記事で解説しています。詳しく知りたい方は是非読んでみてください。影を追加②BUTTON.container { display : justify-content : padding : background-color : } .button { color : padding : border-radius : box-shadow : } box-shadowに2つ目の影を設定します。,(カンマ)で区切ることで複数の影を作ることができます。2つ目の影は背景色よりも少し濃い色をボタンの左上に配置します。くぼんで見えるボタンの作り方BUTTON.container { display : justify-content : padding : background-color : } .button { color : padding : border-radius : box-shadow : } くぼんで見えるボタンは、まず先ほどのCSSのbox-shadowにinsetを追加します。そして2つの色を入れ替え、一つ目の影(右下)は薄く、2つ目の影(左上)が濃くなるようにします。box-shadow:inset 4px 4px 8px #004c83, inset4px -4px 8px #3996d9;丸いボタンの作り方BUTTON.container { display : justify-content : padding : background-color : } .button { display : justify-content : align-items : color : width : height : border-radius : box-shadow : } CSSで丸を作る方法をご存じの方なら、先ほどのCSSからボタンを正円にするだけでOKです。buttonにwidth、heightを指定して正方形をまず作り、display: flex、justify:content、align-items:centerで文字を中央寄せにします。そしたらborder-radius: 50%を追加して、ボタンを丸くしたら完了です。CSSで丸を作る方法はこちらの記事で解説しています。詳しく知りたい方は是非読んでみてください。くぼんで見える丸いボタンもinset指定、影の色反転でOKBUTTON.container { display : justify-content : padding : background-color : } .button { display : justify-content : align-items : color : width : height : border-radius : box-shadow : } こちらも四角いボタン同様、box-shadowの設定を変更するだけでOKです。最後まで読んでいただきありがとうございます!プログラミング学習は何度も繰り返して覚えていくことが大切です!是非ブックマークして学習に役立ててみてください!質問や、こんなことを記事にしてほしい!というのがありましたらTwitterのコメント等で受け付けていますので、お気軽にどうぞ!ますみ - 愛知県在住の20代プログラマー - | @mashmy_98それでは次の投稿もお楽しみに!

2023年04月26日

Read More

backgroundが効かない??そんな時に確認してほしい7つのポイント

こんにちは!エンジニアのますみです!本日はbackgroundが効かない時に確認してほしい7つのポイントを解説します!目次 CSSのセレクタに問題はないか id、classの名前が間違っている id、classの名前に誤字がある #(シャープ)と.(ドット)が間違っている CSSを上書きしていないか スタイルを上書きしている CSSの優先順位が原因の場合も 要素の大きさが0になっている 要素にサイズが無い インライン要素にwidth、heightを指定してもサイズは0のままそれではさっそく見ていきましょうCSSのセレクタに問題はないかid、classの名前が間違っているHTMLspan class="text"TEXT/spanCSS.item { background : red;}上の例では対象の要素にはtextというクラスが設定されていますが、CSS上では.itemというセレクタを使っています。意外とやりがちなミスなので、HTMLとCSSを照らし合わせて確認してみてくださいid、classの名前に誤字があるHTMLspan class="text"TEXT/spanCSS.texl { background : red;}上の例では対象の要素にはtextというクラスが設定されていますが、CSS上では.texlというセレクタを使っています。CSSは誤字があってもエラーメッセージなどで教えてくれません。その為、結構誤字でスタイルが当たらないこともあり得ます。#(シャープ)と.(ドット)が間違っているHTMLspan class="text"TEXT/spanCSS#text { background : red;}上の例では対象の要素にはtextというクラスが設定されていますが、CSS上では#textというセレクタを使っています。その為、textというidを持つ要素にスタイルが適用されてしまうため、上のspan要素には背景色が適用されません。こちらも意外とやりがちなミスです。CSSを上書きしていないかスタイルを上書きしているHTMLspan class="text"TEXT/spanCSS.text { background : red;}.text { background : transparent;}CSSの行数が多かったりすると起こりがちです。後に読み込まれたスタイル(行で言うと下の方)が優先されるため、上の例ではtransparent(透明)が背景色に適用されてしまいます。CSSの優先順位が原因の場合もHTMLspan id="text" class="text"TEXT/spanCSS#text { background : transparent;}.text { background : red;}基本的には後に読み込まれたスタイル(行で言うと下の方)が優先されますが、例外があります。id(#を使うもの)で背景色を指定していた場合、idの方が優先順位が高いです。そのため上の例では背景色は#textに指定されたtransparent(透明)が適用されます。また、CSSはid class 要素名の優先順位でスタイルを適用するため.text { background : transparent;}span { background : red;}この場合は.textに指定されたtransparent(透明)が適用されます。要素の大きさが0になっている要素にサイズが無いHTMLdiv class="box"/divCSS.box { background : lightcoral;}色付きの四角形や丸などを作りたい時にやりがちですが、上の例では何も表示されません。このような場合は、width、heightを指定するか、padding等を指定して要素に大きさを持たせる必要があります。HTMLdiv class="box"/divCSS.box { background : lightcoral;}HTMLdiv class="coral-box"/divdiv class="green-box"/divdiv class="blue-box"/divCSS.coral-box { width: 2rem; height: 2rem; background: lightcoral;}.green-box { width: 2rem; height: 2rem; background: lightgreen; border-radius: 50%;}.blue-box { padding: 1rem; background: lightblue;}インライン要素にwidth、heightを指定してもサイズは0のままHTMLspan class="box"/spanCSS.box { width: 2rem; height: 2rem; background : lightcoral;}上の例では、画面には何も表示されません。インライン要素はwidth、heightが無効のため、要素のサイズは0のままです。CSSで display : block 等を指定してサイズを有効にするか、HTMLで要素をdiv等に変更することで解決できます。最後まで読んでいただきありがとうございます!質問や、こんなことを記事にしてほしい!というのがありましたらTwitterのコメント等で受け付けていますので、お気軽にどうぞ!ますみ - 愛知県在住の20代プログラマー - | @mashmy_98それでは次の投稿もお楽しみに!

2023年05月02日

Read More

HTML、CSSはプログラミング言語ではない?その真相は...

こんにちは!エンジニアのますみです!本日はHTML、CSSはプログラミング言語ではないと言われる理由や、その真相を解説します!目次 このブログではHTML、CSSもプログラミング言語として扱っています HTML、CSSはプログラミング言語ではないのか? HTML、CSSはプログラミング言語でないと言われる理由 Java、PHP、Python等のプログラミング言語の共通点とは まとめこのブログではHTML、CSSもプログラミング言語として扱っていますますみのブログでは、HTML、CSSもプログラミング言語として扱っています。理由としては、このブログはプログラミング初心者の方に向けての記事も多くあるため、一般的な認識に合わせた書き方をしています。プログラミングに精通している方であれば違和感を感じるかもしれませんが、私はプログラミング初心者の方が混乱しないためにHTML、CSSもプログラミング言語と呼ぶことにしています。HTML、CSSはプログラミング言語ではないのか?結論は、なんともいえない。です...なぜ名言できないかというと、定義が明確に書かれている文献などが無いためです。風潮としてHTML、CSSはプログラミング言語ではないと言われています。HTML、CSSはプログラミング言語でないと言われる理由プログラミング言語の定義は以下に当てはまるものとされています。 プログラミング言語とは、コンピュータが理解できる命令の集合で、プログラムを記述するための文法を持っているものです。 人間が理解しやすい形式で、コンピュータが実行するための命令を表現します。 アルゴリズムやデータ構造の表現、制御構造を含み、汎用的な機能を提供します。HTML、CSSはあくまでWebページの構造や見た目を定義するもので、複雑な処理を行うことはできません。また、プログラミング言語とされているJava、PHP、Python等には共通点が多くあります。HTML、CSSはその点では独特です。Java、PHP、Python等との共通点はほぼ無く、HTML、CSS特有の記法が殆どです。Java、PHP、Python等のプログラミング言語の共通点とはプログラミング言語には非常に多くの種類があります。 Java Python C++ JavaScript Ruby PHP Swift Kotlin一部をリストアップしましたが、まだまだたくさんあります。これらのプログラミング言語には共通する概念があります。プログラミング言語の共通点変数多くのプログラミング言語には変数という概念があります。const num = 10;変数というのは箱のようなもので、中には数値や文字などの値を入れることができます。これは、一度変数を作ったら同じ値を使いまわす目的などで使われます。この概念はHTML、CSSにはありません。配列const names = ["太郎", "次郎", "三郎"]複数の値を一つの変数に入れておき、これらをまとめて使いまわしたり処理を行ったりするのに使われます。この概念もHTML、CSSにはありません。関数function sample(num){ return num + 1;}関数は処理をまとめておくものです。関数を使うと同じ処理を使いまわすことができます。この概念もやはりHTML、CSSにはありません。まとめこのように、HTML、CSSとそれ以外の言語には大きな違いがあります。明確にプログラミング言語の定義を示している文献などはありませんが、大きく異なるものであることは間違いありません。先ほども書きましたが、私はこのブログではHTML、CSSもプログラミング言語と呼んでいます。プログラミング初心者の方に向けての記事も多いため、記事を読みに来て下さる方々がわかりやすい言い回しを心掛けているためです。明確な定義は無いため、状況に応じてHTML、CSSをプログラミング言語と呼ぶかどうか決める感じで良いかと思います。最後まで読んでいただきありがとうございます!質問や、こんなことを記事にしてほしい!というのがありましたらTwitterのコメント等で受け付けていますので、お気軽にどうぞ!ますみ - 愛知県在住の20代プログラマー - | @mashmy_98それでは次の投稿もお楽しみに!

2023年04月30日

Read More

ハンバーガーメニューボタンの作り方【レスポンシブ】

こんにちは!エンジニアのますみです!本日はハンバーガーボタンと呼ばれる三本線のボタンの作り方を解説します。スマートフォンでWebサイトを見たときによく見るボタンですね!この記事では実際にCSSをこのページ上で書くことができるので、プレビューを見ながら使い方を覚えることができます!是非、ブックマークして学習などに役立てていただけたら幸いです!テーマ ハンバーガーボタンの作り方を覚えられる 応用してオリジナルのデザインが作れるになる この記事上でプレビューを見ながらCSSを書くことで、CSSの仕組みを深く理解できる目次 サンプル HTMLの解説 CSSの解説 ヘッダー ハンバーガーボタンのボックス ハンバーガーボタンの3本線 1本目、3本目の位置 総まとめそれではさっそく見ていきましょうサンプル今回はこのようなメニューバーとハンバーガーボタンを作成します。HTMLdiv class="header" div class="ham-box" div class="ham"/div /div div/div/divCSS.header { display: flex; justify-content: space-between; width: 100%; padding: 0.8rem; border: 1px solid #004373; border-radius: 5px;}.ham-box { position: relative; display: flex; justify-content: center; align-items: center; width: 24px; height: 20px; cursor: pointer;}.ham,.ham-box::before,.ham-box::after { display: flex; align-self: center; width: 100%; height: 3px; background-color: #004373;}.ham-box::before,.ham-box::after { content: ""; position: absolute;}.ham-box::before { top: 0;}.ham-box::after { bottom: 0;}上のソースコードはコピペOKです!特に報告義務はありませんが、Twitter等で使いました!とコメントしていただけたら今後の励みになります!HTMLの解説div class="header" div class="ham-box" div class="ham"/div /div div/div/div.headerがメニューバー、.ham-boxがハンバーガーボタンの入れ物になります。そして.hamが線そのものになります。.hamは一つしかありませんが、CSSで要素を増やすことができる疑似要素を使って残り2本の線を追加していきます。疑似要素については下の1本目、3本目の線の位置で解説します。空のdivは無くてもいいのですが、作っておくと後々メニューバーの右隅に何か表示したいとなった時にレイアウトが崩れる恐れが減ります。CSSの解説ヘッダー.header { display: justify-content: width: padding: border: border-radius: } 上のCSSが適用されるボックスがオレンジ色の部分です。padding、border、border-radiusはお好みで変更してみてください。それ以外のプロパティdisplay、justify-content、widthは基本的には変更する必要はありません。ハンバーガーボタンのボックス.ham-box { position: display: justify-content: align-items: width: height: cursor: } 上のCSSが適用されるボックスがオレンジ色の部分です。width、heightでハンバーガーボタンの大きさを決めています。.ham-box { display: flex; justify-content: center; align-items: center;}この3つでは、ボックス内の要素を上下左右中央揃えにしています。こうすることで、のちに3本線の位置を指定する時にコード量が少なく済みます。ハンバーガーボタンの3本線.ham, .ham-box::before, .ham-box::after { display: align-self: width: height: background-color: } 上のCSSが適用される部分がオレンジ色の部分です。セレクタを3つ指定して、3つの線にまとめてスタイルを適用しています。1本目の線は.ham-box::beforeです。疑似要素といい、HTMLを書かなくても要素を追加することができます。疑似要素の設定は下の1本目、3本目の線の位置で解説します。2本目の線は.hamです。3本目の線は.ham-box::afterになっており、これも疑似要素です。widthは親要素の.ham-boxに従うように100%に指定されています。heightで線の太さを指定できます。お好みで変えてみてください。1本目、3本目の線の位置.ham-box::before, .ham-box::after { content: position: } .ham-box::before { top: } .ham-box::after { bottom: } 上のCSSが適用される部分がオレンジ色の部分です。.ham-box::beforeが1本目、.ham-box::afterが3本目の線になります。これらは疑似要素といい、HTMLを書かなくても要素を追加することができます。疑似要素はセレクタで指定した要素の中に追加されます。この時content: ;と書いておかないと何も表示されません。.ham-box::before { content: "";}div class="ham-box"  !-- ここに::beforeが追加される -- div class="ham"/div/div::afterと指定すると、要素は最後に追加されます。.ham-box::after { content: "";}div class="ham-box" div class="ham"/div  !-- ここに::afterが追加される --/div今回の例では::before、::afterどちらも使って.ham-boxの中に合計3つの要素を表示させています。追加した2つの疑似要素にposition: absoluteを指定して::beforeを.ham-boxの一番上、::afterを.ham-boxの一番下に表示し、ハンバーガーボタンのレイアウトを作ります。div class="ham-box"  !-- ::before -- div class="ham"/div  !-- ::after --/div総まとめ下のエディターではすべてのプロパティを編集することができます。これまでの内容をふまえて、ハンバーガーボタンのサイズや色などを変更してみてください。.header { display: justify-content: width: padding: border: border-radius: } .ham-box { position: display: justify-content: align-items: width: height: cursor: } .ham, .ham-box::before, .ham-box::after { display: align-self: width: height: background-color: } .ham-box::before, .ham-box::after { content: position: } .ham-box::before { top: } .ham-box::after { bottom: } 最後まで読んでいただきありがとうございます!プログラミング学習は何度も繰り返して覚えていくことが大切です!是非ブックマークして学習に役立ててみてください!質問や、こんなことを記事にしてほしい!というのがありましたらTwitterのコメント等で受け付けていますので、お気軽にどうぞ!ますみ - 愛知県在住の20代プログラマー - | @mashmy_98それでは次の投稿もお楽しみに!

2023年04月25日

Read More

【書けるからわかるCSS】:focusでインプットをおしゃれにする方法

こんにちは!エンジニアのますみです!本日は:focusを使ってinputをおしゃれにデザインする方法を解説します!:focusは要素を選択したときに適用されるスタイルを作れるもので、input以外にもtextareaなどにも使えます。使う機会が多いので是非覚えてみてください!この記事では:focusの使い方をサンプル付で解説します。さらに実際にCSSをこのページ上で書くことができるので、プレビューを見ながら使い方を覚えることができます!是非、ブックマークして学習などに役立てていただけたら幸いです!テーマ :focusの使い方を覚えて自由なデザインを作れるようになる この記事上でプレビューを見ながらCSSを書くことで、CSSの仕組みを深く理解できる目次 サンプル テキストエリアにも使える :focusを実際に書いてみよう 1.HTMLを作成 2.通常時のデザインを決める 3.:focusを使う 4.transitionを指定してアニメーションにするそれではさっそく見ていきましょうサンプル上のインプットをクリックすると青い影がふわっと現れます。:focusはその名の通り対象の要素にフォーカスしている時に適用されるスタイルです。CSS.input{ width: 100%; padding: 0.4rem 0.8rem; border: 1px solid lightgray; outline: none; border-radius: 5px; transition: 0.3s;}.input:focus{ box-shadow: 0px 0px 8px #0072c6;}テキストエリアにも使える:focusはテキストエリアにも同じように使うことができます。CSS.textarea{ width: 100%; padding: 0.4rem 0.8rem; border: 1px solid lightgray; outline: none; border-radius: 5px; transition: 0.3s;}.textarea:focus{ box-shadow: 0px 0px 8px #0072c6;}:focusを実際に書いてみよう1. HTMLを作成input class="input" type="text"今回はシンプルにinput要素のみでデザインしていきましょう。2. 通常時のデザインを決める.input { width: padding: border: border-radius: outline: box-shadow: } まずはフォーカスしていない時のデザインを作っていきましょう。インプットの横幅を目いっぱい大きくしてpaddingで余白を指定しました。さらにborder-radiusでインプットの角を丸くしています。border-radiusについてはこちらの記事で解説しています。詳しく知りたい方は是非読んでみてくださいborder: noneで枠線を消しています。これはお好みですが、inputにはデフォルトで枠線が表示されているため、その枠線を消している感じです。代わりにoutlineで枠線を表示しています。borderで指定したほうが自由なデザインを作りやすいのですが、今回はシンプルに作っていくのでいろいろと都合のいいoutlineを使います。borderについてはこちらの記事で解説しています。詳しく知りたい方は是非読んでみてくださいそして、outlineについて、outlineとborderの違いについてはこちらの記事で解説しています。詳しく知りたい方は是非読んでみてください3. :focusを使う.input { width: padding: border: border-radius: outline: box-shadow: } .input:focus { outline: box-shadow: } .input:focusといった感じでセレクタ:focusというスタイルを作ります。対象の要素にフォーカスするとセレクタ:focus内のスタイルが適用されます。上の例では枠線と影を:focus内に記述しているので、それらがフォーカス時に変化することになりますね。inputはフォーカス時に、デフォルトでoutlineが作成されるので注意今回は:focusでoutlineを上書きしているので問題ありませんが、背景色だけ変えたい等の場合は注意が必要です。inputはデフォルトで黒い枠線が表示されるようになっているので、outlineを消すCSSを書いておく必要があります。.input:focus { background-color: lightblue; outline: none;}4. transitionを指定してアニメーションにする.input { width: padding: border: border-radius: outline: box-shadow: transition: } .input:focus { outline: box-shadow: } 先ほどの状態でも充分いい感じですが、ゆっくりと変化するようにしたければtransitionを指定していきます。今回はtransition: 0.3sとしましたので、0.3秒かけて枠線と影が変化します。最後まで読んでいただきありがとうございます!プログラミング学習は何度も繰り返して覚えていくことが大切です!是非ブックマークして学習に役立ててみてください!質問や、こんなことを記事にしてほしい!というのがありましたらTwitterのコメント等で受け付けていますので、お気軽にどうぞ!ますみ - 愛知県在住の20代プログラマー - | @mashmy_98それでは次の投稿もお楽しみに!

2023年04月28日

Read More

CSSで使われる*って何?

こんにちは!エンジニアのますみです!本日はCSSで使われる*(アスタリスク)について解説します!目次 *(アスタリスク)はすべての要素に適用される *(アスタリスク)以外の特殊な書き方 HTMLタグで指定 :から始まるCSSセレクタ 属性による指定それではさっそく見ていきましょう*(アスタリスク)はすべての要素に適用されるH1タグH2タグParagraph(段落)こんな感じのHTMLがあるとします。div h1H1タグ/h1 h2H2タグ/h2 pParagraph(段落)/p/div*(アスタリスク)で要素を指定すると、すべての要素にスタイルが適用されます。では*(アスタリスク)を使ってCSSを書いてみましょう。H1タグH2タグParagraph(段落)CSS* { background-color: lightblue;}*(アスタリスク)を使い、背景色にlightblue(薄い青色)を指定しました。このようにすべてのタグにlightblue(薄い青色)が適用されましたね*(アスタリスク)以外の特殊なCSSの書き方ここでいう特殊なというのは、クラス名やid以外のことを指します。HTMLタグで指定H1タグH2タグParagraph(段落)CSSh1 { background-color: lightblue;}h1、h2、p、span等のHTMLタグで指定することもできます。ですが、HTMLタグを使ってCSSを書く方法は、管理が大変になってしまいがちなので注意が必要です。HTMLタグを使ってCSSを書く最も多いケースはbodyに対してスタイルを適用することです。body { margin: 0; padding: 0;}通常、Webブラウザーはデフォルトで body要素に余白やパディングなどのスタイルを設定しています。デフォルトのスタイルがページのスタイリングに影響を与えることがあるため、CSSで余白などをリセットする際に使われます。また、font-family等のウェブサイト全体で統一したいスタイルも、bodyタグでCSSを書くと良いでしょう。:から始まるCSSセレクタH1タグH2タグParagraph(段落)CSSh1:hover { background-color: lightblue;}:や::で始まるものは疑似クラスと呼ばれ、マウスホバー時や、インプットにフォーカスした時の状態を指定します。マウスホバー時のスタイルを定義できる:hoverの使い方はこちらの記事で解説しています。インプットにフォーカスした時のスタイルを定義できる:focusの使い方はこちらの記事で解説しています。属性による指定 HTMLdiv input type="text" input type="email"/divCSSinput[type="text"] { border: 1px solid lightgray; width: 100%; padding: 0.4rem 0.8rem; border-radius: 0.4rem; margin-bottom: 1rem;}このように、input要素でtypeがtextのもの、といった指定方法もあります。name属性で指定する場合はこんな感じで書くことができます。HTMLdiv input name="name" type="text" input name="email" type="email"/divCSSinput[name="name"] { border: 1px solid lightgray; width: 100%; padding: 0.4rem 0.8rem; border-radius: 0.4rem; margin-bottom: 1rem;}最後まで読んでいただきありがとうございます!質問や、こんなことを記事にしてほしい!というのがありましたらTwitterのコメント等で受け付けていますので、お気軽にどうぞ!ますみ - 愛知県在住の20代プログラマー - | @mashmy_98それでは次の投稿もお楽しみに!

2023年04月29日

Read More

CSSで半円を作る方法【書いてわかるCSS】

こんにちは!エンジニアのますみです!本日はCSSで半円を作る方法を解説します。たった4行のスタイルを書くだけでできちゃいます!この記事では実際にCSSをこのページ上で書くことができるので、プレビューを見ながら使い方を覚えることができます!是非、ブックマークして学習などに役立てていただけたら幸いです!テーマ CSSで半円を作る方法をマスターできる この記事上でプレビューを見ながらCSSを書くことで、CSSの仕組みを深く理解できる目次 サンプル 半円を作る手順 1. 辺の長さが2対1の長方形を作る 2. 角を丸くするborder-radiusを追加する 3. border-radiusを調整して半円を作る 覚えておきたい%(パーセント)を使った書き方 %(パーセント)を使うと楕円の半円が作れる 半円の方向を変える 下向きの半円 右向きの半円 左向きの半円それではさっそく見ていきましょうサンプル.circle { width : height : background-color : border-radius : } このような半円を作っていきます。この記事では上向き、下向き、右向き、左向きすべての書き方を解説します。半円を作る手順HTMLはこのようにしてください。div class="circle"/divクラスにcircleを設定した要素を半円にしていきます。1. 辺の長さが2対1の長方形を作る.circle { width : height : background-color : } まずはwidthとheightを調節して、辺の長さが2対1の長方形を作ります。背景色(background-color)はお好みで設定してください。2. 角を丸くするborder-radiusを追加する.circle { width : height : background-color : border-radius : } CSSにborder-radiusを追加します。border-radiusにはpxなどのサイズを指定することができます。これを大きくすると青いボックスの角が丸くなっていきます。試しにborder-radius :10pxと設定してみてください。青いボックスの角が丸くなったのがわかると思います。3. border-radiusを調整して半円を作る.circle { width : height : background-color : border-radius : } border-radiusに4つの数値を設定します。長方形の長辺と同じ長さのサイズを、1つ目、2つ目に指定し、後の値は0を指定してください。border-radius: 長辺の長さ長辺の長さ 0 0border-radiusに指定した4つの数値はborder-radius: 左上の角の丸さ右上の角の丸さ右下の角の丸さ左下の角の丸さというように左上の角から時計回りで丸くする角が割り振られており、上の例では左上、右上の角を目いっぱい丸くしています。つまり上のエディターでborder-radius: 0 0長辺の長さ長辺の長さこのようにすると右下、左下の角が目いっぱい丸くなり、下向きの半円が作れます。エディターをborder-radius: 0 0 100px 100pxと編集してみると、下向きの半円が作れるはずです。覚えておきたい%(パーセント)を使った書き方.circle { width : height : background-color : border-radius : } 上のように書いても上向きの半円を作れます。border-radiusは/(スラッシュ)で値を区切るとさらに細かく角丸を調整できます。詳しく知りたい方はこちらの記事を読んでみてください。今回は細かくは割愛しますがborder-radius: 左上の角の丸さ右上の角の丸さ右下の角の丸さ左下の角の丸さ /左上の角の丸さ右上の角の丸さ右下の角の丸さ左下の角の丸さというように/(スラッシュ)の前後で左上の角から時計回りに丸くする角が割り振られていることは一緒です。/(スラッシュ)の前の丸くしたい角には50%、/(スラッシュ)の後の丸くしたい角には100%を指定すると、半円を作ることができます。%(パーセント)を使うと楕円の半円が作れるpx(ピクセル)を使った場合、2対1の長方形ではない時には、このようにかまぼこ型になります。.circle { width : height : background-color : border-radius : } 上の例では幅を100px、高さを75pxに指定しており、1対2の長方形ではないため半円にはなりません。.circle { width : height : background-color : border-radius : } %(パーセント)を使うとこのように楕円の半円が作れます。必要になったときに使えるように覚えておくか、この記事をブックマークしておきましょう。半円の方向を変える長方形の向き、丸くする角を調整することで様々な向きの半円を作ることができます。下向きの半円.circle { width : height : background-color : border-radius : } 2対1の横長の長方形を作りborder-radius: 0 0 長辺の長さ長辺の長さborder-radiusをこのように設定すると下向きの半円を作ることができます。右向きの半円.circle { width : height : background-color : border-radius : } 1対2の横長の長方形を作りborder-radius: 0 長辺の長さ長辺の長さ0 border-radiusをこのように設定すると右向きの半円を作ることができます。左向きの半円.circle { width : height : background-color : border-radius : } 1対2の横長の長方形を作りborder-radius:長辺の長さ0 0長辺の長さborder-radiusをこのように設定すると左向きの半円を作ることができます。最後まで読んでいただきありがとうございました!今更ですが、角丸の向きってどこを基準にするのが正解なんでしょうね...丸いほう?平らなほう?プログラミング学習は反復して覚えていくことが大切です!是非ブックマークして学習に役立ててみてください!質問や、こんなことを記事にしてほしい!というのがありましたらTwitterのコメント等で受け付けていますので、お気軽にどうぞ!ますみ - 愛知県在住の20代プログラマー - | @mashmy_98それでは次の投稿もお楽しみに!

2023年04月26日

Read More

【CSS入門】書いて覚えるtransitionの使い方

こんにちは!エンジニアのますみです!本日はCSSでアニメーションを作る際に重要なtransitionについて解説していきます。マウスホバーアニメーションやインプットフォーカス時によく使われます!この記事では実際にCSSをこのページ上で書くことができるので、プレビューを見ながら使い方を覚えることができます!是非、ブックマークして学習などに役立てていただけたら幸いです!テーマ transitionの使い方をマスターできる CSSで思い通りのアニメーションが作れるようになる この記事上でプレビューを見ながらCSSを書くことで、CSSの仕組みを深く理解できる目次 transitionの基本 transitionを細かく設定する アニメーションが開始するまでを遅らせる アニメーションの速度に波をつける #stepsの使い方 アニメーションする属性を指定する さらに自由にアニメーションを作る方法 ,(カンマ)で区切ると複数のアニメーションを同時に指定できる :hoverと通常時で別々のtransitionを書くそれではさっそく見ていきましょうtransitionの基本HOVER.box { transition: padding: border: background-color: cursor: } .box:hover { transform: } 青いボックスにマウスカーソルを当ててみるとボックスが一回転します。ボックスが一回転するのにかかる時間を指定するのがtransitionです。上の例ではtransitionの値は0.3sとなっています。『s』という単位は『秒(second)』のことなので、0.3秒でボックスが一回転することになります。上のエディターのtransitionを1sにしてみてください。ボックスが回転する速度が遅くなることがわかります。transitionを細かく設定するアニメーションが開始するまでを遅らせるHOVER.box { transition: padding: border: background-color: cursor: } .box:hover { transform: } transitionに2つ目の数値を指定すると、アニメーションが始まるまでの時間を指定できます。上の例ではtransitionの値は0.3s 1sとなっています。1つ目の数値がボックスが一回転するのにかかる時間、2つ目の数値がアニメーションが始まるまでの時間になります。transition: アニメーションの長さ アニメーションが始まるまでの時間アニメーションの速度に波をつけるHOVER.box { transition: padding: border: background-color: cursor: } .box:hover { transform: } transitionはアニメーションが最初はゆっくりでだんだん速くなるといったような緩急を設定することができます。上の例では2sとease-in-outを指定しており、ease-in-outが緩急を指定する値になります。緩急を指定する値には次の種類があります。上のエディターを編集してみて変化を確認してみましょう。 ease(デフォルト):ゆっくりと始まり、中間で速くなり、最後にゆっくりと終わる linear:等速でアニメーションする ease-in:ゆっくりと始まり、最後に速くなる ease-out:速く始まり、ゆっくりと終わる ease-in-out:ゆっくりと始まり、中間で速くなり、最後にゆっくりと終わる step-start:アニメーションの最初の瞬間に即座に変化を加える step-end:アニメーションの最後の瞬間に即座に変化を加える steps(n, start/end):アニメーションをnステップに分割し、startまたはendで即座に変化を加えるstepsの使い方stepsが少しややこしいと思いますので、詳しく解説します。HOVER.box { transition: padding: border: background-color: cursor: } .box:hover { transform: } 簡単に言うとコマ送りのようなアニメーションになります。steps(12,start)の12の部分がコマ数になるので、数値を大きくすると滑らかなアニメーションになります。steps(12,start)のstartの部分は変化するタイミングを指定します。例えばこのようにtransitionを4s steps(4, start);とした場合HOVER.box { transition: padding: border: background-color: cursor: } .box:hover { transform: } 4秒で360度回転するアニメーションを4コマに分割するので、1秒ごとに90度回転します。startを指定した場合、マウスカーソルがボックスに当たった瞬間から90度回転します。その為、0秒で90度、1秒で180度回転するため、3秒目でアニメーションが完了します。endを指定した場合は、マウスカーソルが当たった瞬間ではなく1秒後からアニメーションがスタートします。steps(4,start)を指定した場合HOVER0秒90度HOVER1秒180度HOVER2秒270度HOVER3秒360度完了!HOVER4秒360度steps(4,end)を指定した場合HOVER0秒0度HOVER1秒90度HOVER2秒180度HOVER3秒270度HOVER4秒360度完了!アニメーションする属性を指定するHOVER.box { transition: padding: border: background-color: cursor: } .box:hover { transform: background-color: } 上のソースコードは、マウスカーソルが当たったらボックスが回転しつつ背景色が変わるアニメーションを指定したものです。例えば回転はアニメーションにしたいけど背景色は瞬時に変えたいといった場合は、transitionにアニメーションにしたい属性を指定することができます。.box { transition: transform 1s;}このようにtransitionにtransformを追加すると、この値はtransformに対する変化のみに適用されます。HOVER.box { transition: padding: border: background-color: cursor: } .box:hover { transform: background-color: } 回転だけアニメーションで、背景色の変化はアニメーションしないように指定できました。さらに自由にアニメーションを作る方法このようなアニメーションを作りたいとします。HOVERマウスカーソルを当てると 360度回転する(transformを使う) ボックスが大きくなる(paddingを使う)の順番でアニメーションが実行されます。このようなアニメーションを作る方法を見ていきましょう。,(カンマ)で区切ると複数のアニメーションを同時に指定できるこのように,(カンマ)で区切ると、別のアニメーションの調整を行うことができます。.box { transition: transform 0.5s, padding 0.5s 0.5s; }.box:hover { transform: rotate(360deg); padding: 0.4rem 5rem;}上の例では、,(カンマ)の前でtransform 0.5sを指定し,(カンマ)の後でpadding 0.5s 0.5sと指定しています。こうすることで transform: roate(360deg)はマウスカーソルが当たった瞬間からスタートし、0.5秒でアニメーション完了 padding: 0.4rem 5remはマウスカーソルが当たってから0.5秒後からスタートし、それから0.5秒でアニメーション完了といった設定ができます。:hover内と通常時で別々のtransitionを書く上の,(カンマ)で区切ってtransformとpaddingのアニメの開始タイミングをずらしただけではこのようになります。HOVER.box { transition: transform 0.5s, padding 0.5s 0.5s; padding: 0.4rem 0.8rem; border: 2px solid #0072c6; background-color: white; cursor: pointer;}.box:hover { transform: rotate(360deg); padding: 0.4rem 5rem;}マウスカーソルが当たった時のアニメーションはいい感じですが、マウスカーソルが外れたときのアニメーションはどうでしょう。変化を元に戻す順番もtransform(回転) padding(サイズ変更)となってしまうため、おかしなことになってしまっていますね。:hoverにtransitionを指定するとマウスカーソルが当たった時にはそちらが適用されるHOVER.box { transition: padding: border: background-color: cursor: } .box:hover { transition: transform: padding: } CSSをこのように修正すると、マウスカーソルが当たった時とマウスカーソルが外れたときのアニメーションのタイミングを変えることができます。マウスカーソルが当たった時は.box:hover内のCSSが適用されるためtransform 0.5s, padding 0.5s 0.5sで指定したように、回転サイズ変更の順番でアニメーションが実行されます。マウスカーソルが外れた時は.box内のCSSが適用されるためtransform 0.5s 0.5s, padding 0.5sで指定したように、サイズ変更回転の順番でアニメーションが実行されます。最後まで読んでいただきありがとうございます!プログラミング学習は何度も繰り返して覚えていくことが大切です!是非ブックマークして学習に役立ててみてください!質問や、こんなことを記事にしてほしい!というのがありましたらTwitterのコメント等で受け付けていますので、お気軽にどうぞ!ますみ - 愛知県在住の20代プログラマー - | @mashmy_98それでは次の投稿もお楽しみに!

2023年04月24日

Read More

【書けるからわかるCSS】deg、rad、turnとは?

こんにちは!エンジニアのますみです!本日はCSSの数値の単位deg、rad、turnについて解説します!聞きなれない単位ですね...何に使うのでしょうか?deg、rad、turnは回転の角度の単位deg、rad、turnはすべて回転の角度を表す単位です。transformのrotate等で使うことができます。それぞれ数値の意味合いが変わってくるので見ていきましょう。degの使い方BOX.box { transform : } degは最も簡単で、1degは円周の360分の1です。普段使う角度の単位と同じですね。数値を増やすと時計回りに要素が回転します。マイナスの値を指定すると反時計回りに回転します。radの使い方BOX.box { transform : } radはラジアンのことです。3.14が180度(180deg)、6.28が360度(360deg)です。動きが難しいのでサンプルは元の角度にオレンジの線、現在の角度に青い線を引きました。turnの使い方BOX.box { transform : } turnはさらに直感的で、1で一周といった意味になります。つまり半回転させたい場合は0.5turnとすればよいというわけですね最後まで読んでいただきありがとうございます!質問や、こんなことを記事にしてほしい!というのがありましたらTwitterのコメント等で受け付けていますので、お気軽にどうぞ!ますみ - 愛知県在住の20代プログラマー - | @mashmy_98それでは次の投稿もお楽しみに!

2023年04月29日

Read More

ますみ

愛知県在住の20代プログラマーです!

プログラミングと無縁の専門学校を卒業して働き出しましたが、コロナ禍でほぼ無職に...

無職時代に独学でプログラミングを勉強して、未経験からめでたくプログラマーとして採用していただけました。

このブログを見た方が、わたしが独学で勉強していた時期に悩んでいたことで悩まないように...そう願いながら情報を発信しています!

おすすめレンタルサーバー


当サイトはXserverを利用しています。 HTML、CSSで作成したホームページはもちろん、wordpress、Laravel等で作成した高度なアプリケーションも利用可能です!

ますみ

愛知県在住の20代プログラマーです!

プログラミングと無縁の専門学校を卒業して働き出しましたが、コロナ禍でほぼ無職に...

無職時代に独学でプログラミングを勉強して、未経験からめでたくプログラマーとして採用していただけました。

このブログを見た方が、わたしが独学で勉強していた時期に悩んでいたことで悩まないように...そう願いながら情報を発信しています!