2014-12-05 2 views
3

Ниже представлена ​​небольшая html-страница, которая выглядит по-иному в браузерах Chrome против Firefox. Не мог бы кто-нибудь объяснить, почему в Chrome Chrome выглядит иначе, если локально создать html-документ и открыть этот документ через Chrome (jsfiddle обычно показывает его в Chrome, поэтому я также не создал страницу jsfiddle)? enter image description hereПочему эта небольшая страница отличается от Chrome и Firefox, это ошибка?

<!DOCTYPE html> 
<html> 
<head> 
<title>CCCC</title> 
<style> 
body * { 
text-rendering:optimizeLegibility; 
} 

body,html { 
font-family:Arial,Helvetica,sans-serif; 
} 

#lesu-tab ul li { 
list-style:none; 
font-size:14px; 
font-weight:700; 
float:left; 
} 

#lesu-tab ul li a { 
border:1px solid #888; 
display:block; 
} 

.buggy{ 
font-size:12px; 
} 
</style> 
</head> 
<body> 
<div id="lesu-tab"> 
    <ul> 
     <li><a href="http://www.example.com/">Link1</a></li> 
     <li><a href="http://www.example.com/">Link2</a></li> 
     <li><a class="buggy" href="https://www.example.com/">A ABC DEFGHIJ</a></li> 
    </ul> 
</div> 
</body> 
</html> 

Что делает меня еще больше удивило то, что, если изменить размер шрифта от 12px до 11px или 13px для class="buggy", Chrome отображает его не в двух строках, но в один - нормально.

Кроме того, если вы удаляете тот или иной из свойств css на странице, он отображается в одной строке. Это непонятно для меня, почему это происходит? Это ошибка?

Любые идеи, как исправить это, не удаляя свойства css?

И, конечно, приведенный выше код составляет менее 1% огромной страницы html, которая вызывает эту проблему.

спасибо.

+0

Какая версия вы используете? Я создал локальный документ и выглядит по желанию в chrome 38, chromium 39 и firefox 34 на ubuntu –

+0

Chrome версии 39.0.2171.71. Прежде чем спросить в SO, я попросил двух человек показать, как этот код выглядит на своих рабочих столах в Chrome (я не знаю их версию). У двух из двух человек была такая же проблема на их рабочих столах - я попросил их поделиться своим экраном, чтобы увидеть. – Haradzieniec

ответ

1

Вы можете обойти эту проблему, используя неразрывные пробелы, как в

<li><a class="buggy" href="https://www.example.com/">A&nbsp;ABC&nbsp;DEFGHIJ</a></li>  
+3

Хотя это может сработать, это будет утомительная и долго работающая работа для всего сайта/страницы. : -/ – Martin

1

Используйте normalize.css стандартизировать CSS, разница в том, что разные браузеры имеют немного разные «по умолчанию» для CSS макет,

Пожалуйста, см https://stackoverflow.com/a/8357635/3536236

причина вашей конкретной проблемы звучит как браузеры принимают другой подход к округлению размера шрифта на основе вашего масштаба, размера шрифта и начертание шрифта.

+0

Кроме того, я лично обнаружил, что Chrome любит иметь очень немного большие paddings и поля между элементами, чем Firefox, поэтому этот * может * слегка повлиять на проблему. – Martin

+1

Вам не нужно тянуть что-то подобное, чтобы исправить одну небольшую проблему, но я не думаю, что это отвечает на вопрос. – Rob

Смежные вопросы