Почему атрибут выравнивания распространяется от td к отдельной таблице только в IE? - PullRequest
1 голос
/ 03 декабря 2010

Этот html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head><title>TD align test</title></head>
<body>
<table width="100%">
  <tr><td>aligned left</td><td align="right">aligned right</td></tr>
  <tr><td colspan="2" align="center">
    <table width="100%" cellspacing="0" cellpadding="0">
      <tr><td>should be aligned left</td></tr>
    </table>
  </td></tr>
</table>
</body>
</html>

выравнивает «должен быть выровнен по левому краю» с центром в IE (6 и 8) и Opera, но влево в Firefox (3,6 и 4 бета) и Chromium.Первые, кажется, распространяют выравнивание от тд до содержащейся таблицы.

Кто-нибудь может объяснить эту разницу?И какое поведение более соответствует стандартам?

(Вы можете попробовать его на http://ysth.info/tdalign.html.)

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

Вы можете взглянуть на http://www.docsteve.com/DocSteve/TechNotes/IE6_cascade_test.html, почему это может происходить.

Дело в том, что это очередной IE глюк ( несовместимость с другими браузерами ). Единственное, что я могу предложить, это переопределить его, явно указав желаемое выравнивание ..

Если вы используете классы и text-align:center, вы заметите, что все браузеры ведут себя так же, как IE с атрибутом align, поэтому не уверены, что правильно / неправильно с этим.

1 голос
/ 03 декабря 2010

Атрибут выравнивания устарел , поэтому даже если бы я знал, как им управлять, я не чувствовал бы себя комфортно, пытаясь договориться о нем, поскольку у новых браузеров могут возникать все больше проблем с его последовательным отображением.*

В вашем случае вы можете просто определить классы .right и .left (чтобы переопределить каскад .right) и прикрепить их к строкам, таблицам или ячейкам, как считаете нужным.

...