Таблица MediaWIki (инфобокс) отображается в правом нижнем углу страницы.
Я пытаюсь добавить инфобокс на страницу моего сайта MediaWiki.
У меня есть этот код в моем common.css:
.infobox {
border:1px solid #aaaaaa;
background-color:#f9f9f9;
padding:5px;
font-size: 95%;
border-collapse: collapse;
margin-left: 20px;
}
и у меня есть этот код в шаблоне:Infobox
<table class="infobox" align="right" bgcolor="#E1E1E1" style="width:20em; font-size:90%; text-align:left; border: 1px green solid;">
<caption style="text-align:center; font-size:140%;"><i><b>{{{name}}}</b></i></caption>
<tr>
<td colspan="2" style="text-align:center;" bgcolor="#E1E1E1">{{{image}}}</td>
</tr>
<tr>
<td colspan="2" bgcolor="#E1E1E1" style="text-align:center;">{{{imagecaption}}}</td>
<tr>
<th>Author</th>
<td>{{{author}}}</td>
</tr>
<tr>
<th>Publisher</th>
<td>{{{publisher}}}</td>
</tr>
<tr>
<th>Publication date</th>
<td>{{{publication}}}</td>
</tr>
<tr>
<th>Illustrator</th>
<td>{{{illustrator}}}</td>
</tr>
<tr>
<th>Genre</th>
<td>{{{genre}}}</td>
</tr>
<tr>
<th>Pages</th>
<td>{{{pages}}}</td>
</tr>
<tr>
<th>ISBN</th>
<td>{{{isbn}}}</td>
</tr>
И, наконец, это код, который я вставил на свою страницу MediaWiki:
{{Infobox
| name = The Hitchhiker's Guide to the Galaxy
| image = [[Image:Hhgttg.jpg|150px]]
| image_caption = Movie Poster
| author = Douglas Adams
| country = United Kingdom
| language = English
| series = The Hitchhiker's Guide to the Galaxy
| genre = Science Fiction
| publisher = Pan Books
| release_date = 1979
| media_type = Paperback and hardcover
| pages = 180
| isbn = ISBN 0-330-25864-8
| followed_by = The Restaurant at the End of the Universe
}}
У меня проблема в том, что информационный блок выравнивается внизу справа на моей странице MediaWiki. Я бы предпочел, чтобы это появилось в правом верхнем углу, как на этой странице в Википедии: http://en.wikipedia.org/wiki/Bill_Gates
Что я могу добавить в свой код, чтобы сделать это возможным?
1 ответ
Вау, это странно, но я думаю, что мне удалось выяснить причину:
Вы забыли закрыть <table>
внутри шаблона.
Из-за этого, когда шаблон раскрывается в начале страницы, все остальное содержимое страницы в конечном итоге будет помещено в открытую HTML-таблицу. Но, так как вы не забыли закрыть <td>
а также <tr>
теги, он включается вне их.
После анализа страницы MediaWiki запускает HTML Tidy. Когда Тиди видит вашу открытую таблицу, он делает с ней две вещи:
Добавляет недостающее
</table>
тег до конца страницы.Он видит, что внутри таблицы есть некоторый контент, но за пределами ячеек таблицы, где не должно быть никакого контента. Он вытаскивает это содержимое из таблицы и вместо этого помещает его перед таблицей.
Конечным результатом является то, что все на странице, следующей за незакрытой таблицей, в итоге перемещается вверх, чтобы предшествовать ей в окончательном, приведенном в порядок HTML. Странно, действительно.
Возможно, HTML Tidy должен быть умнее в этой ситуации: если он видит незамкнутую таблицу с разметкой, не являющейся таблицей, после последней ячейки таблицы, он должен закрыть таблицу там, вместо того, чтобы предполагать, что следующее содержимое также является частью таблицы. Возможно, стоит сообщить об этом как запрос об ошибке / функции для Tidy. Тем не менее, существует множество других способов, которыми незакрытая или искаженная HTML-разметка в шаблоне может испортить вашу страницу, поэтому исправление этого конкретного случая может не сильно повлиять на общую схему вещей.
И прежде чем вы спросите, да, возможность иметь непревзойденный HTML в шаблоне MediaWiki считается функцией, так как она позволяет вам делать такие вещи, как:
{{begin quote}}
This is some text wrapped in a fancy quote box by the surrounding templates.
{{end quote}}
В любом случае, решение этой конкретной проблемы простое: просто добавьте недостающее </table>
на ваш шаблон.