]> granicus.if.org Git - docbook-dsssl/commitdiff
Rework the CSS table-border properties so that all three don't have to be specified...
authorNorman Walsh <ndw@nwalsh.com>
Wed, 26 Jun 2002 10:50:04 +0000 (10:50 +0000)
committerNorman Walsh <ndw@nwalsh.com>
Wed, 26 Jun 2002 10:50:04 +0000 (10:50 +0000)
xsl/html/table.xsl

index 3a90ae829ea4a6d8f4fdc2c1a6ca5cbeef67a3a0..848dfe3713ff61e20a74a3150cfcdfd81e574603 100644 (file)
   <xsl:param name="side" select="'left'"/>
   <xsl:param name="padding" select="0"/>
 
-  <xsl:text>border-</xsl:text>
-  <xsl:value-of select="$side"/>
-  <xsl:text>: </xsl:text>
-  <xsl:value-of select="$table.border.thickness"/>
-  <xsl:text> </xsl:text>
-  <xsl:value-of select="$table.border.style"/>
-  <xsl:text> </xsl:text>
-  <xsl:value-of select="$table.border.color"/>
-  <xsl:text>; </xsl:text>
+  <!-- Note: Some browsers (mozilla) require at least a width and style. -->
+
+  <xsl:choose>
+    <xsl:when test="($table.border.thickness != ''
+                     and $table.border.style != ''
+                     and $table.border.color != '')
+                    or ($table.border.thickness != ''
+                        and $table.border.style != '')
+                    or ($table.border.thickness != '')">
+      <!-- use the compound property if we can: -->
+      <!-- it saves space and probably works more reliably -->
+      <xsl:text>border-</xsl:text>
+      <xsl:value-of select="$side"/>
+      <xsl:text>: </xsl:text>
+      <xsl:value-of select="$table.border.thickness"/>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$table.border.style"/>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$table.border.color"/>
+      <xsl:text>; </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- we need to specify the styles individually -->
+      <xsl:if test="$table.border.thickness != ''">
+        <xsl:text>border-</xsl:text>
+        <xsl:value-of select="$side"/>
+        <xsl:text>-width: </xsl:text>
+        <xsl:value-of select="$table.border.thickness"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+
+      <xsl:if test="$table.border.style != ''">
+        <xsl:text>border-</xsl:text>
+        <xsl:value-of select="$side"/>
+        <xsl:text>-style: </xsl:text>
+        <xsl:value-of select="$table.border.style"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+
+      <xsl:if test="$table.border.color != ''">
+        <xsl:text>border-</xsl:text>
+        <xsl:value-of select="$side"/>
+        <xsl:text>-color: </xsl:text>
+        <xsl:value-of select="$table.border.color"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
 </xsl:template>
 
 <!-- ==================================================================== -->