質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.97%

CSS3でできることをJavaScriptで勉強する必要はあるか?

解決済

回答 4

投稿

  • 評価
  • クリップ 1
  • VIEW 2,126
退会済みユーザー

退会済みユーザー

アコーディオンメニューなどJavaScriptを使わずにCSS3で実現できますが、わざわざJavaScriptで勉強すべきか?というのが質問です。
Flashのように2020年に廃止されるものであれば、HTML5だけを勉強すればいいですが、よほど古いブラウザでない限りCSS3でできることをオン/オフの切り替えができるJavaScriptで勉強すべきかどうか疑問です。

CSS3でできることは余裕があれば、JavaScriptでも勉強すべきなのでしょうか?
よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+14

過去ログを読んで、Webデザイナを志しているとお見受けしました。

 アコーディオンメニュー

よほど古いブラウザでない限りCSS3でできることをオン/オフの切り替えができるJavaScriptで勉強すべきかどうか疑問です。

アコーディオンメニューというのは、JavaScriptとしては決して難しいものではありません。
問題は「アコーディオンメニューを自力で作れる程度のJavaScriptの知識を持っているか」ということではないでしょうか。
Webデザイナとして職に手を付けるにあたって、「私はJavaScriptは分かりません。HTML/CSSだけなら分かります。」でずっとやっていくのなら、それでもいいですが、そうでないならアコーディオンメニューの作り方を覚える事にデメリットは存在しないと私は思います。
仮に業務上でJavaScriptを利用したアコーディオンメニューを作る機会がなかったとしても、アコーディオンメニューを作る為に習得した技術的知識は必ず役に立ちます。
また、企業側からすると、何らかの成果物があった方がその人の実力を判断しやすい為、求人に応募する際のメリットにもなりますね。

 「覚えるべき技術」と「覚えなくていい技術」

Flashのように2020年に廃止されるものであれば、HTML5だけを勉強すればいいですが、

こちらの文章を読んで、下記質問を思い出したので触れておきます。

全体として、「主要な技術を一つだけ学び、他を切り捨てたい」という意思が見て取れますが、その考え方は危険です。
「無駄な技術は覚えたくない」という気持ちは分からなくもないですが、日進月歩で進化する世界ですので、世代交代は有りますし、世代交代の為に過去の技術が必要になることもあります。

  • 主要ブラウザをGoogle Chromeに設定したとしても、IE11やFirefoxで確認しなくてよくなるわけではありません。今どきのWebサイトは主要ブラウザ全てで閲覧可能なのが通常であり、特定のブラウザしか閲覧不可能なWebサイトにはなりません。
  • HTML4の既存サイトに機能追加する場合にHTML4からHTML5にアップグレードするか、HTML4のままで機能追加するか、の選択を迫られます。いずれにしても、HTML4とHTML5の違いを理解していなければなりません。

Re: skpro さん

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/31 23:53

    それもあります. 他にもSVGフィルタって凄く重いんですが, 内部の処理(何をしているのか)をイメージできると「そりゃ重たい」って判るとか...

    キャンセル

  • 2018/02/01 00:02

    残念ながら、私はSVGフィルタを知らないのですが、「内部の処理(何をしているのか)をイメージできると」からプログラマとしての考え方に近い印象で、一つ以上のプログラミング言語を習得してから辿り着く領域のような気がします。

    キャンセル

  • 2018/02/01 00:05

    多分そうでしょうね(SVGフィルタって内部でがっつり画像処理しまくるので). だからこそ「知らなくて良い技術」ってのは滅多に無い. 時々あらぬところで役に立つと.

    キャンセル

+11

基本的な認識に齟齬があります. CSSとJavaScriptとを比較することそのものに意味がありません.

HTMLやCSSは文書データやスタイル等の構造を記述するための言語(マークアップ言語とスタイルシート言語)であり, JavaScriptはそれらを操作するための手続きを表す言語(スクリプト言語)であるからです. 役割が異なる二つの対象を比較することは出来ません.

アコーディオンメニューなどJavaScriptを使わずにCSS3で実現できますが、わざわざJavaScriptで勉強すべきか?というのが質問です。
Flashのように2020年に廃止されるものであれば、HTML5だけを勉強すればいいですが、よほど古いブラウザでない限りCSS3でできることをオン/オフの切り替えができるJavaScriptで勉強すべきかどうか疑問です。

JavaScriptはスタイルシートのON/OFFを切り替えるためだけに存在しているわけではありません
なお, あなたがやりたいことが全て静的なCSSの範疇で閉じているのであれば, わざわざJavaScriptを学ぶ必要はありません.

CSS3でできることは余裕があれば、JavaScriptでも勉強すべきなのでしょうか?
よろしくお願いします。

必要に迫られてJavaScriptを学ぶのであって, あなたが現状要らないと感じているのであれば, それで良いのです. では, その必要性とは何でしょうか? 概ね次の条件に合致する場合です.

  • 静的なHTML文書だけでは対処が難しい場合
  • 静的なスタイルシートだけでは対処が難しい場合
  • その他WEB APIを利用したWEBアプリケーションを構築する場合

NOTE:
しかし現実問題として静的なHTML/CSSだけで全ての要件が解決するはずがないため, 皆んな渋々JavaScriptを学んでいるのです. とは言え, JavaScriptを学ぶことでWEBブラウザの内部構造についての理解が深まるため, WEBエンジニアを目指すのであれば習得が必須の技術と言えるでしょう.

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/31 23:16

    ここね, ちょっと悩んだのよね. やっぱり併記したほうが良さそうですね.

    キャンセル

  • 2018/01/31 23:23

    https://teratail.com/questions/110771
    skpro さんは上記質問でHTML/CSS/JavaScriptを全て「プログラミング言語」と認識している節があったので、誤解が加速しないか心配になって、補足してみました。

    キャンセル

  • 2018/01/31 23:26

    正確には「コンピュータ言語」ですね.

    キャンセル

checkベストアンサー

+6

CSSだけで実現できるのであれば、JavaScriptを書く必要はありませんが、開発者なのであればJavaScriptは勉強すべきです。基本はそんなに難しくないですし、いちどにすべてを勉強しようとせず、とりあえず得意な部分や興味のある部分からとりかかればよいと思います。

※開発者を目指していないのであれば必要はありません。

ケースとしてJavaScriptが必須になることもあります。例えば、JavaScriptの処理中にCSSを変更したい場合は、JavaScriptとCSS両方の知識が必要になります。CSSクラスを変更するのか、追加するのか、styleを追加するのか、知らなければソリューションも見つかりません。

知識として覚えておけばできることの可能性が広がります。つまりアイディアも広がります。

下記のような質問にはどのように答えますでしょうか?

  • 掛け算がわかるなら、足し算を勉強する必要はないのでしょうか?
  • 連立方程式がわかるなら、つるかめ算を勉強する必要はないのでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+5

label要素を使ったピュアCSSアコーディオンメニューは、PCならかなり昔から動作しましたが、iOSはバージョン8になるまで不具合があったはずです。
少なくともiOS6で動作せずにショックを受けた記憶があります。

ほんの3、4年前ですから、「よほど古いブラウザ」というほどではないですね。デバイスで言うとiPhone4はiOS8が対応していませんから、アコーディオンメニューが動作しない可能性があります。試したわけではありませんが。

HTML/CSSを表示する新しいデバイス登場した時に、そのブラウザが現行の仕様にすべて対応するとは限らないと思います。
また、現行のHTMLの仕様ではlabel要素に activation behavior があるプラットフォームの場合、

On other platforms, the behavior might be just to focus the control, or do nothing.
HTML Standard 日本語訳

とされています。
あまり油断されないほうがいいかもですね。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.97%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る