Register  |  LOGIN

CMSならDotNetNuke!高機能かつフリーのCMSです。

 

 DotNetNuke 対応ホスティングサービスに、
at link 専用サーバサービス」を追加

掲示板

DNNに関する情報共有はこちらからどうぞ!

DotNetNuke.jp 掲示板は、すべての DotNetNuke ユーザーのための情報共有の場です。

単に質問・回答の場ではありませんし、回答義務もございません。
運営メンバーも含め、DotNetNuke を日々学んでいる状況です。
質問をする場合は、まずインターネットなどで自分自身でお調べいただき、その情報を共有する事をこころがけてください。

>>当掲示板に書き込みいただくには、ユーザー登録が必要です。( ログイン・ご登録はこちら )
>>プライバシーポリシーについてはこちらをご覧ください。
 
  dotnetnuke.jp bbs  一般  デザイン  ボタンによるフォントの大きさ変更のやり方
Previous Previous
 
Next Next
New Post 4/25/2008 5:09 AM
  SHIMIZU
161 posts
5th Level Poster


ボタンによるフォントの大きさ変更のやり方 
Modified By SHIMIZU  on 4/25/2008 5:09:34 AM)

お世話になります。

ここのサイトのトップページの一番上のあたりに、フォントサイズの大きさを変えるボタンが付いているのに気付きました。(ただ、押してみたところでは変化がなかったのですが、スキンのフォントサイトの指定あたりの関係?)

こういう場合、JavaScriptでスタイルシートを差し替えるというようなのが一般的なのかなと思っていたので、DotNetNukeだと同じことをやるのは難しいのでは?と考えていたのですが、どうやっているのでしょうか?

 
New Post 7/11/2008 10:30 AM
  kyo-ko
24 posts
No Ranking


Re: ボタンによるフォントの大きさ変更のやり方 
Modified By kyo-ko  on 7/11/2008 10:31:24 AM)


私もこの方法をいろいろ試していたのですが、
「とりあえず動く」レベルのことができたのでご報告します。

方法は大きく分けて下記の2つです。
1.ブックマークレットを使って、テキスト(or画像)にJavaScriptをリンクさせる
2.JavaScriptをスキンに書き込み(orリンク)、CSSを切り替える

1.ブックマークレットを使う

リロードすると元に戻ってしまうのが難点ですが、一番手軽です。
HTMLモジュールに
-------
<a href=" (function(){var e,i;e=document.getElementsByTagName('*');for(i=0;i&lt;e.length;i++){e.item(i).style.fontSize='16px'}})()">【拡大】</a>
-------
等と記述するだけで終了です。

2.CSSの切替スクリプトを使う

CSSの切替をさせ、それをクッキーに保存させるのには、styleswitcher.js
http://alistapart.com/stories/alternate/)をダウンロードしてきて使っています。
これをヘッダーにリンクさせるか、スクリプトを直接スキン用HTMLのBodyに書き込んで、
切替用のCSS(文字サイズだけを記載したもの)とともに、スキンパッケージとして
アップロードします。

次にヘッダーに切替用のCSSを代替スタイルシートとしてリンクさせます。
(私はascxファイルがいじれないので、とりあえずページ設定の
「ページヘッダータグ」に書き込んでみました。
-------
<link rel="alternate stylesheet" type="text/css" href="/DotNetNuke/Portals/0/Skins/testskin/big.css" title="big">
<link rel="alternate stylesheet" type="text/css" href="/DotNetNuke/Portals/0/Skins/estskin/middle.css" title="middle">
<link rel="alternate stylesheet" type="text/css" href="/DotNetNuke/Portals/0/Skins/estskin/small.css" title="small">
-------

実際にボタン(?)となる部分には、HTMLモジュールに下記のように記述します。
-------
<a onclick="setActiveStyleSheet('big'); return false;" href="#">【大】</a>
<a onclick="setActiveStyleSheet('middle'); return false;" href="#">【中】</a>
<a onclick="setActiveStyleSheet('small'); return false;" href="#">【小】</a>
-------

これで、とりあえずは動きます。
開発者の方からみると、かなりまどろっこしい方法かもしれませんが・・・。

アクセシビリティーの向上は、今後かなり大きなテーマです。
他に良い方法を見つけられた方は、ぜひ教えていただきたくお願いします。

 
New Post 7/16/2008 4:49 PM
  SHIMIZU
161 posts
5th Level Poster


Re: ボタンによるフォントの大きさ変更のやり方 

kyo-koさん、どうもありがとうございました。

実際に試してみてからお礼をしようと思っていたのですが、色々とあって遅くなってしまいました。

で、やってみたところ両方ともうまく動きました。

1については、要はスタイルシートの切り替えによる制御ではなく、Javascriptでページ内の要素をループで回して一律に大きくしてしまうという方法のようですね。細かく制御するには不向きですが、文字の大きさを変える程度であれば個人的にはこれで十分ではないかという気もします。CSSを複数用意したりする必要もないですし、Cookieで全ページ対象にすると意図しないところレイアウトが崩れたりしそうなので、特定のページだけピンポイントにというのもよいかもしれません。

2が一番ポピュラーな方法でしょうか。なくしてしまったようですがこのサイトでやっていたのも恐らく同じタイプのやり方かと思います。

個人的にはフォントサイズの変更なんていうのはブラウザのメニューで変更すればよく、確実に使えるかどうかわからないJavascriptでやるようなものではないと思っているのですが、クライアントからの要望によっては対応しないといけないわけですし、フォントサイズの他にも色を変えたりというのにも使えそうなので、どうやっているのか知りたかったというのがありますので大変勉強になりました。あと、スタイルシートを差し替える場合はCSSレイアウトであれば大きさや色だけでなく、配置なども変更できるということになりますので、他の用途にも使えそうですね。

ところで、2の方法はこのままだと各ページに同じような設定を書いていかないといけませんのでメンテナンスが少し面倒です。そこで、最近憶えたこともあってモジュールにする作業をしているところです。設定パラメータなどはちょっと考えないといけませんが、とりあえず動くというレベルのものはできています。メインとなるコードは私が書いたものではないですし、欲しい人がいれば完成後に公開しようかと思っていますが、使ってみたいという人はいらっしゃいますでしょうか?モジュール作成&VB初心者ということで質は期待してもらっては困りますが、それでもよければどこか(たぶん私のサイト)で配布したいと思います。

 
Previous Previous
 
Next Next
  dotnetnuke.jp bbs  一般  デザイン  ボタンによるフォントの大きさ変更のやり方

掲示板ご利用のためのご案内

ログイン
すでに登録済みの方は、
上のボタンからログインを
お願いします。
登録
ユーザー登録がまだの方は、
上の「登録する」ボタンをクリックし、
登録画面にて必要事項をご入力の上、
ご登録ください。