абсолютное позиционирование не работает с XHTML? - PullRequest
2 голосов
/ 08 февраля 2011


Я пытаюсь позиционировать DIV с абсолютным позиционированием, однако похоже, что с XHTML DOCTYPE это не работает. В следующем примере красный квадрат отображается слева вверху, а не где-то посередине экрана:

<!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" xml:lang="en">
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="" media="screen,projection" />
<style type="text/css">

body { background-color: silver; }
div
{
width: 100px;
height: 100px;
border: 1px solid #000;
}
div#one
{
background-color: red;
position: absolute;
top:520;
left: 220; }

</style>
</head>
<body>

<h1>
This is some text this is some text this is some.
</h1>
<div id="one"></div>

</body>
</html> 

Если кажется, что если я заменю DOCTYPE на это:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Это будет работать правильно, однако я бы хотел следовать доктрине XHTML.
Есть идеи?

Ответы [ 2 ]

11 голосов
/ 08 февраля 2011

Добавьте px к вашим top и left свойствам:

top: 520px;
left: 220px

При использовании типа документа XHTML (или, точнее: Standards Mode ) браузер не будетПредположим, что вы имеете в виду px, если вы не указали это явно, в отличие от режима Quirks.

1 голос
/ 08 февраля 2011

В XHTML элементы с абсолютным позиционированием без содержимого становятся «невидимыми», потому что они получают ширину 0 и высоту 0. Попробуйте добавить содержимое к вашему div # one или попробуйте следующий CSS

div#one
{
background-color: red;
position: absolute;
top:520px;
left: 220px; 
height: 100px;
width: 100px;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...