首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >#shadow-root in angular模板

#shadow-root in angular模板
EN

Stack Overflow用户
提问于 2014-08-22 23:19:14
回答 1查看 4.2K关注 0票数 0

我的angular模板中有一个输入框,如下所示:

代码语言:javascript
复制
<input type="text"
             name="growth"
             label="Growth"
             ng-model="mySettings.growth"
             class="input-mini text"
             required
             integer
             min="0"
             max="4"
             tooltip
             tooltip-trigger="{{{true: 'mouseenter', false: 'never'}[mySettings.growth.$invalid]}}"
             tooltip-placement="right"
      />

当它由angular渲染时,它看起来如下所示:

代码语言:javascript
复制
<input type="text" name="growth" label="Growth" ng-model="mySettings.growth" class="input-mini text ng-scope ng-pristine ng-valid ng-valid-required ng-valid-integer" required="" integer="" min="0" max="4" tooltip="" tooltip-trigger="never" tooltip-placement="right">
   #shawdow-root (user-agent)
     <div id="inner-editor">10</div>
</input>

上面显示的这个#shadow-root元素是什么?

EN

回答 1

Stack Overflow用户

发布于 2014-08-28 23:05:58

# Shadow -root并不是一个真正的元素,而是浏览器添加的一个注释,用来表明下面的元素(.nel-editor div元素)是浏览器添加的用于显示输入字段的Shadow DOM。

考虑一个更复杂的表单元素,比如滑块。作为一名开发人员,您只需将输入类型设置为"range“,并拥有一个由单个input标记表示的功能滑块。

旋钮和滑块轨迹也是由浏览器渲染的,但对于任何CSS选择器或JavaScript DOM遍历函数都是隐藏的,因为您只添加了一个输入标记,如果浏览器静默地附加DOM节点以正确渲染滑块,则会破坏一切。这种“隐藏的DOM元素”被称为Shadow DOM

在Chrome浏览器中,元素标签中阴影DOM的可见性可以通过设置>常规>元素>‘显示用户代理阴影DOM’下的一个选项来切换。

关于Shadow DOM的更多信息,我发现this link from HTML5 Rocksthis resource对我很有帮助。

这个阴影DOM元素也可以在普通的输入标记中找到,它与示例中的AngularJS输入指令无关。

对于CSS选择,有一个::shadow伪类和一个JavaScript Shadow DOM遍历API --参见上面的HTML5 Rock链接。

正在兴起的WebComponents利用了影子DOM。如果您对实现感兴趣,可以查看Polymer项目及其源代码,其中大量使用了Shadow DOM。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25450420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档