2015-09-02 12 views
6

Ich möchte mit dem Polymer Starter Kit + den vorgefertigten Polymerelementen eine responsive Website erstellen.Wie erreichen Sie in Polymer Project 1.0 so etwas wie Container oder Gitter?

Nun, wie etwas wie ein Container oder Grid wie in einem CSS Framework wie Bootstrap zu erreichen?

Ist es möglich mit nur Polymer, oder meine einzigen Optionen sind meine eigenen benutzerdefinierten Code oder ein Framework/Grid-System wie Skelett, Bourbon ordentlich, etc?

Ich habe versucht, bei Eisen-flex-Layout zu sehen, aber es oben nicht kollabiert nicht voneinander wie ein Gitter auf kleineren Bildschirmgrößen, können Sie es hier sehen:

http://plnkr.co/edit/ds6gAyohtZW4ESkxu83o?p=preview

<div class="horizontal layout" style="height:100%"> 
    <div class="flex-1"> 
     Left column 
    </div> 
    <div class="flex-4"> 
     Right column 
    </div> 
    </div> 

Es "kollabiert" nicht, so dass die Boxen untereinan- der stehen, wenn Sie die Größe des Fensters ändern, es skaliert einfach.

Also, wie soll ich es angehen?

EDIT: Ich möchte so etwas wie dieses Ziel erreichen: http://www.bootply.com/4CJ9GOYEuH

Also, wenn Sie die Größe des Fensters die dics auf die aufeinander kollabieren wird, statt nebeneinander zu bleiben.

+0

Haben Sie [this] (https://elements.polymer-project.org/guides/flex-layout) Dokumentation über 'Eisen-Flex-Layout' gesehen? –

+0

Ja, aber ich würde gerne etwas wie das erreichen: http://www.bootply.com/4CJ9GOYEuH Also, wenn Sie die Größe des Fensters ändern, werden die dics zusammenfallen, anstatt nebeneinander zu bleiben . – lastnoob

Antwort

0

Versuchen Sie Eisen Grid IRON-GRID und finden Sie mehr Custome Elements bei Bedarf.

+0

Danke, ich habe es ausprobiert, aber leider kann ich es entweder nicht richtig benutzen, oder es unterstützt keine Zeilen und Container wie zum Beispiel im Bootstrap, wie Sie in meinem OP Bootply Link sehen können. Welches ist es?:) – lastnoob

+0

Sie müssen Spaltengrößen verwenden. Wenn Sie wollen, dass sie auf kleinen Geräten stapeln, setzen Sie s12, etc. – The5heepDev

+0

Hinweis, Iron-Grid ist unter GNU GPL v3 lizenziert. Wenn Sie eine Software erstellen, die Sie neu verteilen möchten, kann dies ein Problem sein (es sei denn, Ihre Software ist ebenfalls GPL). Hoffentlich werden Iron-Grid-Autoren es irgendwann unter MIT oder BSD veröffentlichen. –

1

Sie können die iron-flex-layout und iron-media-query in Kombination verwenden. Die Iron-Media-Abfrage wird basierend auf der Größe des Darstellungsbereichs aktualisiert und Sie können die Übereinstimmung der Medienabfrage mit anderen Elementen verknüpfen.

Naiv, könnten Sie Folgendes tun, aber Sie könnten auch queryMatches verwenden, um die "flex-n" -Klassen für Ihr Layout zu generieren.

<iron-media-query query="(min-width: 600px)" query-matches="{{queryMatches}}"></iron-media-query> 

    <template is="dom-if" if="{{queryMatches}}"> 
    <div class="horizontal layout" style="height:100%"> 
     <div class="flex-1"> 
     Left column 
     </div> 
     <div class="flex-4"> 
     Right column 
     </div> 
    </div> 
    </template> 

    <template is="dom-if" if="{{!queryMatches}}"> 
    <div>Left column</div> 
    <div>Right column</div> 
    </template> 
+0

Danke! Also korrigiere mich, wenn ich falsch liege, aber das macht grundsätzlich folgendes, oder? Die Iron-Media-Abfrage prüft, ob die Breite des Ansichtsfensters größer oder kleiner als 600px ist, und wenn es größer ist, wird die erste Vorlage verwendet, und wenn sie kleiner ist, wird die zweite verwendet. Können Sie mir in Codepen zeigen, wie man den Zusammenbruch übereinander wie ein Gitter oder dergleichen macht? Ich würde es wirklich schätzen. Auch was denkst du darüber [IRON-GRID] (https://github.com/The5heepDev/iron-grid/) @ user3457398 verknüpft? – lastnoob

0

Sie können Bootstrap des Grids CSS innerhalb einer Web-Komponente hinzuzufügen, so etwas wie:

<dom-module id="bootstrap-grid"> 
    <template strip-whitespace> 
     <style> 
      /* Grid styles from Bootstrap */ 
     </style> 
     <content></content> 
    </template> 
    <script>Polymer({ is: 'bootstrap-grid' });</script> 
</dom-module> 

Die Bootstrap Rasterstilen für eine zu große SO beantworten, so here is a JSFiddle, und hier it is on GitHub.

Und dann innerhalb dieser Komponente können Sie es verwenden, wie Sie in <div class="container-fluid"> sind:

<bootstrap-grid> 
    <div class="row"> 
     <div class="col-xs-12 col-sm-6 col-lg-4"><div class="panel">one</div></div> 
     <div class="col-xs-12 col-sm-6 col-lg-4"><div class="panel">two</div></div> 
     <div class="col-xs-12 col-sm-6 col-lg-4"><div class="panel">three</div></div> 
    </div> 
    <div class="row"> 
     <div class="col-xs-6 col-sm-4 col-lg-3"><div class="panel">A</div></div> 
     <div class="col-xs-6 col-sm-4 col-lg-3"><div class="panel">B</div></div> 
     <div class="col-xs-6 col-sm-4 col-lg-3"><div class="panel">C</div></div> 
     <div class="col-xs-6 col-sm-4 col-lg-3"><div class="panel">D</div></div> 
    </div> 
</bootstrap-grid> 

In the Fiddle Ich habe --bootstrap-grid-gutter hinzugefügt, um die Rinne Größe zu konfigurieren, aber ich kann nicht die Haltepunkte konfigurierbar aufgrund machen zu issues with the CSS shim. Sie könnten das mit <iron-media-query> konfigurierbar machen, wenn Sie es brauchen.