🦍

jsPsych: テキスト入力で2行以上だとfont-sizeの変更が反映されない

2024/04/04に公開

困りごと

参加者が自由記述の形式で回答するときのフォントサイズは,jspsychのCCSファイル(jspsych.css)を書き換えることで変更可能です。

https://zenn.dev/toda_kodai/articles/51e1c6f2b0007a

具体的には,以下の部分のfont-sizeの部分を書き換えるとOK

/* Form elements like input fields and buttons */
.jspsych-display-element input[type=text] {
  font-family: "Open Sans", "Arial", sans-serif;
  font-size: 2rem;  /* ここを書き換える */
  line-height: 1.2;
}

例えば表示される文字の大きさは1remで,入力する文字の大きさは2remだと,こんな感じで入力文字だけでっかくなります↓

image.png

ただ,この反映は,1行で入力する場合しか反映されないんですよね・・・

image.png

上の画像みたいな場合なら問題ないんですが,表示文字を3remにする必要があるとき,入力文字が1remのままだと困るわけです。

image.png

これ,実はjsPsychのplugin-survey-textで参照している文字の大きさに関するCSSが,1行のときと2行のときで違うからなんですよね。。。

そこで今回は,この問題を解決するための方法をメモ

やり方

めっちゃ簡単です。下記のように書き換えてみてください。

/* Form elements like input fields and buttons */
.jspsych-display-element input[type=text],
.jspsych-display-element textarea {
  font-family: "Open Sans", "Arial", sans-serif;
  font-size: 2rem;
  line-height: 1.2;
}

1~2行目までが変化してます。

具体的には, .jspsych-display-element textarea が書き足されてます(input[type=text] の後ろにある , をお忘れなく)。

jsPsychのplugin-survey-textでは,1行だけの入力欄を作る場合にはinput要素を用いるんですが,2行以上の場合はtextarea要素を用いています(なお,これは基本的なHTML・CSSによるWebページでも同様です)。

ただこの,textareaに関する記述が,ダウンロードできるCSSファイルにはなかったんですよね。。。

そこで,自分で書き足してあげよう!というのが,今回の記事でやってることでした。

Discussion