drewMedlem sedan mars 2007845 inlägg Jag har bl a
dl.author dd { margin-left: 112px; margin-bottom: 8px; }
.rtl dl.author dd { margin-right: 115px; }
dt {
float: left;
width:auto;
}
.rtl dt {
float: right;
text-align: right;
}
Båda .rtl ignoreras. Varför? Vad ska jag leta efter för att åtgärda?
Och hur ser din HTML kod ut?
drewMedlem sedan mars 2007845 inlägg Här är en del där .rtl dt ska användas. Hela filen är ganska lång så det känns dumt att posta allt. Är det något speciellt att titta på?
Jag ändrar riktning med JavaScript document.body.style.direction=direction; och har inte dir i <html>-taggen.
<fieldset>
<legend id="lang-atm">About this</legend>
<div class="about">
<span class="corners-top"><span></span></span>
<dl>
<dt id="lang-t" name="left4px">Title:</dt>
<dd>
<xsl:if test="count(title) > 1">
<dl id="title" class="nopadding">
<xsl:for-each select="title">
<dt><xsl:value-of select="@lang" /></dt>
<dd style='white-space:pre;' lang="{@lang}">
<p><xsl:value-of select="current()" /></p>
</dd>
</xsl:for-each>
</dl>
</xsl:if>
<xsl:if test="count(title) = 1">
<p lang="{@lang}" style='white-space:pre;'><xsl:value-of select="title" /></p>
</xsl:if>
</dd>
<dt id="lang-d" name="left4px">Description:</dt>
<dd>
<xsl:if test="count(description) > 1">
<dl id="description" class="nopadding">
<xsl:for-each select="description">
<dt><xsl:value-of select="@lang" /></dt>
<dd lang="{@lang}">
<p>
<xsl:call-template name="add-line-breaks">
<xsl:with-param name="string"><xsl:value-of select="current()" /></xsl:with-param>
</xsl:call-template>
</p>
</dd>
</xsl:for-each>
</dl>
</xsl:if>
<xsl:if test="count(description) = 1">
<p lang="{@lang}">
<xsl:call-template name="add-line-breaks">
<xsl:with-param name="string"><xsl:value-of select="description" /></xsl:with-param>
</xsl:call-template>
</p>
</xsl:if>
</dd>
<dt id="lang-aV" name="left4px">Version:</dt>
<dd class="about">
<p>
<xsl:for-each select="version">
<xsl:value-of select="$version" />
</xsl:for-each>
</p>
</dd>
<xsl:for-each select="installation">
<xsl:call-template name="give-installation"></xsl:call-template>
</xsl:for-each>
<xsl:if test="notes != 'N/A' and notes != 'n/a' and notes != ''">
<dt id="lang-ant" name="left4px">Author notes:</dt>
<dd>
<xsl:if test="count(notes) > 1">
<dl id="notes" class="nopadding">
<xsl:for-each select="-notes">
<dt><xsl:value-of select="@lang" /></dt>
<dd lang="{@lang}">
<p>
<xsl:call-template name="add-line-breaks">
<xsl:with-param name="string"><xsl:value-of select="current()" /></xsl:with-param>
</xsl:call-template>
</p>
</dd>
</xsl:for-each>
</dl>
</xsl:if>
<xsl:if test="count(notes) = 1">
<p lang="{@lang}">
<xsl:call-template name="add-line-breaks">
<xsl:with-param name="string"><xsl:value-of select="notes" /></xsl:with-param>
</xsl:call-template>
</p>
</xsl:if>
</dd>
</xsl:if>
</dl>
<span class="corners-bottom"><span></span></span>
</div>
</fieldset>
.rtl dl { ... }
påverkar de dl som ligger inuti något element med klassen rtl, inte sådana som ligger inuti ett element där direction är satt till rtl.
Det enklaste i ditt fall är kanske att skapa en rtl-klass:
.rtl { direction: rtl; }
och sätta denna klass på body istället för att sätta direction på body.
drewMedlem sedan mars 2007845 inlägg .rtl ska ju användas om riktningen är satt till rtl för att kunna stödja språk som skriver från höger till vänster. Om jag skapar en sån klass och sätter den på body så kommer den ju alltid att vara rtl. Jag tror du har fel, eller hoppas åtminstone det.
Ja, fast du säger ju att du med javascript ändrar direction på body-taggen som det är nu? Då har du väl ett läge där du sätter direction till rtl och ett läge där du sätter direction till ltr? Då kan du väl lika gärna göra likadant med klassnamn. Alltså att du sätter klassen rtl om du vill ha den riktningen och tar bort klassen (eller sätter en klass men namnet ltr om du nu vill ha det) när du inte vill ha rtl. Jag förstår inte riktigt vad som är problem med det...
drewMedlem sedan mars 2007845 inlägg Hur kommer det sig då att det fungerar för vissa klasser, men inte för alla?