Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
0 / 0 / 1
Регистрация: 19.10.2014
Сообщений: 2

Смещение (сдвиг) сайта влево после добавления двух изображений по вертикали

19.10.2014, 06:10. Показов 4879. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет)!
Буду благодарен, кто поможет помочь решить проблему: есть сайт с несколькими страницами написанная на css (через div'ы).
Есть 3 страницы:
1. Добро пожаловать.
2. Фотографии
3. Контакты
1, и 3-ья отображаются нормально (ровно по центру), 2-ая тоже если на ней добавить 1 и более картинок (или вовсе не добавлять), НО ТОЛЬКО В РЯД, но как только добавляю картинку во второй ряд, то сайт смещается влево на несколько пикселей (в пейнте подсчитал - на 10 пикселей).
Эта проблема возникает, если картинки на этой странице идут через <img>, но если их добавлять в стилях через background-image, то всё нормально, но хотелось бы, чтобы картинки были кликабельными и легко открывались (т.е. не были бэкграундами).

Главная страница (1-ая):
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
    include 'settings.php';
?>
 
<!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>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />   
    <link rel="stylesheet" type="text/css" href="style.css" />
    <title><?php echo $title?></title>
</head>
 
<body>
    <div id="container">
        <div id="header">
            <div id="logotype"><?php echo $logotype?></div>
            <div id="buttons">
                <a class="pressed">main</a><a class="button" href="portrait.php">portrait</a><a class="button" href="contacts.php">contacts</a>
            </div>
            <hr class="separator"/>
        </div>
        <div id="content">
            <?php include 'main.php'; ?>
        </div>
    </div> 
</body>
 
</html>
В main.php всего лишь это:
PHP
1
<div id="main" />
Вот 2-ая страница (с картинками):
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
    include 'settings.php';
?>
 
<!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>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />   
    <link rel="stylesheet" type="text/css" href="style.css" />
    <title><?php echo $title?></title>
</head>
 
<body>
    <div id="container">
        <div id="header">
            <div id="logotype"><?php echo $logotype?></div>
            <div id="buttons">
                <a class="button" href="/">main</a><a class="pressed">portrait</a><a class="button" href="contacts.php">contacts</a>
            </div>
            <hr class="separator"/>
        </div>
        <div id="content">
            <div class="postborder"><div class="post">
                <a href="photos/1.jpg"><img class="portrait" src="photos/1.jpg"></a>
                <a href="photos/2.jpg"><img class="portrait" src="photos/2.jpg"></a>
                <a href="photos/3.jpg"><img class="portrait" src="photos/3.jpg"></a>
                <a href="photos/4.jpg"><img class="portrait" src="photos/4.jpg"></a>
                <a href="photos/5.jpg"><img class="landscape" src="photos/5.jpg"></a>
            </div></div>
        </div>
    </div> 
</body>
 
</html>
Вот стили:
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
body {
    background: #fcfcfc; /* Цвет фона */
}
#container {
    width: 702px; /* Ширина слоя */
    margin: auto; /* Выравнивание слоя по центру */
}
#header {
    /* background: #ffcccc; */
}
#content {
    /* background: #00eeee; */
}
#logotype {
    text-align: center; /* Выравнивание текста по центру */
    padding-top: 20px; /* Отступ сверху текста */
    padding-bottom: 20px; /* Отступ снизу текста */
    font-size: 2.0em; /* Размер текста */
    /* background: #cccccc; */
}
#buttons {
    text-align: center; /* Выравнивание текста по центру */
    /* background: #ccffcc */
}
#main {
    width: 702px;
    height: 453px;
    margin: auto;
    background-image: url('main.jpg');
    background-size: 100%;
    background-repeat: no-repeat; /* Отменяем повторение фона */
}
#contactslabels {
    /* background: #cccccc; */
    float: left;
    padding-right: 20px;
    height: 200px;
}
#contactsinfo {
    /* background: #bbbbbb; */
    height: 200px;
}
a:link {
    color: #000000; /* Цвет ссылок */
}
a:visited {
    color: #000000; /* Цвет посещенных ссылок */
}
a.button {
    font-family: 'Courier New'; /* Шрифт текста */
    text-decoration: none; /* Убираем подчеркивание у ссылок */
    margin-left: 20px; /* Отступ слева текста*/
    margin-right: 20px; /* Отступ справа текста */
}
a:hover.button {
    text-decoration: underline; /* Добавляем подчеркивание при наведении курсора мыши на ссылку */
}
a.pressed {
    font-family: 'Courier New'; /* Шрифт текста */
    text-decoration: none; /* Убираем подчеркивание у ссылок */
    padding-left: 20px; /* Отступ слева текста*/
    padding-right: 20px; /* Отступ справа текста */
}
hr.separator {
    width: 702px; /* Ширина */
}
div.postborder {
    background: #e3e3e3;
    padding: 1px;
    margin-bottom: 10px;
}
div.post {
    background: #ffffff;
    padding-left: 10px;
    padding-top: 10px;
}
img.portrait {
    width: 335px;
    margin-right: 10px;
    margin-bottom: 10px;
    float: left;
}
img.landscape {
    width: 680px;
    margin-right: 10px;
    margin-bottom: 10px;
}
На 3-ей странице ничего особенного, почти тоже, что и на 1-ой.

Также есть еще пару проблем:
1) Если открыть landscape-картинку (альбомная ориентация) и вернуться назад, то остаётся выделение захватывающее больше, чем сама картинка:
http://i.gyazo.com/41d4a5c625d... ce3bf5.png
(немного попахивает перфекционизмом, но хотелось бы, чтобы было всё красиво)) )
с одной стороны можно не создавать к img.photo margin'ы, а для div.post создать padding'и справа и снизу и тогда этого не будет, но тогда когда будут фотографии в ряд (с книжной ориентацией), то между ними пробела в 10 пикселей не будет. Я подумал сделать для каждой картинки div, который бы делал margin справа и снизу, чтобы расстояние было между картинками и при этом не выделялось что-либо кроме самой картинки, но тогда приходится делать float: left для обтекания рядом стоящих картинок с книжной ориентацией, после чего начинается смещение, как в следующей проблеме:

2) Вот еще одна: если добавить сколько угодно картинок, но чтобы как минимум одна была landscape (альбомная), то всё нормально, вот:
Верхняя часть сайта: http://i.gyazo.com/9e7d93a5227... 80187e.png
Нижняя часть сайта: http://i.gyazo.com/260d9cbc617... 74d8b7.png
но, если убрать landscape, то задний фон для картинок "сворачивается" вверх:
http://i.gyazo.com/588edbf2a77... 4d2d7a.png

p.s. удалял все стили, чтобы проверить не в стилях ли проблема касательно смещения (сдвига) сайта после добавления картинок через <img>, но сайт с кучей ИДов, КЛАССов и без них всё равно смещается влево.

заранее спасибо)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.10.2014, 06:10
Ответы с готовыми решениями:

Смещение влево сайта при уменьшении масштаба
Когда уменьшаю масштаб страницы, сайт уходит влево, а хотелось чтобы оставался по центру. Подскажите как сделать

Оценить геометрический сдвиг двух изображений
Всем привет, у меня следующий вопрос: мне нужно оценить геометрический сдвиг двух изображений. Пример двух изображений прикреплен. В...

Где и когда уместно применять операции << (сдвиг влево) и >> (сдвиг вправо)?
Кто может привести пример , когда нужно использовать операции: 1) &lt;&lt; сдвиг влево 2) &gt;&gt; сдвиг вправо

2
50 / 49 / 10
Регистрация: 27.05.2014
Сообщений: 232
19.10.2014, 11:28
Цитата Сообщение от inkkk Посмотреть сообщение
float: left;
Вместо этого можно попробовать
CSS
1
display:inline-block;
для "строчных" изображений.
Либо же для второй строки отменять обтекание первой строки clear'ом. Тут можно почитать. Решение проблемы: http://habrahabr.ru/post/161581/ в подпункте "Сетка изображений".
Да и большинство вопросов касаются по сути лишь позиционирования - http://shpargalkablog.ru/2012/... e-css.html .
1
0 / 0 / 1
Регистрация: 19.10.2014
Сообщений: 2
20.10.2014, 04:50  [ТС]
Спасибо)!
display:inline-block; сработал)
за статьи тоже спасибо, сделал margin-right и margin-bottom не 10px, а 6px, т.е. разница в 4 из-за того что у inline-block идёт врождённый отступ в 4 пикселя, но выделение осталось, но меньше:
http://i.gyazo.com/e9823f3ddf4... f10bbc.png

Основную проблему почти что "решил"... костылём.. добавил в стили:
CSS
1
2
3
#fix {
    padding-left: 17px;
}
(странно, что не 10px , т.к. смещение влево шло на 10)

и добавил это в файле с фотками:
HTML5
1
<body id="fix">
но хотелось бы нормальный способ, как-то странно это с <img>'ом происходит, я бы не писал сюда, если бы в интернете нашёл(
если у кого-то есть догадки, буду рад, спасибо)

Добавлено через 2 часа 4 минуты
Всё, проблему с выделением решил, просто поверх <img> сделал <div>, в который перекинул всю информацию div.portrait и div.landscape и расстояния между изображениями остались, а выделение ненужных областей исчезла.

Осталось только смещение сайта нормально сделать..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.10.2014, 04:50
Помогаю со студенческими работами здесь

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

Отображение двух изображений в шапке сайта
#header { background: url(images/header_bg.gif) no-repeat center top; padding-top: 120px; }Собственно вот весь код. Изображение...

падение сайта с 22 на 131 позицию после добавления контента
Собственно поменял контент, теперь вместо главной страницы выдача второстепенной с необходимым ключом. Контент юник. Связано ли это с тем,...

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

Не грузится комп после добавления двух новых планок ОЗУ
Всем привет. Таки пришлось и мне зарегистрироваться на этом форуме. Полтора месяца назад купил две оперативные памяти DDR2 4GB (800...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru