0

我想了解这有什么问题:

<body>
    <h2>
        <table>
        <tr>
            <td> Text</td>
        </tr>
        </table>
    </h2>
</body>

Validator 抱怨:文档类型在此处不允许元素“table”;缺少“object”、“ins”、“del”、“map”、“button”开始标签之一

进一步的解释说:

所提到的元素不允许出现在您放置它的上下文中;其他提到的元素是唯一允许在那里并且可以包含提到的元素的元素。这可能意味着您需要一个包含元素,或者您可能忘记关闭前一个元素。

出现此消息的一个可能原因是您试图将块级元素(例如“ <p>”或“ <table>”)放入内联元素(例如“ <a>”、“ <span>”或“ <font>”)中。

h2 和 table 都是块级的,所以最后一条评论似乎不适用。我想要一个包含 h2 大小元素的表格......告诉表格使用与 h2 相同的大小的正确方法是什么?

谢谢!


是的,你可以使用这样的东西:

Dialog confirmDeleteDialog = new Dialog(this);
confirmDeleteDialog.setContentView(R.layout.custom_message_dialog);
//This allows dialog to be closed with back button
confirmDeleteDialog.setCancelable(true);
//DisplayMetrics will get the screen dimensions and allow you to 
//declare a center point
DiaplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenHeight = displaymetrics.heightPixels; //Divide by 2 to get mid
int screenWidth = displaymetrics.widthPixels; //Divide by 2 to get mid

Button closeButton = (Button) confirmDeleteDialog.findViewById(R.id.close_button);
closeButton.setOnClickListener(this);
confirmDeleteDialog.show();

custom_message_dialog.xml - 可能看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<Button
android:id="@+id/close_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"/>

</RelativeLayout>

点击监听器

public void onClick(View v) {
if(v == closeButton){
confirmDeleteDialog.dismiss();
}}
4

2 回答 2

3

CSS。标题中根本不允许使用表格,因为它没有语义意义。你见过书名是表格的章节吗?不要为外观使用 HTML 语义标签;自己设计它们。

CSS是块还是内联并不重要table,只有HTML DTD所说的它们是什么。看这里:只允许“流”元素进入td. 按照链接查看“流”的定义:您会看到它是“内联”或“块”。您可以继续向下跟踪这些链接,直到您发现,例如sub很好,原样span......但您不会找到table.

此外 - 表格甚至不是display: block- 它们有自己的布局值,display: table. 这并不重要。

于 2012-05-29T23:24:05.383 回答
2

CSS 是更改 HTML 元素大小的适当方式。HTML 并非旨在用于创建视觉效果。

CSS 中没有办法明确告诉 a<table>是什么 size <h2>

但是,您可以告诉表和 h2 都是一种特定的大小,例如:

h2,
table {
    font-size: 2em;
}

您还可以使用 Chrome 的 Web Inspector(或其他浏览器中的类似工具)来检查默认样式是什么,并将相关的样式应用于您的表格。不过,这些默认样式可能因浏览器而异。

至于为什么<h2>标签内不能有表格,我不确定 HTML 规范是否为其嵌套规则提供了基本原理,但<h2>s 旨在标记标题,即相对较短的描述文档部分的文本。

很难想象一个表格如何成为一个合适的标题。

于 2012-05-29T23:27:25.040 回答