React专栏:React中通用组件的通用DOM标准属性

通用组件的通用DOM标准属性

名称描述建议或更多
accesskey定义元素功能快捷键的方式: chrome/windows 环境: Alt + [key], <button accesskey="s"></button> => 快捷键 Alt + s会有很多问题,不建议使用
aria-*无障碍富网络应用 ARIA 属性
autocapitalize一个枚举属性, 用于控制用户输入、编辑文本输入文本是否自动大写医技大写的方式物理键盘输入以及有type属性的input不生效
classNameElement.className 获取或设置元素class属性的值Element.className="contianer" let elClass = Element.className
contenteditable枚举属性,描述元素的内容是否可编辑, contenteditable="true/false"如可编辑浏览器将元素变为用户可输入,但修改事件无法使用onChange监听
data-*自定义全局属性
dir定义文本输入方向: auto:自定义,ltr:从左往右书写的,如中国:“国之根本” , rtl: 从右往左输入的,如阿拉伯等
draggable是否允许浏览器使用原生的拖拽Api只支持链接、图片、选中的文字的拖拽,其他拖拽需通过onDragStart等事件监听
enterKeyHint指定虚拟键盘上的 entry键的操作方式示例讲解
htmlFor<label>和<output>的属性, 等同于原生的<label for=""> for 属性
hidden[boolean] :隐藏元素浏览器源码: {display: none !important;}
id不能包含空格,制表符等空白字符标注元素的唯一值, 18.x可以用 useId生成唯一值 例如 :r0: :r1:
is自定义元素的类属性chrome v67+ 示例讲解
inputMode指定输入时,弹出键盘的类型目前各浏览器兼容性较差
itemProp可给 HTML 元素添加属性以 键值对[name]:[value:string|url] 的形式
lang可给 HTML 元素添加语言类型属性 依据 BCP47优先级低于 xml:lang
  • enterKeyHint
属性值描述建议或更多
enter插入一个新的行,回车键常用功能enterKeyHint="enter"
doneinput 操作已完成enterKeyHint="done"
go跳转到当前输入的地址enterKeyHint="go"
next跳转到下一个表单enterKeyHint="next"
previous跳转到上一个表单enterKeyHint="previous"
search搜索当前输入的内容enterKeyHint="search"
send发送当前输入的内容到目标<a href="..." enterKeyHint="send">发送</a>
// enter
const el = document.getElementById('container-1')
el.enterKeyHint = "enter"
  • is
  // html
      ...
      <div contenteditable="">
        <p>这里开始输入</p>
        <p is="word-count" style="background-color: lightblue;height: 60px;color:black;"></p>
      </div>

      // js
      // HTMLParagraphElement : Element 的api 用于定义 <p>元素的类
      class WordCount extends HTMLParagraphElement {
        constructor() {
          super();
          // 获取父节点中词的个数
          const wcParent = this.parentNode;

          function countWords(node){
            const text = node.innerText || node.textContent;
            return text.trim().split(/\s+/g).filter(a => a.trim().length > 0).length;
          }

          const count = `Words: ${countWords(wcParent)}`;

          // 创建一个 shadowRoot 详见 **[shadowRoot](#https://developer.mozilla.org/zh-CN/docs/Web/API/ShadowRoot)**
          const shadow = this.attachShadow({mode: 'open'});

          const text = document.createElement('span');
          text.textContent = count;

          // 将包含个数的元素插入shadow
          shadow.appendChild(text);

          // 当父节点的字发生变化时重新计算词的个数 
          setInterval(function() {
            const count = `Words: ${countWords(wcParent)}`;
            text.textContent = count;
          }, 200);
        }
      }

    // 将类与 is 关联 'word-count' <=> WordCount
    customElements.define('word-count', WordCount, { extends: 'p' });
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇