Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

XSL thumbnails

Îåêßíçóå áðü ôï ìÝëïò dimos.homatas. Τελευταία δημοσίευση από το μέλος tasos στις 25-02-2011, 14:00. Υπάρχουν 24 απαντήσεις.
Σελίδα 1 από 2 (25 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  04-02-2011, 13:41 63020

    XSL thumbnails

    Καλησπέρα σας,

    έχω ένα αντικείμενο, που ως property διαθέτει μία λίστα από άλλα αντικείμενα, τα οποία έχουν ένα url property που παραπέμπει σε κάποιο thumbnail.

    Το ερώτημα είναι: ποιος είναι ο καλύτερος και πιο ανώδυνος τρόπος για να υλοποιήσω την προβολή των thumbnails σε δύο διαστάσεις;

    Η λύση που βρήκα μέχρι τώρα, και θέλοντας να αποφύγω μετρητές μέσα στο xsl (δεν ξέρω εάν γίνεται κιόλας...) ήταν να φτιάξω μία λίστα από λίστες, όπου η κάθε υπο-λίστα είναι η γραμμή με τα thumbnails. Κατόπιν θα τα εμφανίσω με δύο φωλιασμένα for each.

    Όλα αυτά μπαίνουν μέσα σε html table.

    Ο αριθμός των thumbnails είναι μεταβλητός.

    Εάν κάποιος έχει κάποια καλύτερη λύση, παρακαλώ...

    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  07-02-2011, 10:37 63062 σε απάντηση της 63020

    Απ: XSL thumbnails

    Καλημέρα,

     

    Προσωπικά θα προτιμούσα <div> με float = left.

    Όταν λες μπαίνουν σε table, τι εννοείς;

  •  07-02-2011, 11:02 63063 σε απάντηση της 63062

    Απ: XSL thumbnails

    Μου το είπε και ο Τάσος την Παρασκευή, αλλά ήμασταν εν μέσω... μπυροποσίας!

    Δεν με απασχολεί τόσο το αν θα είναι html table ή θα είναι σε div, αλλά το πως θα πάρει χαμπάρι το xsl ότι πρέπει να αλλάξει γραμμή.

    (Η επαφή μου με τα του web είναι μικρή)

    Έχω ένα αντικείμενο που το φοράω πάνω στο xsl. Αυτό το αντικείμενο έχει έναν ακαθόριστο αριθμό από url (που έχουν thumbnails). Το ερώτημα είναι: πως τα σπάω σε σειρές, πχ 3 thumbs σε κάθε σειρά; Η επανάληψη γίνεται σε ένα xsl: for each.

    Αυτό που έκανα ήταν και αυτό που έγραψα παραπάνω, λίστα με λίστες, και δούλεψε κανονικά, αλλά είμαι σίγουρος ότι υπάρχει best practice για αυτό το θέμα. Μπορεί τα instances να είναι τα ίδια και να μην ξαναφτιάχνει αντικείμενα κλπ (εκτός από τις λίστες), αλλά δεν μου αρέσει να κάνω τέτοιες πατέντες όταν μπορώ να τις αποφύγω.

    Βρήκα αυτό το ποστ: Counter inside xsl:for-each loop χρησιμοποιεί το position της λίστας. Φαντάζομαι ότι θα πρέπει να κάνω κάτι σε στυλ if position mod <αριθμών thumbs / row> = 0 then <tr>.





    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  07-02-2011, 11:51 63065 σε απάντηση της 63063

    Απ: XSL thumbnails

    Λοιπόν, για κάποιο best practice δεν ξέρω γιατί έχω κάτι χρόνια να ασχοληθώ με xsl. Ίσως κάποιος άλλος συνάδελφος μπορεί να μας κατατοπίσει καλύτερα. Πάντως, είναι καλή πρακτική να αποφεύγεις τα tables. Της μόδας είναι τα div διότι σου δίνουν μεγαλύτερη ευελιξία διαμόρφωσης με τη χρήση css.

     

    Εφόσον η επαφή σου με τα του web είναι μικρή, μια απλή και γρήγορη λύση για να πάρεις γραμμή είναι το http://w3schools.com/

    Ρίξε μια ματιά εκεί για τα επιμέρους στοιχεία που θα σου περιγράψω παρακάτω.

     

    Η λύση που σου προτείνω είναι πιο απλή από αυτή που σκέφτεσαι.

    Χρησιμοποιείς για container των thubnails ένα div. Κάθε thumbnail θα είναι ένα div μέσα στο οποίο θα υπάρχει ένα img και ότι άλλο θες (πχ description). Τα div των thubnails θα είναι το ένα μετά το άλλο χωρίς να ορίζεις σειρές, στήλες και άλλα τέτοια. Λόγω του μεγέθους των div και των float, το ένα θα κάθετε δίπλα στο άλλο μέχρι να γεμίσει η οθόνη και το επόμενο που δεν θα χωράει θα πάει στην από κάτω γραμμή. Ορίζουμε ένα margin ώστε αυτά να μην κολλήσουν μεταξύ τους αλλά να έχουν ένα «αέρα». Αν αλλάξει το μέγεθος της οθόνης, αυτά θα αναδιπλωθούν. Αν θες να έχεις σταθερό πλάτος  γραμμής, ορίζεις σταθερό πλάτος στον container.

     

    Έτσι και το xsl σου θα είναι πιο απλό. Δεν θα έχεις nested loops αλλά ούτε και μετρητές. Μέσα στο loop θα δημιουργείς για κάθε item ένα div με τα παρελκόμενα και τέλος.

     

    Πάρε ένα παραδειγματάκι για να καταλάβεις τι εννοώ.

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        </title>
        <style type="text/css" >
        .container
        {
            width:100%;
        }
        .item
        {
            width:100px;
            height :100px;
            background-color:Gray;
            float:left;
            margin:10px;
            
        }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="item">
                Item 1
            </div>
            <div class="item">
                Item 2
            </div>
            <div class="item">
                Item 3
            </div>
            <div class="item">
                Item 4
            </div>
            <div class="item">
                Item 5
            </div>
            <div class="item">
                Item 6
            </div>
            <div class="item">
                Item 7
            </div>
            <div class="item">
                Item 8
            </div>
            <div class="item">
                Item 9
            </div>
            <div class="item">
                Item 10
            </div>
        </div>
    </body>
    </html>

     

     

  •  07-02-2011, 11:57 63066 σε απάντηση της 63063

    Απ: XSL thumbnails

    Έλα Δήμο, δες λίγο αυτό το markup: 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <div class="item_wrapper" style="width:600px">
        <div class="item" style="float:left; width:200px;">
            <img src="..." alt="" />
        </div>
        <div class="item" style="float:left; width:200px;">
            <img src="..." alt="" />
        </div>
        <div class="item" style="float:left; width:200px;">
            <img src="..." alt="" />
        </div>
        <div class="item" style="float:left; width:200px;">
            <img src="..." alt="" />
        </div>
        ...
    </div>

    Έτσι όπως είναι ορισμένα τα πλάτη πετυχαίνεις να έχεις 3 εικόνες ανά γραμμή. Αν αλλάξεις π.χ. το πλάτος του div με class item σε 150px τότε θα έχεις 4 εικόνες ανά γραμμή. Το ορίζεις με έμμεσο τρόπο. 

    Με αυτήν την προσέγγιση θα πρέπει να προσέξεις τι θα γίνει αν κάποια εικόνα έχει πλάτος μεγαλύτερο από 200px, ή αν κάθε εικόνα έχει διαφορετικό ύψος. Χάνεις δηλαδή τη βασική ιδιότητα του πίνακα να κρατάει τα πάντα σε στήλες κ γραμμές.  

    Edit: μόλις είδα το post του gkaz και πάνω κάτω λέμε τα ίδια. Smile


    Τάσος Καραγιάννης

    Baby debugging steps...
  •  07-02-2011, 12:05 63067 σε απάντηση της 63066

    Απ: XSL thumbnails

    Ευχαριστώ και τους δυο σας... θα το προσαρμόσω μόλις ξεμπλέξω από μία #$#$%@#$ που ασχολούμαι τώρα...
    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  07-02-2011, 12:06 63068 σε απάντηση της 63066

    Απ: XSL thumbnails

    Τάσο, συμβαίνουν αυτά.

    Όταν εγώ έγραφα εσύ διάβαζες και όταν εγώ πόσταρα εσύ έγγραφες. Χρειαζόμαστε έναν project manager να μας κάνει ανάθεση εργασιών. Φτου κακά Smile

     

    Για το μέγεθος των εικόνων φαντάζομαι ότι δεδομένου ότι θα είναι thubnails  θα έχουν όλες μικρό μέγεθος. Επειδή αυτό δεν είναι κανόνας, μπορεί στο img  να χρησιμοποιήσει το attribute max-width και max-height ώστε να αναλάβει ο browser το scaling της εικόνας μέσα στα επιθυμητά όρια.

     

     

  •  07-02-2011, 12:30 63070 σε απάντηση της 63068

    Απ: XSL thumbnails

    Τα μήκη και τα πλάτη μπορώ να τα περνάω και δυναμικά εάν χρειάζεται μέσω του ίδιου του αντικειμένου και να τα βάζω ως attributes στα εκάστοτε html tags, οπότε δεν τίθεται θέμα.

    Επίσης να επισημάνω ότι το παραγόμενο html στέλνεται σε email, και από όσο διαπίστωσα μέχρι τώρα, οι email clients είναι τρισ-χειρότεροι από τους browsers σε θέματα συμβατότητας... βλέπε gmail (δεν παίζει CSS?). Για να μην αναφέρουμε το Outlook...

    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  07-02-2011, 12:35 63071 σε απάντηση της 63068

    Απ: XSL thumbnails

    gkaz:

    Όταν εγώ έγραφα εσύ διάβαζες και όταν εγώ πόσταρα εσύ έγγραφες. Χρειαζόμαστε έναν project manager να μας κάνει ανάθεση εργασιών. Φτου κακά Smile


    Project manager, ε; Φτου κ πάλι φτου.


    Δήμο, νομίζω θα μπορέσουμε με κάποιον τρόπο να το κάνουμε να φαίνεται σωστά και στο outlook. Αν πάντως δίνεις τις ίδιες διαστάσεις στα images (height:150px; width:200px;) τότε η λύση με τα divs είναι εφικτή στο outlook. Αν θέλεις στείλε λίγο το markup που παράγεις για να σου φτιάξουμε τα styles και να δούμε κατά πόσο παίζει σε outlook, gmail κτλ. 


    Τάσος Καραγιάννης

    Baby debugging steps...
  •  07-02-2011, 13:01 63073 σε απάντηση της 63071

    Απ: XSL thumbnails

    Το βασικό μου πρόβλημα ήταν με το μήκος μίας εικόνας μέσα σε έναν πίνακα. Από όσο θυμάμαι ενώ οι browsers έπαιζαν κανονικά με ποσοστιαίο width, για το outlook αναγκάστηκα να το κάνω με pixels, και για αυτόν τον λόγο μπήκα στη διαδικασία να περνάω και τα μεγέθη των εικόνων μέσα στο xslt. Φαίνονται κανονικά πλέον.

    Θα στο στείλω όμως για ένα γενικότερο optimization Big Smile

    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  08-02-2011, 10:06 63085 σε απάντηση της 63073

    Απ: XSL thumbnails

    Και εδώ θα ήθελα να σας ευχαριστήσω και τους δύο Big Smile

    Λουκούμι που λέμε...

    Για να πω και την αλήθεια, και δεδομένου ότι νέος στο dnz, δίνονται απαντήσεις σε θέματα τα οποία ΔΕΝ μπορώ να βρω απαντήσεις έξω, και πιστέψτε με, πρώτα ψάχνω, μετά ξαναψάχνω, και αφού δεν δω χαΐρι, τότε ρωτάω.

    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  08-02-2011, 11:00 63091 σε απάντηση της 63085

    Απ: XSL thumbnails

    Ορίστε και το τελικό αποτέλεσμα:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
                  <div class="item_wrapper" style="width:900px">
                    <xsl:for-each select="Building/MainBuildingViews/BuildingViewIA">
                      <div class="item" style="float:left; width:240; height:170; margin:10px; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; text-align: left; font-size: 12px;">
                        <strong>
                          <xsl:value-of select="LevelDescription" />
                        </strong>
                        <a>
                          <xsl:attribute name="href">
                            <xsl:value-of select="buildingURL" />
                          </xsl:attribute>
                          <img width="237" height="168">
                            <xsl:attribute name="src">
                              <xsl:value-of select="buildingThumbnailURL" />
                            </xsl:attribute>
                          </img>
                        </a>
                      </div>
                    </xsl:for-each>
                  </div>





    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  08-02-2011, 20:17 63125 σε απάντηση της 63091

    Απ: XSL thumbnails

    Δήμο, εφόσον ορίζεις styles μέσα στα elements, δεν χρειάζεται να δίνεις κ κλάση (παρασύρθηκες από το παράδειγμα μου Stick out tongue). Βασικά καλύτερα να τα περνάς inline, διότι αν ορίσεις κάποια styles μέσα σε <style> tag το Outlook δεν τα ακούει πάντα.

    Τάσος Καραγιάννης

    Baby debugging steps...
  •  09-02-2011, 08:48 63130 σε απάντηση της 63125

    Απ: XSL thumbnails

    Που θα πάει, κάποια στιγμή θα τα μάθω και αυτά!
    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  09-02-2011, 14:09 63141 σε απάντηση της 63130

    Απ: XSL thumbnails

    Εντελώς πληροφοριακά, καλό το div tag για html mail/page αλλά χάσαμε το παιχνίδι στο σενάριο εισαγωγής του παραγόμενου html στο word! Τα πετάει το ένα κάτω από το άλλο !#$!#$@

    Τέλος πάντων, δεν μπορούμε να τα έχουμε όλα...

    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
Σελίδα 1 από 2 (25 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems