html, css - странные невидимые поля под картинками

EL 3.0 или новее

Если вы уже используете Java EE 7 / EL 3.0, то @page import также импортирует константы класса в области EL.

<%@ page import="com.example.YourConstants" %>

Это будет под крышками импортироваться через ImportHandler#importClass() и быть доступным как ${YourConstants.FOO}.

Обратите внимание, что все java.lang.* классы уже неявно импортируются и доступны так ${Boolean.TRUE} и ${Integer.MAX_VALUE}. Для этого требуется только более поздний сервер контейнеров Java EE 7, поскольку в ранних версиях были ошибки. Например. GlassFish 4.0 и Tomcat 8.0.0-1x не работают, но GlassFish 4.1+ и Tomcat 8.0.2x + работают.

Этот объект доступен только в JSP, а не в Facelets. В случае JSF + Facelets лучше всего использовать OmniFaces , как показано ниже:


Или добавить прослушиватель контекста EL, который вызывает ImportHandler#importClass(), как показано ниже:

@ManagedBean(eager=true)
@ApplicationScoped
public class Config {

    @PostConstruct
    public void init() {
        FacesContext.getCurrentInstance().getApplication().addELContextListener(new ELContextListener() {
            @Override
            public void contextCreated(ELContextEvent event) {
                event.getELContext().getImportHandler().importClass("com.example.YourConstants");
            }
        });
    }

}

EL 2.2 или старше

Это невозможно в EL 2.2 и старше. Существует несколько альтернатив:

  1. Поместите их в Map, который вы помещаете в область приложения. В EL значения карты доступны обычным javabean способом ${map.key} или ${map['key.with.dots']}.
  2. Используйте в Unstandard taglib ( maven2 repo здесь ):
    <%@ taglib uri="http://jakarta.apache.org/taglibs/unstandard-1.0" prefix="un" %>
    
    
    Таким образом, они доступны обычным javabean способом ${constants.FOO}.
  3. Используйте Javaranch's CCC as описал где-то внизу эту статью .
    <%@ taglib uri="http://bibeault.org/tld/ccc" prefix="ccc" %>
    
    
    Таким образом, они доступны обычным javabean способом ${constants.FOO}.
  4. Если вы используете JSF2, вы можете использовать в OmniFaces .
    
    
    
    Таким образом, они доступны обычным javabean способом #{YourConstants.FOO}.
  5. Создайте класс-оболочку, который возвращает их с помощью методов getter в стиле Javabean.
  6. Создайте пользовательский EL, который сначала сканирует наличие константы и, если отсутствует, затем делегирует значение по умолчанию, вместо этого возвращает константное значение.
29
задан Michiel de Mare 15 October 2009 в 23:01
поделиться

5 ответов

Попробуйте изменить раздел DOCTYPE на:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Вы также можете проверить это: http://www.emailonacid.com/blog/details/C18/12_fixes_for_the_image_spacing_in_html_emails

1
ответ дан LRA 15 October 2009 в 23:01
поделиться

Для меня

font-size: 0;
line-height: 0;

на упаковке контейнер сделал свое дело.

6
ответ дан leymannx 15 October 2009 в 23:01
поделиться
1112 Это на самом деле не так уж редко. Это связано с тем, что изображение представляет собой встроенные элементы, поэтому между нижней частью изображения, расположенной в базовой строке текста, и нижней частью текстовой строки имеется некоторое пространство.

Самое простое решение этого - просто использовать display:block;, чтобы превратить изображение в блочный элемент. Плавающее изображение с использованием float:left; или float:right; также работает, поскольку оно также превращает его в блочный элемент.

Регулировка свойств, таких как vertical-align, font-size и line-height, также может влиять на расстояние, но это не так надежно, поскольку не устраняет эффект. Это может все еще появиться при некоторых обстоятельствах.

Смежные вопросы:
Нежелательный интервал под изображениями в XHTML 1.0 Strict
Почему мои изображения получили дополнительный интервал?
Проблема с пространством изображения IE

75
ответ дан Community 15 October 2009 в 23:01
поделиться

извините за ответ на этот вопрос 3 года спустя, но эта страница находится на первой странице Google, и я чувствую ответственность ..... ответ: добавьте только "vertical-align: top;" в тег img внутри тега и тега .

14
ответ дан user3051858 15 October 2009 в 23:01
поделиться

Ну, я понял.

это была комбинация

font-size: 0px;
line-height: 1;
-2
ответ дан Jack 15 October 2009 в 23:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: