Как правильно расположить изображение на веб-странице, задав его координаты с помощью CSS?

Статус
Закрыто для дальнейших ответов.

Oleg556677

Active Member
Регистрация
19.11.2012
Сообщения
27
Я разместил на веб-странице изображение синего заголовка "univer-comp.ru", но я хочу, чтобы оно находилось на фоне зеленой шапки сайта, а оно почему-то находится ниже шапки, хотя я правильно задал его координаты в CSS. Как решить эту проблему? Скриншот веб-страницы и файлы моего сайта прикрепляю к сообщению.
 

Вложения

lekzd

parse error: parse error, unexpected T_STRING...
Регистрация
17.02.2011
Сообщения
1 125
Как все грустно, хоть бы Bootstrap освоили

Код:
.zag1 {
width: 510px;
height: 32px;
margin: 16px 255px 33px 23px;
float: left;
}
.owl {
width: 62px;
height: 60px;
margin: 4px 85px 4px 87px;
float: left;
}
 

Oleg556677

Active Member
Регистрация
19.11.2012
Сообщения
27
Можно ли как-то решить эту проблему без Bootstrap? Я привык к DreamWeaver, и пока переходить на Bootstrap не планирую.
 

lekzd

parse error: parse error, unexpected T_STRING...
Регистрация
17.02.2011
Сообщения
1 125
Можно, но для цели "сделать сайт" быстрее будет использовать что-то готовое, а то сейчас требования к сайту, которому люди будут доверять и платить деньги сильно выше, чем предлагаете вы.
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 144
О, боже!
Где такой браузер откопали! Шедевр из раздела юмора. Я думал такого не бывает.

Тут надо применять position: relative/absolute и отрицательные маргины или топ

Выложи верстку куда нить или ссылку на ресурс, а то архив кривой, фона нет зеленого.

По тому что есть, самое простое и быстрое решение добавить в

.zag1 {
margin-top: -45px;
position: relative;
}
Но конечно, это хак. Переверстывать там всё надо.

ЗЫ В ишаке не проверял в виду его отсутствия.

lekzd, не советуй человеку поповщину. Чтобы пользоваться бутстапами, надо хорошо знать основы CSS.
Человек пытается учится, а не деградировать.
 

Deni

Member
Регистрация
03.02.2013
Сообщения
17
Я новичок, но позвольте попытаюсь решить задачу вместе с вами.
В HTML создаем логический раздел для нашего изображения:

<div id="izo">

<img src="izo.gif" alt="univer-comp.ru" />

</div>

Далее в CSS определяем абсолютное позиционирование:

#izo {
position: absolute;
top: ...px;
left: ...px;
z-index:99;

}

Итак, что я сделал. Задал абсолютное позиционирование. Определил местоположение элемента свойствами top и left ( естественно вы зададите свои значения).
Абсолютно позиционированные элементы можно накладывать друг на друга слоями. Свойство z-index определяет положение элементов друг над другом. Помните, что
абсолютно позиционированный элемент удаляется из общего потока, поэтому они не оказывают никакого действия на другие элементы. Можно задать ширину элемента
(width). Можно и не задавать, но тогда по умолчанию блочный элемент займет всю ширину браузера за исключением отступов, которые задаются слева и справа.

Извините, если слишком смело замахнулся) Думаю, что более опытные ребята меня поправят, если я в чем-то не прав)
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 144
Я же дал ответ, привел код.
 

Deni

Member
Регистрация
03.02.2013
Сообщения
17
[member=BaNru], я не пытаюсь вас оспаривать, просто я учусь. И чтобы лучше откладывался пройденный материал, я попытался предложить свой вариант с абсолютным позиционированием. В то время как вы использовали позиционирование относительное. При относительном позиционировании элемент остается в общем потоке, а затем
смещается туда, где он действительно должен быть изображен. Смещение вычисляется относительно того места, на котором элемент находится в общем потоке.
Я не спорил с вами, а лишь предложил еще вариант. Прошу прощения, если чем то вас затронул.
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 144
В данном случае не нужно абсолютное позиционирование.
Его при возможности надо вообще избегать, как и relative.
Но если без них не обойтись, то надо отдавать предпочтение relative.
Абсолютное позиционирование надо использовать в последний момент.

Это конечно не правило. А лишь рекомендация.

В случае ТС лучше постараться вообще переверстать по "правильному" (способов много). Я понимаю, что он только начинает, поэтому предложил хак через relative. Если лн сам знает как сделать через абсолютное, и оно будет работать и удовлетворять, то лучше так и сделать. Со временем переделает.
 

Oleg556677

Active Member
Регистрация
19.11.2012
Сообщения
27
Deni, я сделал все, как вы посоветовали, и теперь заголовок расположен там, где нужно, и при увеличении масштаба веб-страницы все в порядке. Но при уменьшении масштаба веб-страницы заголовок съезжает в сторону. Можно ли это исправить?
Вот скриншот.

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

Вложения

Deni

Member
Регистрация
03.02.2013
Сообщения
17
[member=Oleg556677], проблема возможно у вас не с изображением, которо вы позиционировали, а с изображением которое используется для "шапки" вашего сайта.
Ваше позиционированное изображение строго привязано к определенному месту и должно сохранять свое положение при масштабировании. Давайте попробуем сделать следующее.
Допустим имеем изображение для верхнего колонтитула или как вы сказали "шапки": shapka.gif

В HTML создаем логический раздел для вашей "шапки":

<div id="shap">

<img src="shapka.gif" alt="верхний колонтитул" />

</div>

По умолчанию будет использовано значение position: static
При статическом позиционировании элементы заливаются на страницу в общем потоке и мы не определяем их местоположение на странице. Браузер сам решает где они отобразятся.

В CSS:

#shap {

margin: 10px;
height: 108px;

}

Я задал как пример поля и вертикальный размер (толщину) изображения верхнего колонтитула или "шапки".
Попробуйте. Я, конечно, могу ошибаться, но все же. Может более опытные ребята подскажут что-то более компетентно.
В идеале хотелось бы увидеть код и попытаться поэкспериментировать, т.к. у меня небольшой опыт и не всегда удается решать задачи такого рода устно или теоретически.
Мои предположения это всего лишь один из вариантов.

И я думаю, что вам будет полезно познакомиться более подробно с позиционированием, его свойствами и способами применения.
А так можете обращаться. Мне просто для закрепления знаний и получения опыта самому интересно пытаться решать различного рода задачи.
 

HayPro

Member
Регистрация
14.01.2013
Сообщения
15
В данном случае не нужно абсолютное позиционирование. Его при возможности надо вообще избегать, как и relative.
Абсолютное позиционирование надо использовать в последний момент.
Мне просто стало очень интересно, почему вы так считаете. Дело в индексации?
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 144
Мне просто стало очень интересно, почему вы так считаете. Дело в индексации?
Индексация не причем. В опыте :biggrin:

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

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

Oleg556677

Active Member
Регистрация
19.11.2012
Сообщения
27
Deni

[quote name="BaNru" post="60315"]
В идеале хотелось бы увидеть код
[/quote]

Я прикрепил к своему первому сообщению в этой теме архив, где есть и веб-страница glavnaya.html, у которой можно увидеть HTML-код, и файл style.css с CSS-кодом.
 

Deni

Member
Регистрация
03.02.2013
Сообщения
17
[member=Oleg556677], я завтра посмотрю код, и возможно предложу варианты, сегодня к сожалению не располагаю временем.
Единственное, что я заметил, это конечно не имеет отношения к вопросу, но у вас все в одной куче и коды, и рисунки.... Это не страшно, когда
страничка небольшая, но если вы планируете расширять и совершенствовать свой сайт в дальнейшем, то удобнее навести порядок - картинки сложить в отдельную папку. Далее это облегчит вам работу и устранит проблемы с путаницей и визуальным восприятием содержимого.
 

yaneka

Member
Регистрация
02.02.2013
Сообщения
18
Oleg556677, попробовала решить ваш пример, и прописала position: absolute; в обоих случаях в .zag1 и в .owl. Убрала лишние float left зачем они? Не понимаю зачем писать тоже лишние margin, разве не достаточно указать 2 парамерта - сверху и допустим отступ слева от #header? После этого у меня не сдвигается заголовок при уменьшении страницы при просмотре, оно и понятно, ведь абсолютное позиционирование было на zag1 и в .owl, а они входили оба в другой div - header, чье положение мы не определяли абсолютно, поэтому относительно хедера положение этих элементов всегда одинаково.
BaNru, поэтому абсолютное позиционирование разве такое уж зло? Им просто надо уметь пользоваться.

lekzd, а что такое Bootstrap? Чего грустить то о нем? Это какая то приблуда для твиттера? твиттер-Bootstrap, вот слышала такое, да..
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 144
BaNru, поэтому абсолютное позиционирование разве такое уж зло? Им просто надо уметь пользоваться.
Я не писал что абсолютное позиционирование зло.
И даже если им умеешь пользоваться, то неуместное его применение добавит только проблем и возможно отнимет много времени.
 

Deni

Member
Регистрация
03.02.2013
Сообщения
17
[member=Oleg556677],

Я внес незначительные изменения, даже нет смысла отсылать весь код, смотрите.

В HTML:

<div id="header">
<div id="ow">
<img class="owl" src="Bolshaya_Seraya_Sova.png" />
</div>
<div id="zag">
<img class="zag1" src="Zagolovok_Univer.png" />
</div>
</div>

Для каждого изображения создаем свой логический раздел, как "ow" для совы и "zag" для нашего заголовка.

Теперь CSS:

#zag {
position: absolute;
top: 10px;
}

.zag1 {
width: 510px;
height: 32px;
margin: 3px 255px 33px 259px;
}

Для логического раздела "zag" задаем позиционирование.
Для класса "zag1" оставляем теже свойства за исключением float. Свойство float по моему здесь ни к чему.

Все работает. И проблемы были вовсе не в абсолютном позиционировании )

В архиве ваша страница и измененные файлы new.html и new.css





[member=BaNru], возник вопрос, если позволите....

В своем сообщении от 6 февраля 18.50 вы пишите: "Тут надо применять position: relative/absolute и отрицательные маргины или топ"

В сообщении от 6 февраля 21.22: "В данном случае не нужно абсолютное позиционирование.
Его при возможности надо вообще избегать, как и relative."

В сообщении от 7 февраля 23.55: ".....особенно когда можно без проблем сверстать более грамотно без позиционирования".

Теперь, вспомним правила потока:
- Блочные элементы заливаются на страницу сверху вниз, с разрывом строки после каждого
-Строчные элементы заливаются один за другим слева на право и сверху вниз.

В правилах потока нет правила когда какие-либо элементы заливаются друг на друга.

В случае с нашими заголовками мы имели в исходных данных изображения. Изображения, как известно являются строчными элементами.

Вопрос: как можно правильно сверстать страницу, чтобы расположить один элемент поверх другого, не используя позиционирования?

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

Вложения

motek

злой как @
Регистрация
13.04.2010
Сообщения
730
Теперь, вспомним правила потока:
- Блочные элементы заливаются на страницу сверху вниз, с разрывом строки после каждого
-Строчные элементы заливаются один за другим слева на право и сверху вниз.
странные правила, что за разрыв строки?...а строчные заливаются в зависимости от директории родителя...если родитель справа на лево, то и все дети так же...

что касается картинок, так тут нужна не картинка, а заголовок первого уровня с названием сайта :)
 

Deni

Member
Регистрация
03.02.2013
Сообщения
17
[member=motek], колонтитулы страниц часто оформляются в виде фона - картинки. А уже затем идет, как основная тема - заголовок.

Что касается правил, то это изначальные правила, как таблица умножения в школе, еще до того как мы начинаем изучать элементы родители.

Например заголовки <h1>.....<h6> или <p> и <blockquote> это блочные элементы. Когда мы задаем их, нам не нужно задумываться о разрыве строки. Они будут располагаться один под другим с определенным отступом задавая новый абзац. Если же нам необходимо оборвать поток текста, например, строчного элемента, то мы пользуемся тегом <br>, вставляя его в конце строки в месте разрыва.

Но суть вопроса была не в этом... А в том, что элементы не заливаются друг по верх друга без заданных определенных свойств позиционирования.

И суть была не в том, что изображено на картинке, а в том как позиционировать это изображение относительно другого. Представьте, что там не название сайта, а изображение велосипеда к примеру.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ