7
votes

Pourquoi Hauteur n'est-elle pas égale à hauteur à l'intérieur de celui-ci lorsque DOCTYPE est XHTML 1.0 strict?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
</head>
<body>

<table width="100%" cellspacing="0" cellpadding="0">
    <tr>
        <td align="right" colspan="5">
            <span class="validationInline">*</span> 
            <span class="hint">Required fields</span>
        </td>
    </tr>
    <tr>
        <td colspan="5" background="http://media.monster.com.hk/bgr_8.gif">
            <img src="/static/cleardot.gif" height="1" width="1" />
        </td>
    </tr>
</table>

</body>
</html>
Can check it out here:
http://maishudi.com/tt2.htmlI've known it's  caused by DOCTYPE ,because deleting that part will make it normal:http://maishudi.com/tt.htmlSo what's wrong?How can I make it work with the DOCTYPE ?

4 commentaires

J'aurais d'abord recommandé de remplacer XHTML1.0 DOCTYPE avec HTML4.01 Strict One (voir webdevout.net/articles/beware-of-xhtml pour pourquoi c'est une bonne idée)


Oh je ne peux pas, changer Doctype causera beaucoup d'autres problèmes pour moi maintenant.


Je vous recommanderais de continuer à utiliser XHTML strict. Les exigences plus strictes sont une bonne chose dans toutes les formes de développement logiciel, à l'exception du HTML. Cela dit que beaucoup de quels programmeurs pensent généralement à HTML et à la compétence de ceux forcés de l'écrire. Ce que l'article de Kangax ne dit pas, c'est qu'il est parfaitement valide pour envoyer XHTML strict comme texte / html. Seul XHTML 1.1 nécessite le type de mime Application / XML + XHTML.


@Austine Je crois que les inconvénients de servir XHTML comme texte / HTML dépassent clairement ses avantages (voir, par exemple, l'explication approfondie de Hixie - hixie.ch/advocacy/xhtml ). Ymmv.


3 Réponses :


0
votes

Contexte n'est pas un attribut standard pour les éléments TD est la raison. Utilisez plutôt: xxx pré>

comme pour votre image de 1 pixel, je suppose que cela est simplement de faire apparaître la cellule de la table? Si oui, ce n'est pas le moyen conseillé de le faire. Vous pouvez soit faire: P>

<td>&nbsp;</td>


0 commentaires

13
votes

Remarque: Cela dépend probablement du navigateur.
La taille de l'élément de niveau de bloc (TD, DIV, etc.), si non spécifiée ne sera que aussi gros que nécessaire, en fonction de l'espace pris par son contenu. Si spécifié, il essaiera de développer en conséquence, sauf si le contenu est plus grand, auquel cas il s'agira si nécessaire.

Dans votre exemple, la cellule contient un seul caractère (le non- espace de nuit), qui prennent la taille d'une ligne unique. Par conséquent, l'élément de bloc doit avoir au moins 1 hauteur de la hauteur de la ligne; Il ne peut assumer aucune taille plus petite. C'est pourquoi votre déclaration de hauteur a été ignorée.

Vous voudrez peut-être utiliser ce style: xxx

Ceci définit la hauteur de la ligne à 1px. La hauteur de la ligne n'est pas un élément, la règle ci-dessus ne s'applique pas.


2 commentaires

Fonctionne comme charme! Mais pouvez-vous expliquer pourquoi la hauteur n'a aucun effet sur TD?


Il est également basé sur les navigateurs. Certains navigateurs attendent du contenu texte dans les éléments. Cela peut aussi arriver avec des divs.



12
votes

Ajouter un bloc de style avec cette règle xxx

et voir https://developer.mozilla.org/fr/images,_tables,__and_mysterious_gaps pour une explication complète.


0 commentaires