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

AngularDart なら CSS 選びに悩まない

$
0
0

Web の UI を設計するときに CSS を、stylus や sass など、どれを使えばいいか、悩んだり、不満を感じることがあると思います。AngularDart ならすべてを超越した答えを導き出すことが可能です(自分の利用してる範囲では)。

Dart で CSS を管理する

stylus や sass などの、CSSプリプロセッサと呼ばれるものは利用しません。私も過去、AngularTS の時は stylus 、AngularDart を触り初めの頃は、sass を使っていました。しかし、これには大きな問題があって、sass のアップデートが、dart sdk のバージョンアップに、追い付かなくて、sass を利用するなら、最新の dart sdk が利用できない、という時期がありました。この問題を解決するために、そのままの CSS を使うしかないと、思いました。

Dart ファイル内で CSS を記述する

dart:html ライブラリには、css を設定するための api が用意されています。それを利用します。

メリット

  • CSS ファイルを作らないので、CSS ファイルを作る&移動などの手間の削減_、ファイルエクスプローラーの視認性が向上。
  • dart 内で管理するので、変数や条件分岐などが容易&それらを実現するための_新たな文法を覚える必要が無い

頑張らないといけないところ

  • 自分で、dart:html から、api を探してこないといけない。
  • 日本語による参考記事はほぼ皆無。英語記事でも十分ではない。
  • 特に、メディアクエリーなど、CSS の中でも特別な記法は、正しいやり方にたどり着くまでが大変。

実際のコード

ポイントは3つ。

  1. template variable を使う。「 <h1 #el>sample</h1> 」の「#el」の部分)
  2. @ViewChildを使う。「@ViewChild('el')」で、上記の 「#el」を参照できる。この場合、h1 タグの参照を得ます。
  3. ngOnInit で CSS の処理を記述する。

MediaQuary の例も載せてみました。

import'dart:html';import'package:angular/angular.dart';@Component(selector:'sample',template:'<h1 #el>sample</h1>',)classSampleimplementsOnInit{@ViewChild('el')HtmlElementel;@overridevoidngOnInit(){if(el!=null){consttextColorA='red';consttextColorB='blue';constbackgroundColor='black';constoverflow='scroll';el.style.color=textColorA;el.style.backgroundColor=backgroundColor;el.style.overflow=overflow;/// MediaQuary ブラウザのサイズが変化したら発火するconstminWidth='800px';constmaxWidth='1600px';finalmediaQueryListMin=window.matchMedia('screen and ( min-width:${minWidth} )');finalmediaQueryListMax=window.matchMedia('screen and ( max-width:${maxWidth} )');mediaQueryListMin.addListener((event){if(mediaQueryListMin.matches){el.style.color=textColorA;print('min fire');}});mediaQueryListMax.addListener((event){if(mediaQueryListMax.matches){el.style.color=textColorB;print('max fire');}});};}}

所感

MediaQuary の挙動はクセがあるので、実際は、もう少し複雑な処理を書いたり、ラップして使ってます。

網羅してるわけではないので、CSSファイルで記述しないといけない箇所が、例外的に存在する可能性はあります。web-kit とか書かなきゃいけないところとか。まだ、試したことないので、勝手な憶測ですが。

最後に

AngularDart なら CSS のプリプロセッサ選び及びそれに付随するバージョン管理、記法の習得、などから解放されるということを伝えるための記事でした。

Dart のコードで CSS を記述する参考記事が少ないので、どうやって書いたらいいのか、悩むことが多いので、それが1つ大きなネックではあります。初心者の方には少しハードルが高いかなと思いますが、慣れたらこっちの方が楽です。

以上です。


Viewing all articles
Browse latest Browse all 8945

Trending Articles



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