Вот в чем дело: если вам нужно, чтобы якоря тега a
отображались в своих собственных строках, они являются блочными элементами, а не встроенными ... На самом деле, в том, что вы говорите, нет ничего, что указывало бы на необходимость встроенный блок. Ваши divs
являются плавающими, поэтому они будут складываться влево, в строку (но не в строку; они находятся вне потока документа, таким образом float
).
Попробуй это ... давай разберемся. Вот HTML-код, который вы нам дали:
<div class="normal">
<a href="#">Test</a>
<a href="#">Test longer</a>
</div>
<div class="ib blockbyclass">
<a href="#">Test</a>
<a href="#">Test longer</a>
</div>
<div class="ib">
<a href="#" style="display: block;">Test</a>
<a href="#" style="display: block;">Test longer</a>
</div>
С помощью предоставленного вами CSS, в Safari и Firefox, я вижу три блока с двумя ссылками каждый, каждый на своей строке. Однако в IE7 вы видите не два элемента inline-block
, а только два элемента inline
. Причина этого в том, что inline-block
не поддерживается в IE7 из-за ошибки hasLayout
(что-то Microsoft создана для упрощения простого вопроса). Другими словами, он не может забыть inline-block
, потому что он просто не понимает inline-block
(что вы неправильно поняли при необходимости) и обрабатывает a
по умолчанию (например, inline
).
Если они должны находиться на отдельных строках и занимать ширину контейнера, все, что вам нужно сделать, это (показано на .ib a
, полностью игнорируя blockbyclass
, которая в данном случае выглядит просто как красная сельдь) ):
.ib a {display:block;}
TADA! Ширина наследуется от родительского контейнера, a
принимает значения по умолчанию a
, и все устраивает. Итак, взгляните на это:
<div class="ib">
<a href="#" style="display: block;">Test</a>
<a href="#" style="display: block;">Test longer</a>
</div>
Это, в этом случае, становится излишним и, следовательно, ненужным. Вы уже делаете блок этих элементов.
<div class="ib">
<a href="#">Test</a>
<a href="#">Test longer</a>
</div>
Вы просто слишком усложняете что-то действительно очень простое.
Вот скрипка: http://jsfiddle.net/dhYjZ/1/