Как мне избавиться от места внизу страницы в IE - PullRequest
1 голос
/ 09 июля 2010

Я пытаюсь создать страницу с изображением, предназначенным для загрузки в iframe.Но в нижней части тега body есть 4 пикселя, от которых я не могу избавиться.Вот мой упрощенный источник:

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

<html>
<head>
    <style>
        body, a, head, img
        {   margin: 0;
            padding: 0;
            border: none;
            border-width: 0px;
        }
    </style>
</head>

<body>
    <a><img src="http://www.halolz.com/wp-content/uploads/2008/09/portals.jpg"></a>
</body>
</html>

Вы заметите, что если вы сократите окно в пределах 4 пикселей от нижней части изображения, вы получите полосу прокрутки.Откуда это дерьмо?

Ответы [ 6 ]

2 голосов
/ 09 июля 2010

Изображение размещается в базовой строке текстовой строки, в которой оно находится. Пространство под изображением - это расстояние между базовой линией и нижней частью ячейки символа, где есть место для висящих символов, таких как g и j. При использовании шрифта по умолчанию и размера шрифта вашего браузера, который составляет четыре пикселя, вы получите немного другие результаты в других браузерах.

Одно из решений состоит в том, чтобы сделать изображение блочным элементом, чтобы оно не было частью текстовой строки и не имело места под базовой линией. Тег привязки является встроенным элементом, и внутри него не может быть блочного элемента, поэтому чтобы элементы имели смысл после применения стиля, необходимо также сделать тег привязки элементом блока:

a, img { display: block; }

(Чтобы сделать код допустимым XHTML, вам также потребуется элемент блока вне тега привязки, тег body не может напрямую содержать встроенные элементы. Создание тега привязки как элемента блока с использованием стиля не помогает, структура имеет быть действительным и до применения стиля.)

1 голос
/ 09 июля 2010

Это продолжение ответа Халли, вот полный рабочий пример, который был обновлен несколькими способами, чтобы он действительно соответствовал XHTML 1.0 Transitional, а также не отображал пробелы. Убедитесь, что НЕ вводите пробелы после

<!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">  
<head> 
<title>This is the title</title>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
<style type="text/css"> 
body, a, head, img 
{   
    margin: 0px; 
    padding: 0px; 
    border: none; 
    border-width: 0px; 
} 
</style> 
</head>
<body> 
    <div><a><img alt="Cat In Portal" src="http://www.halolz.com/wp-content/uploads/2008/09/portals.jpg" /></a></div>
</body> 
</html> 
1 голос
/ 09 июля 2010

Поместите ваши теги "a" и "img" внутри div, как это

<div><a><img src="http://www.halolz.com/wp-content/uploads/2008/09/portals.jpg"></a></div>
1 голос
/ 09 июля 2010

заменить изображение с img на ваш стиль

1 голос
/ 09 июля 2010

Все браузеры поставляются со стилями по умолчанию.Хотя вы сбрасываете свои теги для страницы, в вашем CSS нет такого тега, как image.

Я предлагаю использовать более глобальную таблицу стилей сброса.Мне нравится один из Эрик Мейер .Нечто простое может помочь выровнять игровое поле между браузерами.

0 голосов
/ 09 июля 2010

У всех интернет-браузеров есть небольшие отступы, которые они добавляют к самим страницам. Один верный способ избавиться от этого - просто убрать все поля и отступы из каждого элемента.

*
{
    margin: 0px;
    padding: 0px;
}

Конечно, это приведет к удалению поля и формы заполнения каждого элемента на ваших страницах, поэтому используйте это с осторожностью, переопределяя это значение по умолчанию всякий раз, когда вам нужны отступы и поля (каждый другой селектор имеет более высокий приоритет, чем этот глобальный, так что это легко сделать).

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