проблема с отступом в абзаце html

#html #css

#HTML #css

Вопрос:

У меня есть 2 абзаца в виде

 <p style="color:#333333; line-height: 20px; font-size: 16px; font-family: Helvetica, Arial, sans-serif; font-weight:bold; margin:0; padding:0; text-align: left;">Title of para</p>

 <p style="color:#767676; line-height: 20px; font-size: 12px; font-family: Helvetica, Arial, sans-serif;  text-align: left; margin-bottom: 1cm;  margin-top:0; padding:0;">Text</p>
  

Я хочу, чтобы между двумя абзацами было 0 пробелов, но в то же время было некоторое фиксированное пространство в верхней части 1-го абзаца и в нижней части второго абзаца.

Я создаю электронное письмо в формате html, отсюда и встроенные стили. В некоторых клиентах это работает нормально. Но в entourage и gmail пробел между двумя абзацами не исчезает. 🙁

Комментарии:

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

Ответ №1:

http://jsfiddle.net/jnuHD/

Я добавил

 height:12px;
  

к первому абзацу. Кажется, работает.

Комментарии:

1. 🙁 Как насчет добавления !важно?

Ответ №2:

Я предполагаю, что некоторые встроенные стили в Gmail переопределяют установленные вами поля и отступы. Вы пробовали добавить !important флаг к их значениям и посмотреть, помогает ли это?

Ответ №3:

Добавление некоторого цвета фона показывает, что проблема находится внутри тегов p, а не между ними

http://jsfiddle.net/hs3A2/

Вам нужен стиль высоты строки? если нет, то следующее уменьшает интервал:

http://jsfiddle.net/UTZ8y/

Вы также можете использовать высоту строки, чтобы еще больше уменьшить интервал: http://jsfiddle.net/99zcM/1 /

Сохраняя высоту строки, вы можете использовать позиционирование для регулировки «интервала»:

 <div style="position:relative;">
 <p style="line-height: 20px; font-size: 16px; 
     font-family: Helvetica, Arial, sans-serif; font-weight:bold; 
     margin:0; padding:0; text-align: left;">Title of para
 </p>

 <p style="color:#767676; line-height: 20px; font-size: 12px;
     font-family: Helvetica, Arial, sans-serif;  text-align: left; 
     margin-bottom: 1cm;  margin-top:0; padding:0;
     position:relative;top:-5px;">Text</p>
</div>
  

Смотрите, как это работает здесь: http://jsfiddle.net/Md9Na /

Я не уверен, насколько хорошо это будет работать на различных почтовых клиентах, и остерегайтесь дублирования

Комментарии:

1. удаление высоты строки приводит к искажению форматирования шрифта. Я хочу сохранить высоту строки, просто хочу убрать пробел между двумя абзацами.

2. Если вы добавите цвет фона к элементам p, вы получите разрыв между цветными фонами в ваших целевых клиентах? Если нет, то дело не в пробелах между абзацами, а в том, как содержится содержимое ограничивающей рамки p, поэтому работает функция line-height