2017-09-23 104 views
-1

我试图根据我得到的设计来创建纸张输入风格。我使用了here中描述的一些自定义属性,但并不是所有这些属性都适用。如何使用某些mixin(聚合物2)设置纸张输入风格?

我有使用问题--paper输入容器标签--paper输入容器输入聚焦

也许我会尝试错误地使用它们,或者它需要一些额外的步骤。

这里是我的代码

<link rel="import" href="../polymer/polymer-element.html"> 
<link rel="import" href="../paper-input/paper-input.html"> 
<link rel="import" href="../paper-input/paper-input-container.html"> 
<link rel="import" href="../iron-icons/iron-icons.html"> 
<link rel="import" href="../iron-icon/iron-icon.html"> 

<dom-module id="first-element"> 
    <template> 
    <style> 
     paper-input { 
     --paper-input-container-color: rgb(64, 64, 64); 
     --paper-input-container-focus-color: rgb(64, 64, 64); 

     --paper-input-container: { 
      border: none; 
      padding: 0px; 
     } 


     --paper-font-subhead: { 
      font-size: 100%; 
     } 

     --paper-input-container-underline-focus: { 
      display: none; 
     } 

     --paper-input-container-underline: { 
      display: none; 
     } 

     --paper-input-container-input: { 
      height: 24px; 
      line-height: 20px; 
      padding: 0 4px; 
      border: 1px solid rgb(194, 198, 199); 
     } 

     --paper-input-container-input-focus: { 
      border-color:red; 
     } 

     --paper-input-container-label { 
      font-weight: bold; 
     }  

     --paper-input-container-invalid-color: red; 
     } 

     :host { 
     display: block; 
     } 
    </style> 

    <paper-input always-float-label label="Floating label"></paper-input> 
    <paper-input label="username"> 
     <iron-icon icon="icons:accessible" slot="prefix"></iron-icon> 
     <div slot="suffix">@email.com</div> 
    </paper-input> 


    </template> 

    <script> 
    class FirstElement extends Polymer.Element { 
     static get is() { return 'first-element'; } 
     static get properties() { 
     return { 
      prop1: { 
      type: String, 
      value: 'first-element' 
      } 
     }; 
     } 
    } 

    window.customElements.define(FirstElement.is, FirstElement); 
    </script> 
</dom-module> 
+0

你有什么确切的问题? – juzraai

+0

你刚刚构建你的DOM错了吗?我已经改变了颜色以脱颖而出,但请参阅http://plnkr.co/edit/TMeXa7sIyzystv8RI5wb?p=preview – Thad

回答

1

我不知道是什么导致你期望,所以很难帮你,但有一点我可以肯定这是你的风格标签是如此凌乱。你需要在mixin之后编写一个分号,因为它们就像css属性,每个css属性都是用分号分隔的。
试试你的代码,这样的:

<style> 
    :host { 
    display: block; 
    } 

    paper-input { 
    --paper-input-container-color: rgb(64, 64, 64); 
    --paper-input-container-focus-color: rgb(64, 64, 64); 

    --paper-input-container: { 
     border: none; 
     padding: 0px; 
    }; 

    --paper-font-subhead: { 
     font-size: 100%; 
    }; 

    --paper-input-container-underline-focus: { 
     display: none; 
    }; 

    --paper-input-container-underline: { 
     display: none; 
    }; 

    --paper-input-container-input: { 
     height: 24px; 
     line-height: 20px; 
     padding: 0 4px; 
     border: 1px solid rgb(194, 198, 199); 
    }; 

    --paper-input-container-input-focus: { 
     border-color: red; 
    }; 

    --paper-input-container-label: { 
     font-weight: bold; 
    }; 

    --paper-input-container-invalid-color: red; 
    } 
</style> 

另一件事,你想样式焦点输入的边框颜色,而且要设置displaynone这没有任何意义。如果要设置颜色的样式,则必须删除display: none并将border-color: red;添加到--paper-input-container-underline-focus

+0

Thx作为回复。我试图对输入html元素进行样式设置,下划线在这种情况下不会帮助我,并且不应该干扰输入。 我在分类结尾处有分号,但是我使用的编辑器(Visual Studio Code)将它们标记为错误,这就是为什么我将它们移除的原因。 – sirbushir

+0

@sirbushir我不记得VS编码有这个问题,尝试禁用一些选项,如一些linting或html解析器,也许这就是你将它们看作是错误的原因,因为这个语法不是W3C标准的一部分。另外,如果您对输入纸张的设计不满意,您不应该试图惹恼这种内部行为,而应该制作自己的定制元素,并且完全满意您的内容。 – user544262772

+0

@sirbushir你的DOM for 是错误的。请参阅https://www.webcomponents.org/element/PolymerElements/paper-input/elements/paper-input-container和我的Plunker(链接到评论您的原始帖子)。至于分号,我认为它们是“必需的”,我不认为它们在结果上有所作用。 – Thad