Avatar billede mailand Nybegynder
09. april 2006 - 15:06 Der er 3 kommentarer og
1 løsning

Løkker og variabler

Hej

Jeg arbejder med et CMS, hvor frontend scriptes med XSLT.

I denne forbindelse kæmper jeg meget med at lave bl.a. mine menuer i XSLT. Der skal genereres klassiske <ul><li><a></a></li></ul> konstruktioner, men tit og ofte skal der sættes en særlig klasse, hvis menupunktet er aktivt, eller hvis det er første eller sidste element. Jeg har hidtil lavet det som store if-løkker, men det er ikke specielt 'kønt'...

Det kunne være rart, hvis man kunne operere lidt mere med variabler, men som jeg kan se, så kan man kun definere konstanter, og derfor er man nødt til at lave konstruktioner a la:

<if et-eller-andet>
  <li class="noget">
      <if aktiv-menu>
        <a class="aktiv"></a>
      <else>
        <a></a>
      </if>
  </li>
<else>
  <li class="andet">
      <if aktiv-menu>
        <a class="aktiv"></a>
      <else>
        <a></a>
      </if>
  </li>
</if>


- og ja, den slags kontruktioner er mildest talt *meget* komplicerede at konstruere og holde ved lige. kan man ikke lave et eller andet trick med at lave nogle variabler og så lave en generel løkke og nogle if-statements i toppen, som skrev noget i nogle variabler, man kunne bruge i den generelle løkke.

Andreas
Avatar billede Slettet bruger
10. april 2006 - 09:58 #1
Du kan lægge testen indeni attributten..elementet, og generere class-attributten dér, f.eks.:

<li>
  <xsl:attribute name="class"><xsl:if test=".......">active</xsl:if></xsl:attribute>
  <a href="">...</a>
</li>

osv.

/CS
Avatar billede Slettet bruger
10. april 2006 - 10:02 #2
Og måske ved du allerede det her (eller også er det ikke relevant i dit tilfælde), men MEGET tit kan man spare class-attributten på <a> i disse navigationslister, da man sagtens kan differentiere i CSS selectoren, f.eks.:

li.active a ---- et link inde i et list-item med class="active"

/CS
Avatar billede mailand Nybegynder
10. april 2006 - 10:42 #3
Hej

Jeg løste det med at lave nogle call-template...

Ret dejligt, da den fører scope videre...

Mht. active - ja, det vidste jeg, man kunne, men skal man kigge helt fascistisk og semantisk på det, så er det ikke helt kønt, da det ikke er <li>'en, der er aktiv, men a-tagget.

Semantics rules :-)

Andreas
Avatar billede Slettet bruger
10. april 2006 - 11:18 #4
"Mht. active - ja, det vidste jeg, man kunne, men skal man kigge helt fascistisk og semantisk på det, så er det ikke helt kønt, da det ikke er <li>'en, der er aktiv, men a-tagget."

- Well, lad os bare sige at sådan ser jeg nu ikke på det :-)

/CS
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester