Chrome отрисовывает ссылки кнопок полностью испорченными, когда помещается внутри абзаца - PullRequest
2 голосов
/ 06 января 2011

Я довольно опытный в CSS, но сейчас я сталкиваюсь с очень странной проблемой рендеринга в Google Chrome 9. Я пытаюсь создать несколько необычно выглядящих кнопок ссылок (в основном якоря с большим количеством стилей).Вот несколько примеров разметки:

<a href="" class="button">
<figure class="sprite icon icon_back"></figure>
Link button with icon</a>

Эта разметка может показаться вам несколько странной, есть несколько вещей, которые вы должны знать:

  • Я использую класс рисунков HTML5 для включениязначок как часть кнопки.У меня есть правильный сброс CSS, и Chrome может точно отобразить этот тег.
  • Вместо того, чтобы фактически указывать на изображение, я применяю CSS-классы к элементу figure.В CSS я использую технику спрайтов, чтобы показать правильную часть одного большого изображения спрайта.

Все это прекрасно работает в Firefox, а также в Chrome.Правильный рендеринг можно увидеть на следующем изображении:

correct rendering

Так выглядит и в Firefox, и в Chrome.Здесь возникает проблема, если я помещаю такую ​​кнопку в теги абзаца> <p></p>, это происходит только в Chrome:

incorrect

Обратите внимание, как кнопка разрывается на части?Только в Chrome и только при размещении внутри абзаца.Это становится еще более странным: это происходит только для первой кнопки внутри абзаца, если бы я поместил три кнопки внутри абзаца, только 1-я облажалась.

Ваш первый вопрос, вероятно, будет касаться CSS.Это довольно многословно, поэтому временная ссылка на данную страницу:

Редактировать: ссылка на действующую страницу удалена, была только временной для проверки проблемы.

Ответы [ 2 ]

2 голосов
/ 06 января 2011

Я считаю, что Chrome автоматически закрывает ваш тег <p> из-за того, как chrome интерпретирует тег <figure>.Если вы посмотрите на определение тега figure , вы увидите, что он должен быть вне потока контента и, следовательно, не должен содержаться в абзаце.Попробуйте использовать предмет, отличный от фигуры, и я уверен, что это сработает.

Подробнее о содержании потока можно прочитать здесь

1 голос
/ 17 марта 2011

Начиная с Chrome 10, ваш сайт может быть еще более запутан.

В Chrome 9 (и Firefox 3.6 и Opera 11),

не имеет поля. В Chrome 10 он имеет запас: 1em 40px;

В Firefox 4 RC1 поле выглядит аналогично, но я не уверен, что оно одинаковое - Firebug Lite не указывает поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...