お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。
投稿日:
言語::HTML言語::JavaScript
  • 素のHTMLにJSを埋め込んでイベントコールバックの引数を取る方法
    • イベントコールバックの引数にeventを指定する
      • 例:onclick="test(event)"

サンプルコード

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <title>Example of DOM Event callback arguments</title>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <script>
      const test = (ev) => {
        console.log(ev);
      };
    </script>
  </head>
  <body>
    <p onclick="test(event)">aaa</p>
  </body>
</html>

maxlength

  • iOS Safariでは効かない
  • onInput()string.slice(0, maxlength)するとIMEの挙動が可笑しくなる
    • type="tel"など日本語が入力できない場合であれば有効
  • オートコンプリートやコピペ入力での字切れなどもあるため、根本的に使わないことが望ましい

type="number"

  • iOS Safariでは期待した動作にはならない
    • IMEが有効になり、全角入力が発生する
  • 使うならtype="tel"を使い、JSで数字以外の入力を弾くのが無難
  • 恐らく普及ブラウザの全てで半角入力を強制出来、スマホなどではNumPadが出てくる
    • アルファベットやハイフンなどの記号も打てるので必要に応じた入力制御が必要
投稿日:
言語::JavaScript言語::HTML

JavaScriptで添付ファイルを拾うのと、ファイルを落とす処理のサンプルコード

<html>
<head>
  <meta charset='utf-8'>
  <title>js file up/dl example</title>
  <script>
    window.onload = () => {
      const fr = new FileReader();
      const el = document.getElementById("test");

      fr.onload = (ev) => {
        const dl = document.createElement('a');
        dl.setAttribute('href', ev.target.result);
        dl.setAttribute('download', el.files[0].name);
        dl.style.display = 'none';
        document.body.appendChild(dl);
        dl.click();
        document.body.removeChild(dl);
      };

      el.onchange = () => {
        fr.readAsDataURL(el.files[0]);
      };
    };
  </script>
</head>
<body>
  <input type="file" id="test"></input>
</body>
</html>
投稿日:
言語::HTML言語::CSS

画像マーカーを使ったリストタグを使った時に文字列がvertical-align: middle的になってほしい!

が結論から言うと多分無理です

なってくれないんだなこれが!

  • 残念ながら現実にはなりません

縦中央に来ない

  • 上の画像のソースはこんなん
    • ::beforecontent に画像を置くとかしても無駄です
<ul>
  <li>リストの要素だよ~</li>
  <li>改行のある<br>リストの要素だよ~</li>
</ul>
ul {
    list-style-image: url("https://i.imgur.com/hX2OCbY.png");
}

li {
    vertical-align: middle;
}

どうにか対策してみる

  • 一見するとなんとかなったように見えますが、改行すると崩れます
    • ぶっちゃけ無理にリストタグ使う必要もないと思うので、素直に div とかで代替するのが一番だと思います
      • 何が何でもリストタグ使いたい場合はリストタグでラップしてしまうのが一番でしょうね…

力づく

  • 上の画像のソースはこんなん
    • リストのマーカーを使うことを放棄しているので、画像を抜けると字が落ちるのはどうしようもないですね
<ul>
  <li>リストの要素だよ~</li>
  <li>改行のある<br>リストの要素だよ~</li>
</ul>
    .ul {
      list-style: none;
    }

    .li::before {
      padding-right: 3px;
      min-height: 36px;
      content: url("https://i.imgur.com/hX2OCbY.png");
      vertical-align: middle;
    }